Merge branch 'master' into blender-tweaks
This commit is contained in:
17
.arclint
17
.arclint
@@ -57,13 +57,6 @@
|
||||
"type": "phutil-library",
|
||||
"include": "(\\.php$)"
|
||||
},
|
||||
"phutil-xhpast": {
|
||||
"type": "phutil-xhpast",
|
||||
"include": "(\\.php$)",
|
||||
"phutil-xhpast.deprecated.functions": {
|
||||
"phutil_escape_html": "The phutil_escape_html() function is deprecated. Raw strings passed to phutil_tag() or hsprintf() are escaped automatically."
|
||||
}
|
||||
},
|
||||
"spelling": {
|
||||
"type": "spelling"
|
||||
},
|
||||
@@ -73,15 +66,7 @@
|
||||
"xhpast": {
|
||||
"type": "xhpast",
|
||||
"include": "(\\.php$)",
|
||||
"severity": {
|
||||
"16": "advice",
|
||||
"34": "error"
|
||||
},
|
||||
"xhpast.blacklisted.function": {
|
||||
"eval": "The eval() function should be avoided. It is potentially unsafe and makes debugging more difficult."
|
||||
},
|
||||
"xhpast.php-version": "5.2.3",
|
||||
"xhpast.php-version.windows": "5.3.0"
|
||||
"standard": "phutil.xhpast"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
36
externals/skins/oblivious/css/oblivious.css
vendored
36
externals/skins/oblivious/css/oblivious.css
vendored
@@ -29,19 +29,18 @@ html {
|
||||
.oblivious-content {
|
||||
padding-top: 3%;
|
||||
margin-left: 22%;
|
||||
max-width: 600px;
|
||||
max-width: 800px;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #222222;
|
||||
color: #2980b9;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #a00000;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
h1 {
|
||||
font-size: 24px;
|
||||
font-weight: normal;
|
||||
@@ -50,37 +49,24 @@ h1 {
|
||||
h2 {
|
||||
font-size: 22px;
|
||||
font-weight: bold;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.phame-post {
|
||||
margin: 0 0 2em;
|
||||
}
|
||||
|
||||
.phame-post-title {
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
.phame-post-date {
|
||||
font-size: 12px;
|
||||
margin: .25em 0 1em;
|
||||
margin: .25em 0 2em;
|
||||
}
|
||||
|
||||
.phame-post {
|
||||
line-height: 1.6em;
|
||||
}
|
||||
|
||||
.phame-post p {
|
||||
margin: 0 0 1em;
|
||||
}
|
||||
|
||||
.phame-post tt {
|
||||
color: #333333;
|
||||
background: #ebebeb;
|
||||
padding: 0 .25em;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
.phame-post .remarkup-code-block pre {
|
||||
overflow: auto;
|
||||
padding: 10px 10px;
|
||||
border: 1px solid #dfdfdf;
|
||||
background-color: #f8f8f8;
|
||||
.oblivious-content .phabricator-remarkup ul.remarkup-list {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.fb-comments,
|
||||
|
2
externals/skins/oblivious/header.php
vendored
2
externals/skins/oblivious/header.php
vendored
@@ -13,6 +13,6 @@
|
||||
echo _e($blog->getName());
|
||||
?></a>
|
||||
</h1>
|
||||
<p><?php echo _e($blog->getDescription()); ?></p>
|
||||
<p><?php echo $skin->remarkup($blog->getDescription()); ?></p>
|
||||
</div>
|
||||
<div class="oblivious-content">
|
||||
|
@@ -7,7 +7,7 @@
|
||||
*/
|
||||
return array(
|
||||
'names' => array(
|
||||
'core.pkg.css' => 'ce2edb1a',
|
||||
'core.pkg.css' => '27828558',
|
||||
'core.pkg.js' => '47dc9ebb',
|
||||
'darkconsole.pkg.js' => 'e7393ebb',
|
||||
'differential.pkg.css' => '2de124c9',
|
||||
@@ -25,8 +25,8 @@ return array(
|
||||
'rsrc/css/aphront/notification.css' => '9c279160',
|
||||
'rsrc/css/aphront/panel-view.css' => '8427b78d',
|
||||
'rsrc/css/aphront/phabricator-nav-view.css' => 'a24cb589',
|
||||
'rsrc/css/aphront/table-view.css' => '61543e7a',
|
||||
'rsrc/css/aphront/tokenizer.css' => '04875312',
|
||||
'rsrc/css/aphront/table-view.css' => '6d01d468',
|
||||
'rsrc/css/aphront/tokenizer.css' => '056da01b',
|
||||
'rsrc/css/aphront/tooltip.css' => '7672b60f',
|
||||
'rsrc/css/aphront/typeahead-browse.css' => 'd8581d2c',
|
||||
'rsrc/css/aphront/typeahead.css' => '0e403212',
|
||||
@@ -36,7 +36,7 @@ return array(
|
||||
'rsrc/css/application/base/notification-menu.css' => 'f31c0bde',
|
||||
'rsrc/css/application/base/phabricator-application-launch-view.css' => '95351601',
|
||||
'rsrc/css/application/base/phui-theme.css' => '6b451f24',
|
||||
'rsrc/css/application/base/standard-page-view.css' => '1f53d056',
|
||||
'rsrc/css/application/base/standard-page-view.css' => 'a1096ed4',
|
||||
'rsrc/css/application/calendar/calendar-icon.css' => 'c69aa59f',
|
||||
'rsrc/css/application/chatlog/chatlog.css' => 'd295b020',
|
||||
'rsrc/css/application/conduit/conduit-api.css' => '7bc725c4',
|
||||
@@ -100,17 +100,17 @@ return array(
|
||||
'rsrc/css/application/releeph/releeph-request-differential-create-dialog.css' => '8d8b92cd',
|
||||
'rsrc/css/application/releeph/releeph-request-typeahead.css' => '667a48ae',
|
||||
'rsrc/css/application/search/search-results.css' => '7dea472c',
|
||||
'rsrc/css/application/slowvote/slowvote.css' => '475b4bd2',
|
||||
'rsrc/css/application/slowvote/slowvote.css' => 'da0afb1b',
|
||||
'rsrc/css/application/tokens/tokens.css' => '3d0f239e',
|
||||
'rsrc/css/application/uiexample/example.css' => '528b19de',
|
||||
'rsrc/css/core/core.css' => 'a76cefc9',
|
||||
'rsrc/css/core/remarkup.css' => '8d341238',
|
||||
'rsrc/css/core/core.css' => '78e8d7ea',
|
||||
'rsrc/css/core/remarkup.css' => '2193fc05',
|
||||
'rsrc/css/core/syntax.css' => '9fd11da8',
|
||||
'rsrc/css/core/z-index.css' => '57ddcaa2',
|
||||
'rsrc/css/diviner/diviner-shared.css' => '5a337049',
|
||||
'rsrc/css/diviner/diviner-shared.css' => 'aa3656aa',
|
||||
'rsrc/css/font/font-aleo.css' => 'b61d3062',
|
||||
'rsrc/css/font/font-awesome.css' => 'd2fc4e8d',
|
||||
'rsrc/css/font/font-lato.css' => '5ab1a46a',
|
||||
'rsrc/css/font/font-roboto-slab.css' => 'f24a53cb',
|
||||
'rsrc/css/font/phui-font-icon-base.css' => 'ecbbb4c2',
|
||||
'rsrc/css/layout/phabricator-filetree-view.css' => 'fccf9f82',
|
||||
'rsrc/css/layout/phabricator-hovercard-view.css' => '1239cd52',
|
||||
@@ -125,17 +125,18 @@ return array(
|
||||
'rsrc/css/phui/phui-badge.css' => 'f25c3476',
|
||||
'rsrc/css/phui/phui-box.css' => 'a5bb366d',
|
||||
'rsrc/css/phui/phui-button.css' => '16020a60',
|
||||
'rsrc/css/phui/phui-crumbs-view.css' => 'd842f867',
|
||||
'rsrc/css/phui/phui-document.css' => '0267054b',
|
||||
'rsrc/css/phui/phui-crumbs-view.css' => '414406b5',
|
||||
'rsrc/css/phui/phui-document-pro.css' => '7f3009ce',
|
||||
'rsrc/css/phui/phui-document.css' => 'f841ad0a',
|
||||
'rsrc/css/phui/phui-feed-story.css' => 'b7b26d23',
|
||||
'rsrc/css/phui/phui-fontkit.css' => 'cb8ae7ad',
|
||||
'rsrc/css/phui/phui-fontkit.css' => 'c9d63950',
|
||||
'rsrc/css/phui/phui-form-view.css' => '62e8d4b3',
|
||||
'rsrc/css/phui/phui-form.css' => 'afdb2c6e',
|
||||
'rsrc/css/phui/phui-header-view.css' => '55bb32dd',
|
||||
'rsrc/css/phui/phui-icon.css' => 'b0a6b1b6',
|
||||
'rsrc/css/phui/phui-image-mask.css' => '5a8b09c8',
|
||||
'rsrc/css/phui/phui-info-panel.css' => '27ea50a1',
|
||||
'rsrc/css/phui/phui-info-view.css' => '5b16bac6',
|
||||
'rsrc/css/phui/phui-info-view.css' => '6d7c3509',
|
||||
'rsrc/css/phui/phui-list.css' => '125599df',
|
||||
'rsrc/css/phui/phui-object-box.css' => '407eaf5a',
|
||||
'rsrc/css/phui/phui-object-item-list-view.css' => 'ede98c4b',
|
||||
@@ -145,7 +146,7 @@ return array(
|
||||
'rsrc/css/phui/phui-remarkup-preview.css' => '867f85b3',
|
||||
'rsrc/css/phui/phui-spacing.css' => '042804d6',
|
||||
'rsrc/css/phui/phui-status.css' => '888cedb8',
|
||||
'rsrc/css/phui/phui-tag-view.css' => '402691cc',
|
||||
'rsrc/css/phui/phui-tag-view.css' => 'e60e227b',
|
||||
'rsrc/css/phui/phui-text.css' => 'cf019f54',
|
||||
'rsrc/css/phui/phui-timeline-view.css' => '2efceff8',
|
||||
'rsrc/css/phui/phui-two-column-view.css' => '39ecafb1',
|
||||
@@ -158,6 +159,14 @@ return array(
|
||||
'rsrc/css/sprite-tokens.css' => '4f399012',
|
||||
'rsrc/custom/css/phabricator-welcome-page.css' => 'c370f13b',
|
||||
'rsrc/custom/image/blender_logo.png' => '3667b481',
|
||||
'rsrc/externals/font/aleo/aleo-bold.eot' => 'd3d3bed7',
|
||||
'rsrc/externals/font/aleo/aleo-bold.ttf' => '4b08bef0',
|
||||
'rsrc/externals/font/aleo/aleo-bold.woff' => '93b513a1',
|
||||
'rsrc/externals/font/aleo/aleo-bold.woff2' => '75fbf322',
|
||||
'rsrc/externals/font/aleo/aleo-regular.eot' => 'a4e29e2f',
|
||||
'rsrc/externals/font/aleo/aleo-regular.ttf' => '751e7479',
|
||||
'rsrc/externals/font/aleo/aleo-regular.woff' => 'c3744be9',
|
||||
'rsrc/externals/font/aleo/aleo-regular.woff2' => '851aa0ee',
|
||||
'rsrc/externals/font/fontawesome/fontawesome-webfont.eot' => '7d5a4653',
|
||||
'rsrc/externals/font/fontawesome/fontawesome-webfont.ttf' => '531835e8',
|
||||
'rsrc/externals/font/fontawesome/fontawesome-webfont.woff' => '427fe363',
|
||||
@@ -178,10 +187,6 @@ return array(
|
||||
'rsrc/externals/font/lato/lato-regular.ttf' => 'e270165b',
|
||||
'rsrc/externals/font/lato/lato-regular.woff' => '13d39fe2',
|
||||
'rsrc/externals/font/lato/lato-regular.woff2' => '57a9f742',
|
||||
'rsrc/externals/font/robotoslab/robotoslab-regular.eot' => 'eaefe21c',
|
||||
'rsrc/externals/font/robotoslab/robotoslab-regular.ttf' => '4bfef7d5',
|
||||
'rsrc/externals/font/robotoslab/robotoslab-regular.woff' => '7f0552f9',
|
||||
'rsrc/externals/font/robotoslab/robotoslab-regular.woff2' => '23bdd43c',
|
||||
'rsrc/externals/javelin/core/Event.js' => '85ea0626',
|
||||
'rsrc/externals/javelin/core/Stratcom.js' => '6c53634d',
|
||||
'rsrc/externals/javelin/core/__tests__/event-stop-and-kill.js' => '717554e4',
|
||||
@@ -450,7 +455,7 @@ return array(
|
||||
'rsrc/js/core/behavior-device.js' => 'a205cf28',
|
||||
'rsrc/js/core/behavior-drag-and-drop-textarea.js' => '6d49590e',
|
||||
'rsrc/js/core/behavior-error-log.js' => '6882e80a',
|
||||
'rsrc/js/core/behavior-fancy-datepicker.js' => '665cf6ac',
|
||||
'rsrc/js/core/behavior-fancy-datepicker.js' => '8ae55229',
|
||||
'rsrc/js/core/behavior-file-tree.js' => '88236f00',
|
||||
'rsrc/js/core/behavior-form.js' => '5c54cbf3',
|
||||
'rsrc/js/core/behavior-gesture.js' => '3ab51e2c',
|
||||
@@ -495,8 +500,8 @@ return array(
|
||||
'aphront-list-filter-view-css' => '5d6f0526',
|
||||
'aphront-multi-column-view-css' => 'fd18389d',
|
||||
'aphront-panel-view-css' => '8427b78d',
|
||||
'aphront-table-view-css' => '61543e7a',
|
||||
'aphront-tokenizer-control-css' => '04875312',
|
||||
'aphront-table-view-css' => '6d01d468',
|
||||
'aphront-tokenizer-control-css' => '056da01b',
|
||||
'aphront-tooltip-css' => '7672b60f',
|
||||
'aphront-typeahead-control-css' => '0e403212',
|
||||
'auth-css' => '0877ed6e',
|
||||
@@ -525,10 +530,10 @@ return array(
|
||||
'diffusion-icons-css' => '2941baf1',
|
||||
'diffusion-readme-css' => '2106ea08',
|
||||
'diffusion-source-css' => '075ba788',
|
||||
'diviner-shared-css' => '5a337049',
|
||||
'diviner-shared-css' => 'aa3656aa',
|
||||
'font-aleo' => 'b61d3062',
|
||||
'font-fontawesome' => 'd2fc4e8d',
|
||||
'font-lato' => '5ab1a46a',
|
||||
'font-roboto-slab' => 'f24a53cb',
|
||||
'global-drag-and-drop-css' => '697324ad',
|
||||
'harbormaster-css' => 'b0758ca5',
|
||||
'herald-css' => '826075fa',
|
||||
@@ -583,7 +588,7 @@ return array(
|
||||
'javelin-behavior-durable-column' => 'c72aa091',
|
||||
'javelin-behavior-error-log' => '6882e80a',
|
||||
'javelin-behavior-event-all-day' => '38dcf3c8',
|
||||
'javelin-behavior-fancy-datepicker' => '665cf6ac',
|
||||
'javelin-behavior-fancy-datepicker' => '8ae55229',
|
||||
'javelin-behavior-global-drag-and-drop' => 'c8e57404',
|
||||
'javelin-behavior-herald-rule-editor' => '7ebaeed3',
|
||||
'javelin-behavior-high-security-warning' => 'a464fe03',
|
||||
@@ -715,7 +720,7 @@ return array(
|
||||
'phabricator-busy' => '59a7976a',
|
||||
'phabricator-chatlog-css' => 'd295b020',
|
||||
'phabricator-content-source-view-css' => '4b8b05d4',
|
||||
'phabricator-core-css' => 'a76cefc9',
|
||||
'phabricator-core-css' => '78e8d7ea',
|
||||
'phabricator-countdown-css' => 'e7544472',
|
||||
'phabricator-dashboard-css' => 'eb458607',
|
||||
'phabricator-drag-and-drop-file-upload' => 'ad10aeac',
|
||||
@@ -737,13 +742,13 @@ return array(
|
||||
'phabricator-object-selector-css' => '85ee8ce6',
|
||||
'phabricator-phtize' => 'd254d646',
|
||||
'phabricator-prefab' => '6920d200',
|
||||
'phabricator-remarkup-css' => '8d341238',
|
||||
'phabricator-remarkup-css' => '2193fc05',
|
||||
'phabricator-search-results-css' => '7dea472c',
|
||||
'phabricator-shaped-request' => '7cbe244b',
|
||||
'phabricator-side-menu-view-css' => 'bec2458e',
|
||||
'phabricator-slowvote-css' => '475b4bd2',
|
||||
'phabricator-slowvote-css' => 'da0afb1b',
|
||||
'phabricator-source-code-view-css' => 'cbeef983',
|
||||
'phabricator-standard-page-view' => '1f53d056',
|
||||
'phabricator-standard-page-view' => 'a1096ed4',
|
||||
'phabricator-textareautils' => '5c93c52c',
|
||||
'phabricator-title' => 'df5e11d2',
|
||||
'phabricator-tooltip' => '1d298e3a',
|
||||
@@ -777,18 +782,19 @@ return array(
|
||||
'phui-calendar-day-css' => 'd1cf6f93',
|
||||
'phui-calendar-list-css' => 'c1c7f338',
|
||||
'phui-calendar-month-css' => '476be7e0',
|
||||
'phui-crumbs-view-css' => 'd842f867',
|
||||
'phui-document-view-css' => '0267054b',
|
||||
'phui-crumbs-view-css' => '414406b5',
|
||||
'phui-document-view-css' => 'f841ad0a',
|
||||
'phui-document-view-pro-css' => '7f3009ce',
|
||||
'phui-feed-story-css' => 'b7b26d23',
|
||||
'phui-font-icon-base-css' => 'ecbbb4c2',
|
||||
'phui-fontkit-css' => 'cb8ae7ad',
|
||||
'phui-fontkit-css' => 'c9d63950',
|
||||
'phui-form-css' => 'afdb2c6e',
|
||||
'phui-form-view-css' => '62e8d4b3',
|
||||
'phui-header-view-css' => '55bb32dd',
|
||||
'phui-icon-view-css' => 'b0a6b1b6',
|
||||
'phui-image-mask-css' => '5a8b09c8',
|
||||
'phui-info-panel-css' => '27ea50a1',
|
||||
'phui-info-view-css' => '5b16bac6',
|
||||
'phui-info-view-css' => '6d7c3509',
|
||||
'phui-inline-comment-view-css' => '0fdb3667',
|
||||
'phui-list-view-css' => '125599df',
|
||||
'phui-object-box-css' => '407eaf5a',
|
||||
@@ -799,7 +805,7 @@ return array(
|
||||
'phui-remarkup-preview-css' => '867f85b3',
|
||||
'phui-spacing-css' => '042804d6',
|
||||
'phui-status-list-view-css' => '888cedb8',
|
||||
'phui-tag-view-css' => '402691cc',
|
||||
'phui-tag-view-css' => 'e60e227b',
|
||||
'phui-text-css' => 'cf019f54',
|
||||
'phui-theme-css' => '6b451f24',
|
||||
'phui-timeline-view-css' => '2efceff8',
|
||||
@@ -864,14 +870,14 @@ return array(
|
||||
'javelin-stratcom',
|
||||
'phabricator-prefab',
|
||||
),
|
||||
'04875312' => array(
|
||||
'aphront-typeahead-control-css',
|
||||
'phui-tag-view-css',
|
||||
),
|
||||
'05270951' => array(
|
||||
'javelin-util',
|
||||
'javelin-magical-init',
|
||||
),
|
||||
'056da01b' => array(
|
||||
'aphront-typeahead-control-css',
|
||||
'phui-tag-view-css',
|
||||
),
|
||||
'065227cc' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-dom',
|
||||
@@ -1288,13 +1294,6 @@ return array(
|
||||
'javelin-vector',
|
||||
'differential-inline-comment-editor',
|
||||
),
|
||||
'665cf6ac' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-util',
|
||||
'javelin-dom',
|
||||
'javelin-stratcom',
|
||||
'javelin-vector',
|
||||
),
|
||||
'6882e80a' => array(
|
||||
'javelin-dom',
|
||||
),
|
||||
@@ -1497,6 +1496,13 @@ return array(
|
||||
'javelin-install',
|
||||
'javelin-dom',
|
||||
),
|
||||
'8ae55229' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-util',
|
||||
'javelin-dom',
|
||||
'javelin-stratcom',
|
||||
'javelin-vector',
|
||||
),
|
||||
'8b3fd187' => array(
|
||||
'javelin-install',
|
||||
'javelin-util',
|
||||
@@ -1714,6 +1720,9 @@ return array(
|
||||
'javelin-dom',
|
||||
'javelin-util',
|
||||
),
|
||||
'b61d3062' => array(
|
||||
'phui-fontkit-css',
|
||||
),
|
||||
'b6993408' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-stratcom',
|
||||
@@ -1949,9 +1958,6 @@ return array(
|
||||
'javelin-workflow',
|
||||
'javelin-json',
|
||||
),
|
||||
'f24a53cb' => array(
|
||||
'phui-fontkit-css',
|
||||
),
|
||||
'f36e01af' => array(
|
||||
'javelin-behavior',
|
||||
'javelin-behavior-device',
|
||||
|
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE {$NAMESPACE}_harbormaster.harbormaster_build
|
||||
ADD COLUMN initiatorPHID VARBINARY(64);
|
17
resources/sql/autopatches/20151106.editengine.1.table.sql
Normal file
17
resources/sql/autopatches/20151106.editengine.1.table.sql
Normal file
@@ -0,0 +1,17 @@
|
||||
CREATE TABLE {$NAMESPACE}_search.search_editengineconfiguration (
|
||||
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
phid VARBINARY(64) NOT NULL,
|
||||
engineKey VARCHAR(64) NOT NULL COLLATE {$COLLATE_TEXT},
|
||||
builtinKey VARCHAR(64) COLLATE {$COLLATE_TEXT},
|
||||
name VARCHAR(255) NOT NULL COLLATE {$COLLATE_TEXT},
|
||||
viewPolicy VARBINARY(64) NOT NULL,
|
||||
editPolicy VARBINARY(64) NOT NULL,
|
||||
properties LONGTEXT NOT NULL COLLATE {$COLLATE_TEXT},
|
||||
isDisabled BOOL NOT NULL DEFAULT 0,
|
||||
isDefault BOOL NOT NULL DEFAULT 0,
|
||||
dateCreated INT UNSIGNED NOT NULL,
|
||||
dateModified INT UNSIGNED NOT NULL,
|
||||
UNIQUE KEY `key_phid` (phid),
|
||||
UNIQUE KEY `key_engine` (engineKey, builtinKey),
|
||||
KEY `key_default` (engineKey, isDefault, isDisabled)
|
||||
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};
|
19
resources/sql/autopatches/20151106.editengine.2.xactions.sql
Normal file
19
resources/sql/autopatches/20151106.editengine.2.xactions.sql
Normal file
@@ -0,0 +1,19 @@
|
||||
CREATE TABLE {$NAMESPACE}_search.search_editengineconfigurationtransaction (
|
||||
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
phid VARBINARY(64) NOT NULL,
|
||||
authorPHID VARBINARY(64) NOT NULL,
|
||||
objectPHID VARBINARY(64) NOT NULL,
|
||||
viewPolicy VARBINARY(64) NOT NULL,
|
||||
editPolicy VARBINARY(64) NOT NULL,
|
||||
commentPHID VARBINARY(64) DEFAULT NULL,
|
||||
commentVersion INT UNSIGNED NOT NULL,
|
||||
transactionType VARCHAR(32) COLLATE {$COLLATE_TEXT} NOT NULL,
|
||||
oldValue LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
|
||||
newValue LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
|
||||
contentSource LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
|
||||
metadata LONGTEXT COLLATE {$COLLATE_TEXT} NOT NULL,
|
||||
dateCreated INT UNSIGNED NOT NULL,
|
||||
dateModified INT UNSIGNED NOT NULL,
|
||||
UNIQUE KEY `key_phid` (`phid`),
|
||||
KEY `key_object` (`objectPHID`)
|
||||
) ENGINE=InnoDB, COLLATE {$COLLATE_TEXT};
|
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE {$NAMESPACE}_phame.phame_post
|
||||
ADD mailKey binary(20) NOT NULL;
|
18
resources/sql/autopatches/20151106.phame.post.mailkey.2.php
Normal file
18
resources/sql/autopatches/20151106.phame.post.mailkey.2.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
$table = new PhamePost();
|
||||
$conn_w = $table->establishConnection('w');
|
||||
$iterator = new LiskMigrationIterator($table);
|
||||
foreach ($iterator as $post) {
|
||||
$id = $post->getID();
|
||||
|
||||
echo pht('Adding mail key for Post %d...', $id);
|
||||
echo "\n";
|
||||
|
||||
queryfx(
|
||||
$conn_w,
|
||||
'UPDATE %T SET mailKey = %s WHERE id = %d',
|
||||
$table->getTableName(),
|
||||
Filesystem::readRandomCharacters(20),
|
||||
$id);
|
||||
}
|
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE {$NAMESPACE}_phame.phame_blog
|
||||
ADD mailKey binary(20) NOT NULL;
|
18
resources/sql/autopatches/20151107.phame.blog.mailkey.2.php
Normal file
18
resources/sql/autopatches/20151107.phame.blog.mailkey.2.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
$table = new PhameBlog();
|
||||
$conn_w = $table->establishConnection('w');
|
||||
$iterator = new LiskMigrationIterator($table);
|
||||
foreach ($iterator as $blog) {
|
||||
$id = $blog->getID();
|
||||
|
||||
echo pht('Adding mail key for Blog %d...', $id);
|
||||
echo "\n";
|
||||
|
||||
queryfx(
|
||||
$conn_w,
|
||||
'UPDATE %T SET mailKey = %s WHERE id = %d',
|
||||
$table->getTableName(),
|
||||
Filesystem::readRandomCharacters(20),
|
||||
$id);
|
||||
}
|
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE {$NAMESPACE}_phame.phame_blog
|
||||
DROP joinPolicy;
|
5
resources/sql/autopatches/20151108.xhpast.stderr.sql
Normal file
5
resources/sql/autopatches/20151108.xhpast.stderr.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
ALTER TABLE {$NAMESPACE}_xhpastview.xhpastview_parsetree
|
||||
ADD returnCode INT NOT NULL AFTER input;
|
||||
|
||||
ALTER TABLE {$NAMESPACE}_xhpastview.xhpastview_parsetree
|
||||
ADD stderr longtext NOT NULL AFTER stdout;
|
18
resources/sql/autopatches/20151109.phame.post.comments.1.sql
Normal file
18
resources/sql/autopatches/20151109.phame.post.comments.1.sql
Normal file
@@ -0,0 +1,18 @@
|
||||
CREATE TABLE {$NAMESPACE}_phame.phame_posttransaction_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};
|
@@ -0,0 +1,8 @@
|
||||
USE {$NAMESPACE}_repository;
|
||||
DELETE x FROM repository_coverage x
|
||||
LEFT JOIN repository_coverage y
|
||||
ON x.branchID = y.branchID
|
||||
AND x.commitID = y.commitID
|
||||
AND x.pathID = y.pathID
|
||||
AND y.id > x.id
|
||||
WHERE y.id IS NOT NULL;
|
5
resources/sql/autopatches/20151110.daemonenvhash.sql
Normal file
5
resources/sql/autopatches/20151110.daemonenvhash.sql
Normal file
@@ -0,0 +1,5 @@
|
||||
ALTER TABLE {$NAMESPACE}_daemon.daemon_log
|
||||
DROP COLUMN envHash;
|
||||
|
||||
ALTER TABLE {$NAMESPACE}_daemon.daemon_log
|
||||
DROP COLUMN envInfo;
|
@@ -102,7 +102,7 @@ function commit_symbols(
|
||||
$repository->getPHID());
|
||||
}
|
||||
|
||||
echo pht('Loading %s symbols...', new PhutilNumber(count($sql))), "\n";
|
||||
echo pht('Loading %s symbols...', phutil_count($sql)), "\n";
|
||||
foreach (array_chunk($sql, 128) as $chunk) {
|
||||
queryfx(
|
||||
$conn_w,
|
||||
|
@@ -135,6 +135,7 @@ phutil_register_library_map(array(
|
||||
'AphrontFormView' => 'view/form/AphrontFormView.php',
|
||||
'AphrontGlyphBarView' => 'view/widget/bars/AphrontGlyphBarView.php',
|
||||
'AphrontHTMLResponse' => 'aphront/response/AphrontHTMLResponse.php',
|
||||
'AphrontHTTPParameterType' => 'aphront/httpparametertype/AphrontHTTPParameterType.php',
|
||||
'AphrontHTTPProxyResponse' => 'aphront/response/AphrontHTTPProxyResponse.php',
|
||||
'AphrontHTTPSink' => 'aphront/sink/AphrontHTTPSink.php',
|
||||
'AphrontHTTPSinkTestCase' => 'aphront/sink/__tests__/AphrontHTTPSinkTestCase.php',
|
||||
@@ -149,10 +150,13 @@ phutil_register_library_map(array(
|
||||
'AphrontMultiColumnView' => 'view/layout/AphrontMultiColumnView.php',
|
||||
'AphrontMySQLDatabaseConnectionTestCase' => 'infrastructure/storage/__tests__/AphrontMySQLDatabaseConnectionTestCase.php',
|
||||
'AphrontNullView' => 'view/AphrontNullView.php',
|
||||
'AphrontPHIDHTTPParameterType' => 'aphront/httpparametertype/AphrontPHIDHTTPParameterType.php',
|
||||
'AphrontPHIDListHTTPParameterType' => 'aphront/httpparametertype/AphrontPHIDListHTTPParameterType.php',
|
||||
'AphrontPHPHTTPSink' => 'aphront/sink/AphrontPHPHTTPSink.php',
|
||||
'AphrontPageView' => 'view/page/AphrontPageView.php',
|
||||
'AphrontPlainTextResponse' => 'aphront/response/AphrontPlainTextResponse.php',
|
||||
'AphrontProgressBarView' => 'view/widget/bars/AphrontProgressBarView.php',
|
||||
'AphrontProjectListHTTPParameterType' => 'aphront/httpparametertype/AphrontProjectListHTTPParameterType.php',
|
||||
'AphrontProxyResponse' => 'aphront/response/AphrontProxyResponse.php',
|
||||
'AphrontRedirectResponse' => 'aphront/response/AphrontRedirectResponse.php',
|
||||
'AphrontRedirectResponseTestCase' => 'aphront/response/__tests__/AphrontRedirectResponseTestCase.php',
|
||||
@@ -164,15 +168,19 @@ phutil_register_library_map(array(
|
||||
'AphrontResponseProducerInterface' => 'aphront/interface/AphrontResponseProducerInterface.php',
|
||||
'AphrontRoutingMap' => 'aphront/site/AphrontRoutingMap.php',
|
||||
'AphrontRoutingResult' => 'aphront/site/AphrontRoutingResult.php',
|
||||
'AphrontSelectHTTPParameterType' => 'aphront/httpparametertype/AphrontSelectHTTPParameterType.php',
|
||||
'AphrontSideNavFilterView' => 'view/layout/AphrontSideNavFilterView.php',
|
||||
'AphrontSite' => 'aphront/site/AphrontSite.php',
|
||||
'AphrontStackTraceView' => 'view/widget/AphrontStackTraceView.php',
|
||||
'AphrontStandaloneHTMLResponse' => 'aphront/response/AphrontStandaloneHTMLResponse.php',
|
||||
'AphrontStringHTTPParameterType' => 'aphront/httpparametertype/AphrontStringHTTPParameterType.php',
|
||||
'AphrontStringListHTTPParameterType' => 'aphront/httpparametertype/AphrontStringListHTTPParameterType.php',
|
||||
'AphrontTableView' => 'view/control/AphrontTableView.php',
|
||||
'AphrontTagView' => 'view/AphrontTagView.php',
|
||||
'AphrontTokenizerTemplateView' => 'view/control/AphrontTokenizerTemplateView.php',
|
||||
'AphrontTypeaheadTemplateView' => 'view/control/AphrontTypeaheadTemplateView.php',
|
||||
'AphrontUnhandledExceptionResponse' => 'aphront/response/AphrontUnhandledExceptionResponse.php',
|
||||
'AphrontUserListHTTPParameterType' => 'aphront/httpparametertype/AphrontUserListHTTPParameterType.php',
|
||||
'AphrontView' => 'view/AphrontView.php',
|
||||
'AphrontWebpageResponse' => 'aphront/response/AphrontWebpageResponse.php',
|
||||
'ArcanistConduitAPIMethod' => 'applications/arcanist/conduit/ArcanistConduitAPIMethod.php',
|
||||
@@ -1404,6 +1412,7 @@ phutil_register_library_map(array(
|
||||
'PHUI' => 'view/phui/PHUI.php',
|
||||
'PHUIActionPanelExample' => 'applications/uiexample/examples/PHUIActionPanelExample.php',
|
||||
'PHUIActionPanelView' => 'view/phui/PHUIActionPanelView.php',
|
||||
'PHUIApplicationMenuView' => 'view/layout/PHUIApplicationMenuView.php',
|
||||
'PHUIBadgeBoxView' => 'view/phui/PHUIBadgeBoxView.php',
|
||||
'PHUIBadgeExample' => 'applications/uiexample/examples/PHUIBadgeExample.php',
|
||||
'PHUIBadgeMiniView' => 'view/phui/PHUIBadgeMiniView.php',
|
||||
@@ -1434,6 +1443,7 @@ phutil_register_library_map(array(
|
||||
'PHUIDiffTwoUpInlineCommentRowScaffold' => 'infrastructure/diff/view/PHUIDiffTwoUpInlineCommentRowScaffold.php',
|
||||
'PHUIDocumentExample' => 'applications/uiexample/examples/PHUIDocumentExample.php',
|
||||
'PHUIDocumentView' => 'view/phui/PHUIDocumentView.php',
|
||||
'PHUIDocumentViewPro' => 'view/phui/PHUIDocumentViewPro.php',
|
||||
'PHUIFeedStoryExample' => 'applications/uiexample/examples/PHUIFeedStoryExample.php',
|
||||
'PHUIFeedStoryView' => 'view/phui/PHUIFeedStoryView.php',
|
||||
'PHUIFormDividerControl' => 'view/form/control/PHUIFormDividerControl.php',
|
||||
@@ -1529,6 +1539,7 @@ phutil_register_library_map(array(
|
||||
'PasteCreateMailReceiver' => 'applications/paste/mail/PasteCreateMailReceiver.php',
|
||||
'PasteDefaultEditCapability' => 'applications/paste/capability/PasteDefaultEditCapability.php',
|
||||
'PasteDefaultViewCapability' => 'applications/paste/capability/PasteDefaultViewCapability.php',
|
||||
'PasteEditConduitAPIMethod' => 'applications/paste/conduit/PasteEditConduitAPIMethod.php',
|
||||
'PasteEmbedView' => 'applications/paste/view/PasteEmbedView.php',
|
||||
'PasteInfoConduitAPIMethod' => 'applications/paste/conduit/PasteInfoConduitAPIMethod.php',
|
||||
'PasteMailReceiver' => 'applications/paste/mail/PasteMailReceiver.php',
|
||||
@@ -1571,6 +1582,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorApplicationDetailViewController' => 'applications/meta/controller/PhabricatorApplicationDetailViewController.php',
|
||||
'PhabricatorApplicationDocumentation' => 'extensions/documentation/application/PhabricatorApplicationDocumentation.php',
|
||||
'PhabricatorApplicationEditController' => 'applications/meta/controller/PhabricatorApplicationEditController.php',
|
||||
'PhabricatorApplicationEditHTTPParameterHelpView' => 'applications/transactions/view/PhabricatorApplicationEditHTTPParameterHelpView.php',
|
||||
'PhabricatorApplicationEmailCommandsController' => 'applications/meta/controller/PhabricatorApplicationEmailCommandsController.php',
|
||||
'PhabricatorApplicationLaunchView' => 'applications/meta/view/PhabricatorApplicationLaunchView.php',
|
||||
'PhabricatorApplicationPanelController' => 'applications/meta/controller/PhabricatorApplicationPanelController.php',
|
||||
@@ -1844,7 +1856,6 @@ phutil_register_library_map(array(
|
||||
'PhabricatorCommonPasswords' => 'applications/auth/constants/PhabricatorCommonPasswords.php',
|
||||
'PhabricatorConduitAPIController' => 'applications/conduit/controller/PhabricatorConduitAPIController.php',
|
||||
'PhabricatorConduitApplication' => 'applications/conduit/application/PhabricatorConduitApplication.php',
|
||||
'PhabricatorConduitCertificateSettingsPanel' => 'applications/settings/panel/PhabricatorConduitCertificateSettingsPanel.php',
|
||||
'PhabricatorConduitCertificateToken' => 'applications/conduit/storage/PhabricatorConduitCertificateToken.php',
|
||||
'PhabricatorConduitConnectionLog' => 'applications/conduit/storage/PhabricatorConduitConnectionLog.php',
|
||||
'PhabricatorConduitConsoleController' => 'applications/conduit/controller/PhabricatorConduitConsoleController.php',
|
||||
@@ -1888,6 +1899,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorConfigEntryQuery' => 'applications/config/query/PhabricatorConfigEntryQuery.php',
|
||||
'PhabricatorConfigFileSource' => 'infrastructure/env/PhabricatorConfigFileSource.php',
|
||||
'PhabricatorConfigGroupController' => 'applications/config/controller/PhabricatorConfigGroupController.php',
|
||||
'PhabricatorConfigHTTPParameterTypesModule' => 'applications/config/module/PhabricatorConfigHTTPParameterTypesModule.php',
|
||||
'PhabricatorConfigHistoryController' => 'applications/config/controller/PhabricatorConfigHistoryController.php',
|
||||
'PhabricatorConfigIgnoreController' => 'applications/config/controller/PhabricatorConfigIgnoreController.php',
|
||||
'PhabricatorConfigIssueListController' => 'applications/config/controller/PhabricatorConfigIssueListController.php',
|
||||
@@ -2006,6 +2018,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorDaemonManagementStatusWorkflow' => 'applications/daemon/management/PhabricatorDaemonManagementStatusWorkflow.php',
|
||||
'PhabricatorDaemonManagementStopWorkflow' => 'applications/daemon/management/PhabricatorDaemonManagementStopWorkflow.php',
|
||||
'PhabricatorDaemonManagementWorkflow' => 'applications/daemon/management/PhabricatorDaemonManagementWorkflow.php',
|
||||
'PhabricatorDaemonOverseerModule' => 'infrastructure/daemon/overseer/PhabricatorDaemonOverseerModule.php',
|
||||
'PhabricatorDaemonReference' => 'infrastructure/daemon/control/PhabricatorDaemonReference.php',
|
||||
'PhabricatorDaemonTaskGarbageCollector' => 'applications/daemon/garbagecollector/PhabricatorDaemonTaskGarbageCollector.php',
|
||||
'PhabricatorDaemonTasksTableView' => 'applications/daemon/view/PhabricatorDaemonTasksTableView.php',
|
||||
@@ -2065,6 +2078,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorDataCacheSpec' => 'applications/cache/spec/PhabricatorDataCacheSpec.php',
|
||||
'PhabricatorDataNotAttachedException' => 'infrastructure/storage/lisk/PhabricatorDataNotAttachedException.php',
|
||||
'PhabricatorDatabaseSetupCheck' => 'applications/config/check/PhabricatorDatabaseSetupCheck.php',
|
||||
'PhabricatorDatasourceEditField' => 'applications/transactions/editfield/PhabricatorDatasourceEditField.php',
|
||||
'PhabricatorDateTimeSettingsPanel' => 'applications/settings/panel/PhabricatorDateTimeSettingsPanel.php',
|
||||
'PhabricatorDebugController' => 'applications/system/controller/PhabricatorDebugController.php',
|
||||
'PhabricatorDefaultRequestExceptionHandler' => 'aphront/handler/PhabricatorDefaultRequestExceptionHandler.php',
|
||||
@@ -2084,7 +2098,6 @@ phutil_register_library_map(array(
|
||||
'PhabricatorDisabledUserController' => 'applications/auth/controller/PhabricatorDisabledUserController.php',
|
||||
'PhabricatorDisplayPreferencesSettingsPanel' => 'applications/settings/panel/PhabricatorDisplayPreferencesSettingsPanel.php',
|
||||
'PhabricatorDisqusAuthProvider' => 'applications/auth/provider/PhabricatorDisqusAuthProvider.php',
|
||||
'PhabricatorDisqusConfigOptions' => 'applications/config/option/PhabricatorDisqusConfigOptions.php',
|
||||
'PhabricatorDivinerApplication' => 'applications/diviner/application/PhabricatorDivinerApplication.php',
|
||||
'PhabricatorDoorkeeperApplication' => 'applications/doorkeeper/application/PhabricatorDoorkeeperApplication.php',
|
||||
'PhabricatorDraft' => 'applications/draft/storage/PhabricatorDraft.php',
|
||||
@@ -2093,12 +2106,33 @@ phutil_register_library_map(array(
|
||||
'PhabricatorEdgeConfig' => 'infrastructure/edges/constants/PhabricatorEdgeConfig.php',
|
||||
'PhabricatorEdgeConstants' => 'infrastructure/edges/constants/PhabricatorEdgeConstants.php',
|
||||
'PhabricatorEdgeCycleException' => 'infrastructure/edges/exception/PhabricatorEdgeCycleException.php',
|
||||
'PhabricatorEdgeEditType' => 'applications/transactions/edittype/PhabricatorEdgeEditType.php',
|
||||
'PhabricatorEdgeEditor' => 'infrastructure/edges/editor/PhabricatorEdgeEditor.php',
|
||||
'PhabricatorEdgeGraph' => 'infrastructure/edges/util/PhabricatorEdgeGraph.php',
|
||||
'PhabricatorEdgeQuery' => 'infrastructure/edges/query/PhabricatorEdgeQuery.php',
|
||||
'PhabricatorEdgeTestCase' => 'infrastructure/edges/__tests__/PhabricatorEdgeTestCase.php',
|
||||
'PhabricatorEdgeType' => 'infrastructure/edges/type/PhabricatorEdgeType.php',
|
||||
'PhabricatorEdgeTypeTestCase' => 'infrastructure/edges/type/__tests__/PhabricatorEdgeTypeTestCase.php',
|
||||
'PhabricatorEditEngine' => 'applications/transactions/editengine/PhabricatorEditEngine.php',
|
||||
'PhabricatorEditEngineAPIMethod' => 'applications/transactions/editengine/PhabricatorEditEngineAPIMethod.php',
|
||||
'PhabricatorEditEngineConfiguration' => 'applications/transactions/storage/PhabricatorEditEngineConfiguration.php',
|
||||
'PhabricatorEditEngineConfigurationEditController' => 'applications/transactions/controller/PhabricatorEditEngineConfigurationEditController.php',
|
||||
'PhabricatorEditEngineConfigurationEditEngine' => 'applications/transactions/editor/PhabricatorEditEngineConfigurationEditEngine.php',
|
||||
'PhabricatorEditEngineConfigurationEditor' => 'applications/transactions/editor/PhabricatorEditEngineConfigurationEditor.php',
|
||||
'PhabricatorEditEngineConfigurationListController' => 'applications/transactions/controller/PhabricatorEditEngineConfigurationListController.php',
|
||||
'PhabricatorEditEngineConfigurationPHIDType' => 'applications/transactions/phid/PhabricatorEditEngineConfigurationPHIDType.php',
|
||||
'PhabricatorEditEngineConfigurationQuery' => 'applications/transactions/query/PhabricatorEditEngineConfigurationQuery.php',
|
||||
'PhabricatorEditEngineConfigurationSaveController' => 'applications/transactions/controller/PhabricatorEditEngineConfigurationSaveController.php',
|
||||
'PhabricatorEditEngineConfigurationSearchEngine' => 'applications/transactions/query/PhabricatorEditEngineConfigurationSearchEngine.php',
|
||||
'PhabricatorEditEngineConfigurationTransaction' => 'applications/transactions/storage/PhabricatorEditEngineConfigurationTransaction.php',
|
||||
'PhabricatorEditEngineConfigurationTransactionQuery' => 'applications/transactions/query/PhabricatorEditEngineConfigurationTransactionQuery.php',
|
||||
'PhabricatorEditEngineConfigurationViewController' => 'applications/transactions/controller/PhabricatorEditEngineConfigurationViewController.php',
|
||||
'PhabricatorEditEngineController' => 'applications/transactions/controller/PhabricatorEditEngineController.php',
|
||||
'PhabricatorEditEngineListController' => 'applications/transactions/controller/PhabricatorEditEngineListController.php',
|
||||
'PhabricatorEditEngineQuery' => 'applications/transactions/query/PhabricatorEditEngineQuery.php',
|
||||
'PhabricatorEditEngineSearchEngine' => 'applications/transactions/query/PhabricatorEditEngineSearchEngine.php',
|
||||
'PhabricatorEditField' => 'applications/transactions/editfield/PhabricatorEditField.php',
|
||||
'PhabricatorEditType' => 'applications/transactions/edittype/PhabricatorEditType.php',
|
||||
'PhabricatorEditor' => 'infrastructure/PhabricatorEditor.php',
|
||||
'PhabricatorElasticSearchEngine' => 'applications/search/engine/PhabricatorElasticSearchEngine.php',
|
||||
'PhabricatorElasticSearchSetupCheck' => 'applications/config/check/PhabricatorElasticSearchSetupCheck.php',
|
||||
@@ -2245,6 +2279,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorGlobalLock' => 'infrastructure/util/PhabricatorGlobalLock.php',
|
||||
'PhabricatorGlobalUploadTargetView' => 'applications/files/view/PhabricatorGlobalUploadTargetView.php',
|
||||
'PhabricatorGoogleAuthProvider' => 'applications/auth/provider/PhabricatorGoogleAuthProvider.php',
|
||||
'PhabricatorHTTPParameterTypeTableView' => 'applications/config/view/PhabricatorHTTPParameterTypeTableView.php',
|
||||
'PhabricatorHandleList' => 'applications/phid/handle/pool/PhabricatorHandleList.php',
|
||||
'PhabricatorHandleObjectSelectorDataView' => 'applications/phid/handle/view/PhabricatorHandleObjectSelectorDataView.php',
|
||||
'PhabricatorHandlePool' => 'applications/phid/handle/pool/PhabricatorHandlePool.php',
|
||||
@@ -2280,6 +2315,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorInlineCommentInterface' => 'infrastructure/diff/interface/PhabricatorInlineCommentInterface.php',
|
||||
'PhabricatorInlineCommentPreviewController' => 'infrastructure/diff/PhabricatorInlineCommentPreviewController.php',
|
||||
'PhabricatorInlineSummaryView' => 'infrastructure/diff/view/PhabricatorInlineSummaryView.php',
|
||||
'PhabricatorInstructionsEditField' => 'applications/transactions/editfield/PhabricatorInstructionsEditField.php',
|
||||
'PhabricatorInternationalizationManagementExtractWorkflow' => 'infrastructure/internationalization/management/PhabricatorInternationalizationManagementExtractWorkflow.php',
|
||||
'PhabricatorInternationalizationManagementWorkflow' => 'infrastructure/internationalization/management/PhabricatorInternationalizationManagementWorkflow.php',
|
||||
'PhabricatorInvalidConfigSetupCheck' => 'applications/config/check/PhabricatorInvalidConfigSetupCheck.php',
|
||||
@@ -2536,6 +2572,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorPHID' => 'applications/phid/storage/PhabricatorPHID.php',
|
||||
'PhabricatorPHIDConstants' => 'applications/phid/PhabricatorPHIDConstants.php',
|
||||
'PhabricatorPHIDInterface' => 'applications/phid/interface/PhabricatorPHIDInterface.php',
|
||||
'PhabricatorPHIDResolver' => 'applications/phid/resolver/PhabricatorPHIDResolver.php',
|
||||
'PhabricatorPHIDType' => 'applications/phid/type/PhabricatorPHIDType.php',
|
||||
'PhabricatorPHIDTypeTestCase' => 'applications/phid/type/__tests__/PhabricatorPHIDTypeTestCase.php',
|
||||
'PhabricatorPHPASTApplication' => 'applications/phpast/application/PhabricatorPHPASTApplication.php',
|
||||
@@ -2556,6 +2593,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorPasteController' => 'applications/paste/controller/PhabricatorPasteController.php',
|
||||
'PhabricatorPasteDAO' => 'applications/paste/storage/PhabricatorPasteDAO.php',
|
||||
'PhabricatorPasteEditController' => 'applications/paste/controller/PhabricatorPasteEditController.php',
|
||||
'PhabricatorPasteEditEngine' => 'applications/paste/editor/PhabricatorPasteEditEngine.php',
|
||||
'PhabricatorPasteEditor' => 'applications/paste/editor/PhabricatorPasteEditor.php',
|
||||
'PhabricatorPasteListController' => 'applications/paste/controller/PhabricatorPasteListController.php',
|
||||
'PhabricatorPastePastePHIDType' => 'applications/paste/phid/PhabricatorPastePastePHIDType.php',
|
||||
@@ -2624,10 +2662,16 @@ phutil_register_library_map(array(
|
||||
'PhabricatorPhrictionApplication' => 'applications/phriction/application/PhabricatorPhrictionApplication.php',
|
||||
'PhabricatorPhrictionConfigOptions' => 'applications/phriction/config/PhabricatorPhrictionConfigOptions.php',
|
||||
'PhabricatorPhurlApplication' => 'applications/phurl/application/PhabricatorPhurlApplication.php',
|
||||
'PhabricatorPhurlConfigOptions' => 'applications/config/option/PhabricatorPhurlConfigOptions.php',
|
||||
'PhabricatorPhurlController' => 'applications/phurl/controller/PhabricatorPhurlController.php',
|
||||
'PhabricatorPhurlDAO' => 'applications/phurl/storage/PhabricatorPhurlDAO.php',
|
||||
'PhabricatorPhurlLinkRemarkupRule' => 'applications/phurl/remarkup/PhabricatorPhurlLinkRemarkupRule.php',
|
||||
'PhabricatorPhurlRemarkupRule' => 'applications/phurl/remarkup/PhabricatorPhurlRemarkupRule.php',
|
||||
'PhabricatorPhurlSchemaSpec' => 'applications/phurl/storage/PhabricatorPhurlSchemaSpec.php',
|
||||
'PhabricatorPhurlShortURLController' => 'applications/phurl/controller/PhabricatorPhurlShortURLController.php',
|
||||
'PhabricatorPhurlShortURLDefaultController' => 'applications/phurl/controller/PhabricatorPhurlShortURLDefaultController.php',
|
||||
'PhabricatorPhurlURL' => 'applications/phurl/storage/PhabricatorPhurlURL.php',
|
||||
'PhabricatorPhurlURLAccessController' => 'applications/phurl/controller/PhabricatorPhurlURLAccessController.php',
|
||||
'PhabricatorPhurlURLEditController' => 'applications/phurl/controller/PhabricatorPhurlURLEditController.php',
|
||||
'PhabricatorPhurlURLEditor' => 'applications/phurl/editor/PhabricatorPhurlURLEditor.php',
|
||||
'PhabricatorPhurlURLListController' => 'applications/phurl/controller/PhabricatorPhurlURLListController.php',
|
||||
@@ -2655,6 +2699,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorPolicyDAO' => 'applications/policy/storage/PhabricatorPolicyDAO.php',
|
||||
'PhabricatorPolicyDataTestCase' => 'applications/policy/__tests__/PhabricatorPolicyDataTestCase.php',
|
||||
'PhabricatorPolicyEditController' => 'applications/policy/controller/PhabricatorPolicyEditController.php',
|
||||
'PhabricatorPolicyEditField' => 'applications/transactions/editfield/PhabricatorPolicyEditField.php',
|
||||
'PhabricatorPolicyException' => 'applications/policy/exception/PhabricatorPolicyException.php',
|
||||
'PhabricatorPolicyExplainController' => 'applications/policy/controller/PhabricatorPolicyExplainController.php',
|
||||
'PhabricatorPolicyFilter' => 'applications/policy/filter/PhabricatorPolicyFilter.php',
|
||||
@@ -2722,6 +2767,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorProjectObjectHasProjectEdgeType' => 'applications/project/edge/PhabricatorProjectObjectHasProjectEdgeType.php',
|
||||
'PhabricatorProjectOrUserDatasource' => 'applications/project/typeahead/PhabricatorProjectOrUserDatasource.php',
|
||||
'PhabricatorProjectOrUserFunctionDatasource' => 'applications/project/typeahead/PhabricatorProjectOrUserFunctionDatasource.php',
|
||||
'PhabricatorProjectPHIDResolver' => 'applications/phid/resolver/PhabricatorProjectPHIDResolver.php',
|
||||
'PhabricatorProjectProfileController' => 'applications/project/controller/PhabricatorProjectProfileController.php',
|
||||
'PhabricatorProjectProjectHasMemberEdgeType' => 'applications/project/edge/PhabricatorProjectProjectHasMemberEdgeType.php',
|
||||
'PhabricatorProjectProjectHasObjectEdgeType' => 'applications/project/edge/PhabricatorProjectProjectHasObjectEdgeType.php',
|
||||
@@ -2744,6 +2790,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorProjectUserFunctionDatasource' => 'applications/project/typeahead/PhabricatorProjectUserFunctionDatasource.php',
|
||||
'PhabricatorProjectViewController' => 'applications/project/controller/PhabricatorProjectViewController.php',
|
||||
'PhabricatorProjectWatchController' => 'applications/project/controller/PhabricatorProjectWatchController.php',
|
||||
'PhabricatorProjectsEditField' => 'applications/transactions/editfield/PhabricatorProjectsEditField.php',
|
||||
'PhabricatorProjectsPolicyRule' => 'applications/policy/rule/PhabricatorProjectsPolicyRule.php',
|
||||
'PhabricatorProtocolAdapter' => 'infrastructure/daemon/bot/adapter/PhabricatorProtocolAdapter.php',
|
||||
'PhabricatorPygmentSetupCheck' => 'applications/config/check/PhabricatorPygmentSetupCheck.php',
|
||||
@@ -2918,6 +2965,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorSearchWorker' => 'applications/search/worker/PhabricatorSearchWorker.php',
|
||||
'PhabricatorSecurityConfigOptions' => 'applications/config/option/PhabricatorSecurityConfigOptions.php',
|
||||
'PhabricatorSecuritySetupCheck' => 'applications/config/check/PhabricatorSecuritySetupCheck.php',
|
||||
'PhabricatorSelectEditField' => 'applications/transactions/editfield/PhabricatorSelectEditField.php',
|
||||
'PhabricatorSendGridConfigOptions' => 'applications/config/option/PhabricatorSendGridConfigOptions.php',
|
||||
'PhabricatorSessionsSettingsPanel' => 'applications/settings/panel/PhabricatorSessionsSettingsPanel.php',
|
||||
'PhabricatorSettingsAddEmailAction' => 'applications/settings/action/PhabricatorSettingsAddEmailAction.php',
|
||||
@@ -2931,6 +2979,8 @@ phutil_register_library_map(array(
|
||||
'PhabricatorSetupIssue' => 'applications/config/issue/PhabricatorSetupIssue.php',
|
||||
'PhabricatorSetupIssueUIExample' => 'applications/uiexample/examples/PhabricatorSetupIssueUIExample.php',
|
||||
'PhabricatorSetupIssueView' => 'applications/config/view/PhabricatorSetupIssueView.php',
|
||||
'PhabricatorShortSite' => 'aphront/site/PhabricatorShortSite.php',
|
||||
'PhabricatorSimpleEditType' => 'applications/transactions/edittype/PhabricatorSimpleEditType.php',
|
||||
'PhabricatorSite' => 'aphront/site/PhabricatorSite.php',
|
||||
'PhabricatorSlowvoteApplication' => 'applications/slowvote/application/PhabricatorSlowvoteApplication.php',
|
||||
'PhabricatorSlowvoteChoice' => 'applications/slowvote/storage/PhabricatorSlowvoteChoice.php',
|
||||
@@ -2959,6 +3009,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorSlugTestCase' => 'infrastructure/util/__tests__/PhabricatorSlugTestCase.php',
|
||||
'PhabricatorSortTableUIExample' => 'applications/uiexample/examples/PhabricatorSortTableUIExample.php',
|
||||
'PhabricatorSourceCodeView' => 'view/layout/PhabricatorSourceCodeView.php',
|
||||
'PhabricatorSpaceEditField' => 'applications/transactions/editfield/PhabricatorSpaceEditField.php',
|
||||
'PhabricatorSpacesApplication' => 'applications/spaces/application/PhabricatorSpacesApplication.php',
|
||||
'PhabricatorSpacesArchiveController' => 'applications/spaces/controller/PhabricatorSpacesArchiveController.php',
|
||||
'PhabricatorSpacesCapabilityCreateSpaces' => 'applications/spaces/capability/PhabricatorSpacesCapabilityCreateSpaces.php',
|
||||
@@ -3022,6 +3073,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorStreamingProtocolAdapter' => 'infrastructure/daemon/bot/adapter/PhabricatorStreamingProtocolAdapter.php',
|
||||
'PhabricatorSubscribableInterface' => 'applications/subscriptions/interface/PhabricatorSubscribableInterface.php',
|
||||
'PhabricatorSubscribedToObjectEdgeType' => 'applications/transactions/edges/PhabricatorSubscribedToObjectEdgeType.php',
|
||||
'PhabricatorSubscribersEditField' => 'applications/transactions/editfield/PhabricatorSubscribersEditField.php',
|
||||
'PhabricatorSubscribersQuery' => 'applications/subscriptions/query/PhabricatorSubscribersQuery.php',
|
||||
'PhabricatorSubscriptionTriggerClock' => 'infrastructure/daemon/workers/clock/PhabricatorSubscriptionTriggerClock.php',
|
||||
'PhabricatorSubscriptionsAddSelfHeraldAction' => 'applications/subscriptions/herald/PhabricatorSubscriptionsAddSelfHeraldAction.php',
|
||||
@@ -3065,6 +3117,8 @@ phutil_register_library_map(array(
|
||||
'PhabricatorTestNoCycleEdgeType' => 'applications/transactions/edges/PhabricatorTestNoCycleEdgeType.php',
|
||||
'PhabricatorTestStorageEngine' => 'applications/files/engine/PhabricatorTestStorageEngine.php',
|
||||
'PhabricatorTestWorker' => 'infrastructure/daemon/workers/__tests__/PhabricatorTestWorker.php',
|
||||
'PhabricatorTextAreaEditField' => 'applications/transactions/editfield/PhabricatorTextAreaEditField.php',
|
||||
'PhabricatorTextEditField' => 'applications/transactions/editfield/PhabricatorTextEditField.php',
|
||||
'PhabricatorTime' => 'infrastructure/time/PhabricatorTime.php',
|
||||
'PhabricatorTimeGuard' => 'infrastructure/time/PhabricatorTimeGuard.php',
|
||||
'PhabricatorTimeTestCase' => 'infrastructure/time/__tests__/PhabricatorTimeTestCase.php',
|
||||
@@ -3086,6 +3140,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorTokenReceiverQuery' => 'applications/tokens/query/PhabricatorTokenReceiverQuery.php',
|
||||
'PhabricatorTokenTokenPHIDType' => 'applications/tokens/phid/PhabricatorTokenTokenPHIDType.php',
|
||||
'PhabricatorTokenUIEventListener' => 'applications/tokens/event/PhabricatorTokenUIEventListener.php',
|
||||
'PhabricatorTokenizerEditField' => 'applications/transactions/editfield/PhabricatorTokenizerEditField.php',
|
||||
'PhabricatorTokensApplication' => 'applications/tokens/application/PhabricatorTokensApplication.php',
|
||||
'PhabricatorTokensSettingsPanel' => 'applications/settings/panel/PhabricatorTokensSettingsPanel.php',
|
||||
'PhabricatorTooltipUIExample' => 'applications/uiexample/examples/PhabricatorTooltipUIExample.php',
|
||||
@@ -3133,6 +3188,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorUserEmailTestCase' => 'applications/people/storage/__tests__/PhabricatorUserEmailTestCase.php',
|
||||
'PhabricatorUserLog' => 'applications/people/storage/PhabricatorUserLog.php',
|
||||
'PhabricatorUserLogView' => 'applications/people/view/PhabricatorUserLogView.php',
|
||||
'PhabricatorUserPHIDResolver' => 'applications/phid/resolver/PhabricatorUserPHIDResolver.php',
|
||||
'PhabricatorUserPreferences' => 'applications/settings/storage/PhabricatorUserPreferences.php',
|
||||
'PhabricatorUserProfile' => 'applications/people/storage/PhabricatorUserProfile.php',
|
||||
'PhabricatorUserProfileEditor' => 'applications/people/editor/PhabricatorUserProfileEditor.php',
|
||||
@@ -3145,6 +3201,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorUserTestCase' => 'applications/people/storage/__tests__/PhabricatorUserTestCase.php',
|
||||
'PhabricatorUserTitleField' => 'applications/people/customfield/PhabricatorUserTitleField.php',
|
||||
'PhabricatorUserTransaction' => 'applications/people/storage/PhabricatorUserTransaction.php',
|
||||
'PhabricatorUsersEditField' => 'applications/transactions/editfield/PhabricatorUsersEditField.php',
|
||||
'PhabricatorUsersPolicyRule' => 'applications/policy/rule/PhabricatorUsersPolicyRule.php',
|
||||
'PhabricatorUsersSearchField' => 'applications/people/searchfield/PhabricatorUsersSearchField.php',
|
||||
'PhabricatorVCSResponse' => 'applications/repository/response/PhabricatorVCSResponse.php',
|
||||
@@ -3216,6 +3273,8 @@ phutil_register_library_map(array(
|
||||
'PhameBasicBlogSkin' => 'applications/phame/skins/PhameBasicBlogSkin.php',
|
||||
'PhameBasicTemplateBlogSkin' => 'applications/phame/skins/PhameBasicTemplateBlogSkin.php',
|
||||
'PhameBlog' => 'applications/phame/storage/PhameBlog.php',
|
||||
'PhameBlogController' => 'applications/phame/controller/blog/PhameBlogController.php',
|
||||
'PhameBlogCreateCapability' => 'applications/phame/capability/PhameBlogCreateCapability.php',
|
||||
'PhameBlogDeleteController' => 'applications/phame/controller/blog/PhameBlogDeleteController.php',
|
||||
'PhameBlogEditController' => 'applications/phame/controller/blog/PhameBlogEditController.php',
|
||||
'PhameBlogEditor' => 'applications/phame/editor/PhameBlogEditor.php',
|
||||
@@ -3223,29 +3282,37 @@ phutil_register_library_map(array(
|
||||
'PhameBlogListController' => 'applications/phame/controller/blog/PhameBlogListController.php',
|
||||
'PhameBlogLiveController' => 'applications/phame/controller/blog/PhameBlogLiveController.php',
|
||||
'PhameBlogQuery' => 'applications/phame/query/PhameBlogQuery.php',
|
||||
'PhameBlogReplyHandler' => 'applications/phame/mail/PhameBlogReplyHandler.php',
|
||||
'PhameBlogSearchEngine' => 'applications/phame/query/PhameBlogSearchEngine.php',
|
||||
'PhameBlogSite' => 'applications/phame/site/PhameBlogSite.php',
|
||||
'PhameBlogSkin' => 'applications/phame/skins/PhameBlogSkin.php',
|
||||
'PhameBlogTransaction' => 'applications/phame/storage/PhameBlogTransaction.php',
|
||||
'PhameBlogTransactionQuery' => 'applications/phame/query/PhameBlogTransactionQuery.php',
|
||||
'PhameBlogViewController' => 'applications/phame/controller/blog/PhameBlogViewController.php',
|
||||
'PhameCelerityResources' => 'applications/phame/celerity/PhameCelerityResources.php',
|
||||
'PhameConduitAPIMethod' => 'applications/phame/conduit/PhameConduitAPIMethod.php',
|
||||
'PhameConstants' => 'applications/phame/constants/PhameConstants.php',
|
||||
'PhameController' => 'applications/phame/controller/PhameController.php',
|
||||
'PhameCreatePostConduitAPIMethod' => 'applications/phame/conduit/PhameCreatePostConduitAPIMethod.php',
|
||||
'PhameDAO' => 'applications/phame/storage/PhameDAO.php',
|
||||
'PhamePost' => 'applications/phame/storage/PhamePost.php',
|
||||
'PhamePostCommentController' => 'applications/phame/controller/post/PhamePostCommentController.php',
|
||||
'PhamePostController' => 'applications/phame/controller/post/PhamePostController.php',
|
||||
'PhamePostDeleteController' => 'applications/phame/controller/post/PhamePostDeleteController.php',
|
||||
'PhamePostEditController' => 'applications/phame/controller/post/PhamePostEditController.php',
|
||||
'PhamePostEditor' => 'applications/phame/editor/PhamePostEditor.php',
|
||||
'PhamePostFramedController' => 'applications/phame/controller/post/PhamePostFramedController.php',
|
||||
'PhamePostListController' => 'applications/phame/controller/post/PhamePostListController.php',
|
||||
'PhamePostMailReceiver' => 'applications/phame/mail/PhamePostMailReceiver.php',
|
||||
'PhamePostNewController' => 'applications/phame/controller/post/PhamePostNewController.php',
|
||||
'PhamePostNotLiveController' => 'applications/phame/controller/post/PhamePostNotLiveController.php',
|
||||
'PhamePostPreviewController' => 'applications/phame/controller/post/PhamePostPreviewController.php',
|
||||
'PhamePostPublishController' => 'applications/phame/controller/post/PhamePostPublishController.php',
|
||||
'PhamePostQuery' => 'applications/phame/query/PhamePostQuery.php',
|
||||
'PhamePostReplyHandler' => 'applications/phame/mail/PhamePostReplyHandler.php',
|
||||
'PhamePostSearchEngine' => 'applications/phame/query/PhamePostSearchEngine.php',
|
||||
'PhamePostTransaction' => 'applications/phame/storage/PhamePostTransaction.php',
|
||||
'PhamePostTransactionComment' => 'applications/phame/storage/PhamePostTransactionComment.php',
|
||||
'PhamePostTransactionQuery' => 'applications/phame/query/PhamePostTransactionQuery.php',
|
||||
'PhamePostUnpublishController' => 'applications/phame/controller/post/PhamePostUnpublishController.php',
|
||||
'PhamePostView' => 'applications/phame/view/PhamePostView.php',
|
||||
@@ -3366,7 +3433,6 @@ phutil_register_library_map(array(
|
||||
'PhortuneMerchantTransactionQuery' => 'applications/phortune/query/PhortuneMerchantTransactionQuery.php',
|
||||
'PhortuneMerchantViewController' => 'applications/phortune/controller/PhortuneMerchantViewController.php',
|
||||
'PhortuneMonthYearExpiryControl' => 'applications/phortune/control/PhortuneMonthYearExpiryControl.php',
|
||||
'PhortuneNotImplementedException' => 'applications/phortune/exception/PhortuneNotImplementedException.php',
|
||||
'PhortuneOrderTableView' => 'applications/phortune/view/PhortuneOrderTableView.php',
|
||||
'PhortunePayPalPaymentProvider' => 'applications/phortune/provider/PhortunePayPalPaymentProvider.php',
|
||||
'PhortunePaymentMethod' => 'applications/phortune/storage/PhortunePaymentMethod.php',
|
||||
@@ -3853,6 +3919,7 @@ phutil_register_library_map(array(
|
||||
'AphrontFormView' => 'AphrontView',
|
||||
'AphrontGlyphBarView' => 'AphrontBarView',
|
||||
'AphrontHTMLResponse' => 'AphrontResponse',
|
||||
'AphrontHTTPParameterType' => 'Phobject',
|
||||
'AphrontHTTPProxyResponse' => 'AphrontResponse',
|
||||
'AphrontHTTPSink' => 'Phobject',
|
||||
'AphrontHTTPSinkTestCase' => 'PhabricatorTestCase',
|
||||
@@ -3867,10 +3934,13 @@ phutil_register_library_map(array(
|
||||
'AphrontMultiColumnView' => 'AphrontView',
|
||||
'AphrontMySQLDatabaseConnectionTestCase' => 'PhabricatorTestCase',
|
||||
'AphrontNullView' => 'AphrontView',
|
||||
'AphrontPHIDHTTPParameterType' => 'AphrontHTTPParameterType',
|
||||
'AphrontPHIDListHTTPParameterType' => 'AphrontHTTPParameterType',
|
||||
'AphrontPHPHTTPSink' => 'AphrontHTTPSink',
|
||||
'AphrontPageView' => 'AphrontView',
|
||||
'AphrontPlainTextResponse' => 'AphrontResponse',
|
||||
'AphrontProgressBarView' => 'AphrontBarView',
|
||||
'AphrontProjectListHTTPParameterType' => 'AphrontHTTPParameterType',
|
||||
'AphrontProxyResponse' => array(
|
||||
'AphrontResponse',
|
||||
'AphrontResponseProducerInterface',
|
||||
@@ -3884,15 +3954,19 @@ phutil_register_library_map(array(
|
||||
'AphrontResponse' => 'Phobject',
|
||||
'AphrontRoutingMap' => 'Phobject',
|
||||
'AphrontRoutingResult' => 'Phobject',
|
||||
'AphrontSelectHTTPParameterType' => 'AphrontHTTPParameterType',
|
||||
'AphrontSideNavFilterView' => 'AphrontView',
|
||||
'AphrontSite' => 'Phobject',
|
||||
'AphrontStackTraceView' => 'AphrontView',
|
||||
'AphrontStandaloneHTMLResponse' => 'AphrontHTMLResponse',
|
||||
'AphrontStringHTTPParameterType' => 'AphrontHTTPParameterType',
|
||||
'AphrontStringListHTTPParameterType' => 'AphrontHTTPParameterType',
|
||||
'AphrontTableView' => 'AphrontView',
|
||||
'AphrontTagView' => 'AphrontView',
|
||||
'AphrontTokenizerTemplateView' => 'AphrontView',
|
||||
'AphrontTypeaheadTemplateView' => 'AphrontView',
|
||||
'AphrontUnhandledExceptionResponse' => 'AphrontStandaloneHTMLResponse',
|
||||
'AphrontUserListHTTPParameterType' => 'AphrontHTTPParameterType',
|
||||
'AphrontView' => array(
|
||||
'Phobject',
|
||||
'PhutilSafeHTMLProducerInterface',
|
||||
@@ -5314,6 +5388,7 @@ phutil_register_library_map(array(
|
||||
'PHUI' => 'Phobject',
|
||||
'PHUIActionPanelExample' => 'PhabricatorUIExample',
|
||||
'PHUIActionPanelView' => 'AphrontTagView',
|
||||
'PHUIApplicationMenuView' => 'Phobject',
|
||||
'PHUIBadgeBoxView' => 'AphrontTagView',
|
||||
'PHUIBadgeExample' => 'PhabricatorUIExample',
|
||||
'PHUIBadgeMiniView' => 'AphrontTagView',
|
||||
@@ -5344,6 +5419,7 @@ phutil_register_library_map(array(
|
||||
'PHUIDiffTwoUpInlineCommentRowScaffold' => 'PHUIDiffInlineCommentRowScaffold',
|
||||
'PHUIDocumentExample' => 'PhabricatorUIExample',
|
||||
'PHUIDocumentView' => 'AphrontTagView',
|
||||
'PHUIDocumentViewPro' => 'AphrontTagView',
|
||||
'PHUIFeedStoryExample' => 'PhabricatorUIExample',
|
||||
'PHUIFeedStoryView' => 'AphrontView',
|
||||
'PHUIFormDividerControl' => 'AphrontFormControl',
|
||||
@@ -5447,6 +5523,7 @@ phutil_register_library_map(array(
|
||||
'PasteCreateMailReceiver' => 'PhabricatorMailReceiver',
|
||||
'PasteDefaultEditCapability' => 'PhabricatorPolicyCapability',
|
||||
'PasteDefaultViewCapability' => 'PhabricatorPolicyCapability',
|
||||
'PasteEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod',
|
||||
'PasteEmbedView' => 'AphrontView',
|
||||
'PasteInfoConduitAPIMethod' => 'PasteConduitAPIMethod',
|
||||
'PasteMailReceiver' => 'PhabricatorObjectMailReceiver',
|
||||
@@ -5492,6 +5569,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorApplicationDetailViewController' => 'PhabricatorApplicationsController',
|
||||
'PhabricatorApplicationDocumentation' => 'PhabricatorApplication',
|
||||
'PhabricatorApplicationEditController' => 'PhabricatorApplicationsController',
|
||||
'PhabricatorApplicationEditHTTPParameterHelpView' => 'AphrontView',
|
||||
'PhabricatorApplicationEmailCommandsController' => 'PhabricatorApplicationsController',
|
||||
'PhabricatorApplicationLaunchView' => 'AphrontTagView',
|
||||
'PhabricatorApplicationPanelController' => 'PhabricatorApplicationsController',
|
||||
@@ -5821,7 +5899,6 @@ phutil_register_library_map(array(
|
||||
'PhabricatorCommonPasswords' => 'Phobject',
|
||||
'PhabricatorConduitAPIController' => 'PhabricatorConduitController',
|
||||
'PhabricatorConduitApplication' => 'PhabricatorApplication',
|
||||
'PhabricatorConduitCertificateSettingsPanel' => 'PhabricatorSettingsPanel',
|
||||
'PhabricatorConduitCertificateToken' => 'PhabricatorConduitDAO',
|
||||
'PhabricatorConduitConnectionLog' => 'PhabricatorConduitDAO',
|
||||
'PhabricatorConduitConsoleController' => 'PhabricatorConduitController',
|
||||
@@ -5875,6 +5952,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorConfigEntryQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||
'PhabricatorConfigFileSource' => 'PhabricatorConfigProxySource',
|
||||
'PhabricatorConfigGroupController' => 'PhabricatorConfigController',
|
||||
'PhabricatorConfigHTTPParameterTypesModule' => 'PhabricatorConfigModule',
|
||||
'PhabricatorConfigHistoryController' => 'PhabricatorConfigController',
|
||||
'PhabricatorConfigIgnoreController' => 'PhabricatorConfigController',
|
||||
'PhabricatorConfigIssueListController' => 'PhabricatorConfigController',
|
||||
@@ -6007,6 +6085,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorDaemonManagementStatusWorkflow' => 'PhabricatorDaemonManagementWorkflow',
|
||||
'PhabricatorDaemonManagementStopWorkflow' => 'PhabricatorDaemonManagementWorkflow',
|
||||
'PhabricatorDaemonManagementWorkflow' => 'PhabricatorManagementWorkflow',
|
||||
'PhabricatorDaemonOverseerModule' => 'PhutilDaemonOverseerModule',
|
||||
'PhabricatorDaemonReference' => 'Phobject',
|
||||
'PhabricatorDaemonTaskGarbageCollector' => 'PhabricatorGarbageCollector',
|
||||
'PhabricatorDaemonTasksTableView' => 'AphrontView',
|
||||
@@ -6084,6 +6163,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorDataCacheSpec' => 'PhabricatorCacheSpec',
|
||||
'PhabricatorDataNotAttachedException' => 'Exception',
|
||||
'PhabricatorDatabaseSetupCheck' => 'PhabricatorSetupCheck',
|
||||
'PhabricatorDatasourceEditField' => 'PhabricatorTokenizerEditField',
|
||||
'PhabricatorDateTimeSettingsPanel' => 'PhabricatorSettingsPanel',
|
||||
'PhabricatorDebugController' => 'PhabricatorController',
|
||||
'PhabricatorDefaultRequestExceptionHandler' => 'PhabricatorRequestExceptionHandler',
|
||||
@@ -6102,7 +6182,6 @@ phutil_register_library_map(array(
|
||||
'PhabricatorDisabledUserController' => 'PhabricatorAuthController',
|
||||
'PhabricatorDisplayPreferencesSettingsPanel' => 'PhabricatorSettingsPanel',
|
||||
'PhabricatorDisqusAuthProvider' => 'PhabricatorOAuth2AuthProvider',
|
||||
'PhabricatorDisqusConfigOptions' => 'PhabricatorApplicationConfigOptions',
|
||||
'PhabricatorDivinerApplication' => 'PhabricatorApplication',
|
||||
'PhabricatorDoorkeeperApplication' => 'PhabricatorApplication',
|
||||
'PhabricatorDraft' => 'PhabricatorDraftDAO',
|
||||
@@ -6111,12 +6190,40 @@ phutil_register_library_map(array(
|
||||
'PhabricatorEdgeConfig' => 'PhabricatorEdgeConstants',
|
||||
'PhabricatorEdgeConstants' => 'Phobject',
|
||||
'PhabricatorEdgeCycleException' => 'Exception',
|
||||
'PhabricatorEdgeEditType' => 'PhabricatorEditType',
|
||||
'PhabricatorEdgeEditor' => 'Phobject',
|
||||
'PhabricatorEdgeGraph' => 'AbstractDirectedGraph',
|
||||
'PhabricatorEdgeQuery' => 'PhabricatorQuery',
|
||||
'PhabricatorEdgeTestCase' => 'PhabricatorTestCase',
|
||||
'PhabricatorEdgeType' => 'Phobject',
|
||||
'PhabricatorEdgeTypeTestCase' => 'PhabricatorTestCase',
|
||||
'PhabricatorEditEngine' => array(
|
||||
'Phobject',
|
||||
'PhabricatorPolicyInterface',
|
||||
),
|
||||
'PhabricatorEditEngineAPIMethod' => 'ConduitAPIMethod',
|
||||
'PhabricatorEditEngineConfiguration' => array(
|
||||
'PhabricatorSearchDAO',
|
||||
'PhabricatorApplicationTransactionInterface',
|
||||
'PhabricatorPolicyInterface',
|
||||
),
|
||||
'PhabricatorEditEngineConfigurationEditController' => 'PhabricatorEditEngineController',
|
||||
'PhabricatorEditEngineConfigurationEditEngine' => 'PhabricatorEditEngine',
|
||||
'PhabricatorEditEngineConfigurationEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||
'PhabricatorEditEngineConfigurationListController' => 'PhabricatorEditEngineController',
|
||||
'PhabricatorEditEngineConfigurationPHIDType' => 'PhabricatorPHIDType',
|
||||
'PhabricatorEditEngineConfigurationQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||
'PhabricatorEditEngineConfigurationSaveController' => 'PhabricatorEditEngineController',
|
||||
'PhabricatorEditEngineConfigurationSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||
'PhabricatorEditEngineConfigurationTransaction' => 'PhabricatorApplicationTransaction',
|
||||
'PhabricatorEditEngineConfigurationTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
|
||||
'PhabricatorEditEngineConfigurationViewController' => 'PhabricatorEditEngineController',
|
||||
'PhabricatorEditEngineController' => 'PhabricatorApplicationTransactionController',
|
||||
'PhabricatorEditEngineListController' => 'PhabricatorEditEngineController',
|
||||
'PhabricatorEditEngineQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||
'PhabricatorEditEngineSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||
'PhabricatorEditField' => 'Phobject',
|
||||
'PhabricatorEditType' => 'Phobject',
|
||||
'PhabricatorEditor' => 'Phobject',
|
||||
'PhabricatorElasticSearchEngine' => 'PhabricatorSearchEngine',
|
||||
'PhabricatorElasticSearchSetupCheck' => 'PhabricatorSetupCheck',
|
||||
@@ -6294,6 +6401,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorGlobalLock' => 'PhutilLock',
|
||||
'PhabricatorGlobalUploadTargetView' => 'AphrontView',
|
||||
'PhabricatorGoogleAuthProvider' => 'PhabricatorOAuth2AuthProvider',
|
||||
'PhabricatorHTTPParameterTypeTableView' => 'AphrontView',
|
||||
'PhabricatorHandleList' => array(
|
||||
'Phobject',
|
||||
'Iterator',
|
||||
@@ -6334,6 +6442,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorInlineCommentInterface' => 'PhabricatorMarkupInterface',
|
||||
'PhabricatorInlineCommentPreviewController' => 'PhabricatorController',
|
||||
'PhabricatorInlineSummaryView' => 'AphrontView',
|
||||
'PhabricatorInstructionsEditField' => 'PhabricatorEditField',
|
||||
'PhabricatorInternationalizationManagementExtractWorkflow' => 'PhabricatorInternationalizationManagementWorkflow',
|
||||
'PhabricatorInternationalizationManagementWorkflow' => 'PhabricatorManagementWorkflow',
|
||||
'PhabricatorInvalidConfigSetupCheck' => 'PhabricatorSetupCheck',
|
||||
@@ -6620,6 +6729,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorPHDConfigOptions' => 'PhabricatorApplicationConfigOptions',
|
||||
'PhabricatorPHID' => 'Phobject',
|
||||
'PhabricatorPHIDConstants' => 'Phobject',
|
||||
'PhabricatorPHIDResolver' => 'Phobject',
|
||||
'PhabricatorPHIDType' => 'Phobject',
|
||||
'PhabricatorPHIDTypeTestCase' => 'PhutilTestCase',
|
||||
'PhabricatorPHPASTApplication' => 'PhabricatorApplication',
|
||||
@@ -6651,6 +6761,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorPasteController' => 'PhabricatorController',
|
||||
'PhabricatorPasteDAO' => 'PhabricatorLiskDAO',
|
||||
'PhabricatorPasteEditController' => 'PhabricatorPasteController',
|
||||
'PhabricatorPasteEditEngine' => 'PhabricatorEditEngine',
|
||||
'PhabricatorPasteEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||
'PhabricatorPasteListController' => 'PhabricatorPasteController',
|
||||
'PhabricatorPastePastePHIDType' => 'PhabricatorPHIDType',
|
||||
@@ -6719,9 +6830,14 @@ phutil_register_library_map(array(
|
||||
'PhabricatorPhrictionApplication' => 'PhabricatorApplication',
|
||||
'PhabricatorPhrictionConfigOptions' => 'PhabricatorApplicationConfigOptions',
|
||||
'PhabricatorPhurlApplication' => 'PhabricatorApplication',
|
||||
'PhabricatorPhurlConfigOptions' => 'PhabricatorApplicationConfigOptions',
|
||||
'PhabricatorPhurlController' => 'PhabricatorController',
|
||||
'PhabricatorPhurlDAO' => 'PhabricatorLiskDAO',
|
||||
'PhabricatorPhurlLinkRemarkupRule' => 'PhutilRemarkupRule',
|
||||
'PhabricatorPhurlRemarkupRule' => 'PhabricatorObjectRemarkupRule',
|
||||
'PhabricatorPhurlSchemaSpec' => 'PhabricatorConfigSchemaSpec',
|
||||
'PhabricatorPhurlShortURLController' => 'PhabricatorPhurlController',
|
||||
'PhabricatorPhurlShortURLDefaultController' => 'PhabricatorPhurlController',
|
||||
'PhabricatorPhurlURL' => array(
|
||||
'PhabricatorPhurlDAO',
|
||||
'PhabricatorPolicyInterface',
|
||||
@@ -6734,6 +6850,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorFlaggableInterface',
|
||||
'PhabricatorSpacesInterface',
|
||||
),
|
||||
'PhabricatorPhurlURLAccessController' => 'PhabricatorPhurlController',
|
||||
'PhabricatorPhurlURLEditController' => 'PhabricatorPhurlController',
|
||||
'PhabricatorPhurlURLEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||
'PhabricatorPhurlURLListController' => 'PhabricatorPhurlController',
|
||||
@@ -6765,6 +6882,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorPolicyDAO' => 'PhabricatorLiskDAO',
|
||||
'PhabricatorPolicyDataTestCase' => 'PhabricatorTestCase',
|
||||
'PhabricatorPolicyEditController' => 'PhabricatorPolicyController',
|
||||
'PhabricatorPolicyEditField' => 'PhabricatorEditField',
|
||||
'PhabricatorPolicyException' => 'Exception',
|
||||
'PhabricatorPolicyExplainController' => 'PhabricatorPolicyController',
|
||||
'PhabricatorPolicyFilter' => 'Phobject',
|
||||
@@ -6854,6 +6972,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorProjectObjectHasProjectEdgeType' => 'PhabricatorEdgeType',
|
||||
'PhabricatorProjectOrUserDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
|
||||
'PhabricatorProjectOrUserFunctionDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
|
||||
'PhabricatorProjectPHIDResolver' => 'PhabricatorPHIDResolver',
|
||||
'PhabricatorProjectProfileController' => 'PhabricatorProjectController',
|
||||
'PhabricatorProjectProjectHasMemberEdgeType' => 'PhabricatorEdgeType',
|
||||
'PhabricatorProjectProjectHasObjectEdgeType' => 'PhabricatorEdgeType',
|
||||
@@ -6879,6 +6998,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorProjectUserFunctionDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
|
||||
'PhabricatorProjectViewController' => 'PhabricatorProjectController',
|
||||
'PhabricatorProjectWatchController' => 'PhabricatorProjectController',
|
||||
'PhabricatorProjectsEditField' => 'PhabricatorTokenizerEditField',
|
||||
'PhabricatorProjectsPolicyRule' => 'PhabricatorPolicyRule',
|
||||
'PhabricatorProtocolAdapter' => 'Phobject',
|
||||
'PhabricatorPygmentSetupCheck' => 'PhabricatorSetupCheck',
|
||||
@@ -7093,6 +7213,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorSearchWorker' => 'PhabricatorWorker',
|
||||
'PhabricatorSecurityConfigOptions' => 'PhabricatorApplicationConfigOptions',
|
||||
'PhabricatorSecuritySetupCheck' => 'PhabricatorSetupCheck',
|
||||
'PhabricatorSelectEditField' => 'PhabricatorEditField',
|
||||
'PhabricatorSendGridConfigOptions' => 'PhabricatorApplicationConfigOptions',
|
||||
'PhabricatorSessionsSettingsPanel' => 'PhabricatorSettingsPanel',
|
||||
'PhabricatorSettingsAddEmailAction' => 'PhabricatorSystemAction',
|
||||
@@ -7106,6 +7227,8 @@ phutil_register_library_map(array(
|
||||
'PhabricatorSetupIssue' => 'Phobject',
|
||||
'PhabricatorSetupIssueUIExample' => 'PhabricatorUIExample',
|
||||
'PhabricatorSetupIssueView' => 'AphrontView',
|
||||
'PhabricatorShortSite' => 'PhabricatorSite',
|
||||
'PhabricatorSimpleEditType' => 'PhabricatorEditType',
|
||||
'PhabricatorSite' => 'AphrontSite',
|
||||
'PhabricatorSlowvoteApplication' => 'PhabricatorApplication',
|
||||
'PhabricatorSlowvoteChoice' => 'PhabricatorSlowvoteDAO',
|
||||
@@ -7144,6 +7267,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorSlugTestCase' => 'PhabricatorTestCase',
|
||||
'PhabricatorSortTableUIExample' => 'PhabricatorUIExample',
|
||||
'PhabricatorSourceCodeView' => 'AphrontView',
|
||||
'PhabricatorSpaceEditField' => 'PhabricatorEditField',
|
||||
'PhabricatorSpacesApplication' => 'PhabricatorApplication',
|
||||
'PhabricatorSpacesArchiveController' => 'PhabricatorSpacesController',
|
||||
'PhabricatorSpacesCapabilityCreateSpaces' => 'PhabricatorPolicyCapability',
|
||||
@@ -7188,7 +7312,10 @@ phutil_register_library_map(array(
|
||||
'PhabricatorStandardCustomFieldText' => 'PhabricatorStandardCustomField',
|
||||
'PhabricatorStandardCustomFieldTokenizer' => 'PhabricatorStandardCustomFieldPHIDs',
|
||||
'PhabricatorStandardCustomFieldUsers' => 'PhabricatorStandardCustomFieldTokenizer',
|
||||
'PhabricatorStandardPageView' => 'PhabricatorBarePageView',
|
||||
'PhabricatorStandardPageView' => array(
|
||||
'PhabricatorBarePageView',
|
||||
'AphrontResponseProducerInterface',
|
||||
),
|
||||
'PhabricatorStandardSelectCustomFieldDatasource' => 'PhabricatorTypeaheadDatasource',
|
||||
'PhabricatorStatusController' => 'PhabricatorController',
|
||||
'PhabricatorStatusUIExample' => 'PhabricatorUIExample',
|
||||
@@ -7210,6 +7337,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorStorageSetupCheck' => 'PhabricatorSetupCheck',
|
||||
'PhabricatorStreamingProtocolAdapter' => 'PhabricatorProtocolAdapter',
|
||||
'PhabricatorSubscribedToObjectEdgeType' => 'PhabricatorEdgeType',
|
||||
'PhabricatorSubscribersEditField' => 'PhabricatorTokenizerEditField',
|
||||
'PhabricatorSubscribersQuery' => 'PhabricatorQuery',
|
||||
'PhabricatorSubscriptionTriggerClock' => 'PhabricatorTriggerClock',
|
||||
'PhabricatorSubscriptionsAddSelfHeraldAction' => 'PhabricatorSubscriptionsHeraldAction',
|
||||
@@ -7253,6 +7381,8 @@ phutil_register_library_map(array(
|
||||
'PhabricatorTestNoCycleEdgeType' => 'PhabricatorEdgeType',
|
||||
'PhabricatorTestStorageEngine' => 'PhabricatorFileStorageEngine',
|
||||
'PhabricatorTestWorker' => 'PhabricatorWorker',
|
||||
'PhabricatorTextAreaEditField' => 'PhabricatorEditField',
|
||||
'PhabricatorTextEditField' => 'PhabricatorEditField',
|
||||
'PhabricatorTime' => 'Phobject',
|
||||
'PhabricatorTimeGuard' => 'Phobject',
|
||||
'PhabricatorTimeTestCase' => 'PhabricatorTestCase',
|
||||
@@ -7279,6 +7409,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorTokenReceiverQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||
'PhabricatorTokenTokenPHIDType' => 'PhabricatorPHIDType',
|
||||
'PhabricatorTokenUIEventListener' => 'PhabricatorEventListener',
|
||||
'PhabricatorTokenizerEditField' => 'PhabricatorEditField',
|
||||
'PhabricatorTokensApplication' => 'PhabricatorApplication',
|
||||
'PhabricatorTokensSettingsPanel' => 'PhabricatorSettingsPanel',
|
||||
'PhabricatorTooltipUIExample' => 'PhabricatorUIExample',
|
||||
@@ -7341,6 +7472,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorPolicyInterface',
|
||||
),
|
||||
'PhabricatorUserLogView' => 'AphrontView',
|
||||
'PhabricatorUserPHIDResolver' => 'PhabricatorPHIDResolver',
|
||||
'PhabricatorUserPreferences' => 'PhabricatorUserDAO',
|
||||
'PhabricatorUserProfile' => 'PhabricatorUserDAO',
|
||||
'PhabricatorUserProfileEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||
@@ -7353,6 +7485,7 @@ phutil_register_library_map(array(
|
||||
'PhabricatorUserTestCase' => 'PhabricatorTestCase',
|
||||
'PhabricatorUserTitleField' => 'PhabricatorUserCustomField',
|
||||
'PhabricatorUserTransaction' => 'PhabricatorApplicationTransaction',
|
||||
'PhabricatorUsersEditField' => 'PhabricatorTokenizerEditField',
|
||||
'PhabricatorUsersPolicyRule' => 'PhabricatorPolicyRule',
|
||||
'PhabricatorUsersSearchField' => 'PhabricatorSearchTokenizerField',
|
||||
'PhabricatorVCSResponse' => 'AphrontResponse',
|
||||
@@ -7442,20 +7575,25 @@ phutil_register_library_map(array(
|
||||
'PhabricatorProjectInterface',
|
||||
'PhabricatorApplicationTransactionInterface',
|
||||
),
|
||||
'PhameBlogDeleteController' => 'PhameController',
|
||||
'PhameBlogEditController' => 'PhameController',
|
||||
'PhameBlogController' => 'PhameController',
|
||||
'PhameBlogCreateCapability' => 'PhabricatorPolicyCapability',
|
||||
'PhameBlogDeleteController' => 'PhameBlogController',
|
||||
'PhameBlogEditController' => 'PhameBlogController',
|
||||
'PhameBlogEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||
'PhameBlogFeedController' => 'PhameController',
|
||||
'PhameBlogListController' => 'PhameController',
|
||||
'PhameBlogLiveController' => 'PhameController',
|
||||
'PhameBlogFeedController' => 'PhameBlogController',
|
||||
'PhameBlogListController' => 'PhameBlogController',
|
||||
'PhameBlogLiveController' => 'PhameBlogController',
|
||||
'PhameBlogQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||
'PhameBlogReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||
'PhameBlogSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||
'PhameBlogSite' => 'PhameSite',
|
||||
'PhameBlogSkin' => 'PhabricatorController',
|
||||
'PhameBlogTransaction' => 'PhabricatorApplicationTransaction',
|
||||
'PhameBlogViewController' => 'PhameController',
|
||||
'PhameBlogTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
|
||||
'PhameBlogViewController' => 'PhameBlogController',
|
||||
'PhameCelerityResources' => 'CelerityResources',
|
||||
'PhameConduitAPIMethod' => 'ConduitAPIMethod',
|
||||
'PhameConstants' => 'Phobject',
|
||||
'PhameController' => 'PhabricatorController',
|
||||
'PhameCreatePostConduitAPIMethod' => 'PhameConduitAPIMethod',
|
||||
'PhameDAO' => 'PhabricatorLiskDAO',
|
||||
@@ -7469,22 +7607,27 @@ phutil_register_library_map(array(
|
||||
'PhabricatorSubscribableInterface',
|
||||
'PhabricatorTokenReceiverInterface',
|
||||
),
|
||||
'PhamePostDeleteController' => 'PhameController',
|
||||
'PhamePostEditController' => 'PhameController',
|
||||
'PhamePostCommentController' => 'PhamePostController',
|
||||
'PhamePostController' => 'PhameController',
|
||||
'PhamePostDeleteController' => 'PhamePostController',
|
||||
'PhamePostEditController' => 'PhamePostController',
|
||||
'PhamePostEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||
'PhamePostFramedController' => 'PhameController',
|
||||
'PhamePostListController' => 'PhameController',
|
||||
'PhamePostNewController' => 'PhameController',
|
||||
'PhamePostNotLiveController' => 'PhameController',
|
||||
'PhamePostPreviewController' => 'PhameController',
|
||||
'PhamePostPublishController' => 'PhameController',
|
||||
'PhamePostFramedController' => 'PhamePostController',
|
||||
'PhamePostListController' => 'PhamePostController',
|
||||
'PhamePostMailReceiver' => 'PhabricatorObjectMailReceiver',
|
||||
'PhamePostNewController' => 'PhamePostController',
|
||||
'PhamePostNotLiveController' => 'PhamePostController',
|
||||
'PhamePostPreviewController' => 'PhamePostController',
|
||||
'PhamePostPublishController' => 'PhamePostController',
|
||||
'PhamePostQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
|
||||
'PhamePostReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
|
||||
'PhamePostSearchEngine' => 'PhabricatorApplicationSearchEngine',
|
||||
'PhamePostTransaction' => 'PhabricatorApplicationTransaction',
|
||||
'PhamePostTransactionComment' => 'PhabricatorApplicationTransactionComment',
|
||||
'PhamePostTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
|
||||
'PhamePostUnpublishController' => 'PhameController',
|
||||
'PhamePostUnpublishController' => 'PhamePostController',
|
||||
'PhamePostView' => 'AphrontView',
|
||||
'PhamePostViewController' => 'PhameController',
|
||||
'PhamePostViewController' => 'PhamePostController',
|
||||
'PhameQueryConduitAPIMethod' => 'PhameConduitAPIMethod',
|
||||
'PhameQueryPostsConduitAPIMethod' => 'PhameConduitAPIMethod',
|
||||
'PhameResourceController' => 'CelerityResourceController',
|
||||
@@ -7637,7 +7780,6 @@ phutil_register_library_map(array(
|
||||
'PhortuneMerchantTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
|
||||
'PhortuneMerchantViewController' => 'PhortuneMerchantController',
|
||||
'PhortuneMonthYearExpiryControl' => 'AphrontFormControl',
|
||||
'PhortuneNotImplementedException' => 'Exception',
|
||||
'PhortuneOrderTableView' => 'AphrontView',
|
||||
'PhortunePayPalPaymentProvider' => 'PhortunePaymentProvider',
|
||||
'PhortunePaymentMethod' => array(
|
||||
|
309
src/aphront/httpparametertype/AphrontHTTPParameterType.php
Normal file
309
src/aphront/httpparametertype/AphrontHTTPParameterType.php
Normal file
@@ -0,0 +1,309 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Defines how to read a complex value from an HTTP request.
|
||||
*
|
||||
* Most HTTP parameters are simple (like strings or integers) but some
|
||||
* parameters accept more complex values (like lists of users or project names).
|
||||
*
|
||||
* This class handles reading simple and complex values from a request,
|
||||
* performing any required parsing or lookups, and returning a result in a
|
||||
* standard format.
|
||||
*
|
||||
* @task read Reading Values from a Request
|
||||
* @task info Information About the Type
|
||||
* @task util Parsing Utilities
|
||||
* @task impl Implementation
|
||||
*/
|
||||
abstract class AphrontHTTPParameterType extends Phobject {
|
||||
|
||||
|
||||
private $viewer;
|
||||
|
||||
|
||||
/* -( Reading Values from a Request )-------------------------------------- */
|
||||
|
||||
|
||||
/**
|
||||
* Set the current viewer.
|
||||
*
|
||||
* Some parameter types perform complex parsing involving lookups. For
|
||||
* example, a type might lookup usernames or project names. These types need
|
||||
* to use the current viewer to execute queries.
|
||||
*
|
||||
* @param PhabricatorUser Current viewer.
|
||||
* @return this
|
||||
* @task read
|
||||
*/
|
||||
final public function setViewer(PhabricatorUser $viewer) {
|
||||
$this->viewer = $viewer;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the current viewer.
|
||||
*
|
||||
* @return PhabricatorUser Current viewer.
|
||||
* @task read
|
||||
*/
|
||||
final public function getViewer() {
|
||||
if (!$this->viewer) {
|
||||
throw new PhutilInvalidStateException('setViewer');
|
||||
}
|
||||
return $this->viewer;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Test if a value is present in a request.
|
||||
*
|
||||
* @param AphrontRequest The incoming request.
|
||||
* @param string The key to examine.
|
||||
* @return bool True if a readable value is present in the request.
|
||||
* @task read
|
||||
*/
|
||||
final public function getExists(AphrontRequest $request, $key) {
|
||||
return $this->getParameterExists($request, $key);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Read a value from a request.
|
||||
*
|
||||
* If the value is not present, a default value is returned (usually `null`).
|
||||
* Use @{method:getExists} to test if a value is present.
|
||||
*
|
||||
* @param AphrontRequest The incoming request.
|
||||
* @param string The key to examine.
|
||||
* @return wild Value, or default if value is not present.
|
||||
* @task read
|
||||
*/
|
||||
final public function getValue(AphrontRequest $request, $key) {
|
||||
|
||||
if (!$this->getExists($request, $key)) {
|
||||
return $this->getParameterDefault();
|
||||
}
|
||||
|
||||
return $this->getParameterValue($request, $key);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get the default value for this parameter type.
|
||||
*
|
||||
* @return wild Default value for this type.
|
||||
* @task read
|
||||
*/
|
||||
final public function getDefaultValue() {
|
||||
return $this->getParameterDefault();
|
||||
}
|
||||
|
||||
|
||||
/* -( Information About the Type )----------------------------------------- */
|
||||
|
||||
|
||||
/**
|
||||
* Get a short name for this type, like `string` or `list<phid>`.
|
||||
*
|
||||
* @return string Short type name.
|
||||
* @task info
|
||||
*/
|
||||
final public function getTypeName() {
|
||||
return $this->getParameterTypeName();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get a list of human-readable descriptions of acceptable formats for this
|
||||
* type.
|
||||
*
|
||||
* For example, a type might return strings like these:
|
||||
*
|
||||
* > Any positive integer.
|
||||
* > A comma-separated list of PHIDs.
|
||||
*
|
||||
* This is used to explain to users how to specify a type when generating
|
||||
* documentation.
|
||||
*
|
||||
* @return list<string> Human-readable list of acceptable formats.
|
||||
* @task info
|
||||
*/
|
||||
final public function getFormatDescriptions() {
|
||||
return $this->getParameterFormatDescriptions();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get a list of human-readable examples of how to format this type as an
|
||||
* HTTP GET parameter.
|
||||
*
|
||||
* For example, a type might return strings like these:
|
||||
*
|
||||
* > v=123
|
||||
* > v[]=1&v[]=2
|
||||
*
|
||||
* This is used to show users how to specify parameters of this type in
|
||||
* generated documentation.
|
||||
*
|
||||
* @return list<string> Human-readable list of format examples.
|
||||
* @task info
|
||||
*/
|
||||
final public function getExamples() {
|
||||
return $this->getParameterExamples();
|
||||
}
|
||||
|
||||
|
||||
/* -( Utilities )---------------------------------------------------------- */
|
||||
|
||||
|
||||
/**
|
||||
* Call another type's existence check.
|
||||
*
|
||||
* This method allows a type to reuse the exitence behavior of a different
|
||||
* type. For example, a "list of users" type may have the same basic
|
||||
* existence check that a simpler "list of strings" type has, and can just
|
||||
* call the simpler type to reuse its behavior.
|
||||
*
|
||||
* @param AphrontHTTPParameterType The other type.
|
||||
* @param AphrontRequest Incoming request.
|
||||
* @param string Key to examine.
|
||||
* @return bool True if the parameter exists.
|
||||
* @task util
|
||||
*/
|
||||
final protected function getExistsWithType(
|
||||
AphrontHTTPParameterType $type,
|
||||
AphrontRequest $request,
|
||||
$key) {
|
||||
|
||||
$type->setViewer($this->getViewer());
|
||||
|
||||
return $type->getParameterExists($request, $key);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Call another type's value parser.
|
||||
*
|
||||
* This method allows a type to reuse the parsing behavior of a different
|
||||
* type. For example, a "list of users" type may start by running the same
|
||||
* basic parsing that a simpler "list of strings" type does.
|
||||
*
|
||||
* @param AphrontHTTPParameterType The other type.
|
||||
* @param AphrontRequest Incoming request.
|
||||
* @param string Key to examine.
|
||||
* @return wild Parsed value.
|
||||
* @task util
|
||||
*/
|
||||
final protected function getValueWithType(
|
||||
AphrontHTTPParameterType $type,
|
||||
AphrontRequest $request,
|
||||
$key) {
|
||||
|
||||
$type->setViewer($this->getViewer());
|
||||
|
||||
return $type->getValue($request, $key);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get a list of all available parameter types.
|
||||
*
|
||||
* @return list<AphrontHTTPParameterType> List of all available types.
|
||||
* @task util
|
||||
*/
|
||||
final public static function getAllTypes() {
|
||||
return id(new PhutilClassMapQuery())
|
||||
->setAncestorClass(__CLASS__)
|
||||
->setUniqueMethod('getTypeName')
|
||||
->setSortMethod('getTypeName')
|
||||
->execute();
|
||||
}
|
||||
|
||||
|
||||
/* -( Implementation )----------------------------------------------------- */
|
||||
|
||||
|
||||
/**
|
||||
* Test if a parameter exists in a request.
|
||||
*
|
||||
* See @{method:getExists}. By default, this method tests if the key is
|
||||
* present in the request.
|
||||
*
|
||||
* To call another type's behavior in order to perform this check, use
|
||||
* @{method:getExistsWithType}.
|
||||
*
|
||||
* @param AphrontRequest The incoming request.
|
||||
* @param string The key to examine.
|
||||
* @return bool True if a readable value is present in the request.
|
||||
* @task impl
|
||||
*/
|
||||
protected function getParameterExists(AphrontRequest $request, $key) {
|
||||
return $request->getExists($key);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Parse a value from a request.
|
||||
*
|
||||
* See @{method:getValue}. This method will //only// be called if this type
|
||||
* has already asserted that the value exists with
|
||||
* @{method:getParameterExists}.
|
||||
*
|
||||
* To call another type's behavior in order to parse a value, use
|
||||
* @{method:getValueWithType}.
|
||||
*
|
||||
* @param AphrontRequest The incoming request.
|
||||
* @param string The key to examine.
|
||||
* @return wild Parsed value.
|
||||
* @task impl
|
||||
*/
|
||||
abstract protected function getParameterValue(AphrontRequest $request, $key);
|
||||
|
||||
|
||||
/**
|
||||
* Return a simple type name string, like "string" or "list<phid>".
|
||||
*
|
||||
* See @{method:getTypeName}.
|
||||
*
|
||||
* @return string Short type name.
|
||||
* @task impl
|
||||
*/
|
||||
abstract protected function getParameterTypeName();
|
||||
|
||||
|
||||
/**
|
||||
* Return a human-readable list of format descriptions.
|
||||
*
|
||||
* See @{method:getFormatDescriptions}.
|
||||
*
|
||||
* @return list<string> Human-readable list of acceptable formats.
|
||||
* @task impl
|
||||
*/
|
||||
abstract protected function getParameterFormatDescriptions();
|
||||
|
||||
|
||||
/**
|
||||
* Return a human-readable list of examples.
|
||||
*
|
||||
* See @{method:getExamples}.
|
||||
*
|
||||
* @return list<string> Human-readable list of format examples.
|
||||
* @task impl
|
||||
*/
|
||||
abstract protected function getParameterExamples();
|
||||
|
||||
|
||||
/**
|
||||
* Return the default value for this parameter type.
|
||||
*
|
||||
* See @{method:getDefaultValue}. If unspecified, the default is `null`.
|
||||
*
|
||||
* @return wild Default value.
|
||||
* @task impl
|
||||
*/
|
||||
protected function getParameterDefault() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
final class AphrontPHIDHTTPParameterType
|
||||
extends AphrontHTTPParameterType {
|
||||
|
||||
protected function getParameterValue(AphrontRequest $request, $key) {
|
||||
return $request->getStr($key);
|
||||
}
|
||||
|
||||
protected function getParameterTypeName() {
|
||||
return 'phid';
|
||||
}
|
||||
|
||||
protected function getParameterFormatDescriptions() {
|
||||
return array(
|
||||
pht('A single object PHID.'),
|
||||
);
|
||||
}
|
||||
|
||||
protected function getParameterExamples() {
|
||||
return array(
|
||||
'v=PHID-XXXX-1111',
|
||||
);
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
final class AphrontPHIDListHTTPParameterType
|
||||
extends AphrontHTTPParameterType {
|
||||
|
||||
protected function getParameterValue(AphrontRequest $request, $key) {
|
||||
$type = new AphrontStringListHTTPParameterType();
|
||||
return $this->getValueWithType($type, $request, $key);
|
||||
}
|
||||
|
||||
protected function getParameterTypeName() {
|
||||
return 'list<phid>';
|
||||
}
|
||||
|
||||
protected function getParameterFormatDescriptions() {
|
||||
return array(
|
||||
pht('Comma-separated list of PHIDs.'),
|
||||
pht('List of PHIDs, as array.'),
|
||||
);
|
||||
}
|
||||
|
||||
protected function getParameterExamples() {
|
||||
return array(
|
||||
'v=PHID-XXXX-1111',
|
||||
'v=PHID-XXXX-1111,PHID-XXXX-2222',
|
||||
'v[]=PHID-XXXX-1111&v[]=PHID-XXXX-2222',
|
||||
);
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
final class AphrontProjectListHTTPParameterType
|
||||
extends AphrontHTTPParameterType {
|
||||
|
||||
protected function getParameterValue(AphrontRequest $request, $key) {
|
||||
$type = new AphrontStringListHTTPParameterType();
|
||||
$list = $this->getValueWithType($type, $request, $key);
|
||||
|
||||
return id(new PhabricatorProjectPHIDResolver())
|
||||
->setViewer($this->getViewer())
|
||||
->resolvePHIDs($list);
|
||||
}
|
||||
|
||||
protected function getParameterTypeName() {
|
||||
return 'list<project>';
|
||||
}
|
||||
|
||||
protected function getParameterFormatDescriptions() {
|
||||
return array(
|
||||
pht('Comma-separated list of project PHIDs.'),
|
||||
pht('List of project PHIDs, as array.'),
|
||||
pht('Comma-separated list of project hashtags.'),
|
||||
pht('List of project hashtags, as array.'),
|
||||
pht('Mixture of hashtags and PHIDs.'),
|
||||
);
|
||||
}
|
||||
|
||||
protected function getParameterExamples() {
|
||||
return array(
|
||||
'v=PHID-PROJ-1111',
|
||||
'v=PHID-PROJ-1111,PHID-PROJ-2222',
|
||||
'v=hashtag',
|
||||
'v=frontend,backend',
|
||||
'v[]=PHID-PROJ-1111&v[]=PHID-PROJ-2222',
|
||||
'v[]=frontend&v[]=backend',
|
||||
'v=PHID-PROJ-1111,frontend',
|
||||
'v[]=PHID-PROJ-1111&v[]=backend',
|
||||
);
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
final class AphrontSelectHTTPParameterType
|
||||
extends AphrontHTTPParameterType {
|
||||
|
||||
protected function getParameterValue(AphrontRequest $request, $key) {
|
||||
return $request->getStr($key);
|
||||
}
|
||||
|
||||
protected function getParameterTypeName() {
|
||||
return 'select';
|
||||
}
|
||||
|
||||
protected function getParameterFormatDescriptions() {
|
||||
return array(
|
||||
pht('A single value from the allowed set.'),
|
||||
);
|
||||
}
|
||||
|
||||
protected function getParameterExamples() {
|
||||
return array(
|
||||
'v=value',
|
||||
);
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
final class AphrontStringHTTPParameterType
|
||||
extends AphrontHTTPParameterType {
|
||||
|
||||
protected function getParameterValue(AphrontRequest $request, $key) {
|
||||
return $request->getStr($key);
|
||||
}
|
||||
|
||||
protected function getParameterTypeName() {
|
||||
return 'string';
|
||||
}
|
||||
|
||||
protected function getParameterFormatDescriptions() {
|
||||
return array(
|
||||
pht('A URL-encoded string.'),
|
||||
);
|
||||
}
|
||||
|
||||
protected function getParameterExamples() {
|
||||
return array(
|
||||
'v=simple',
|
||||
'v=properly%20escaped%20text',
|
||||
);
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
final class AphrontStringListHTTPParameterType
|
||||
extends AphrontHTTPParameterType {
|
||||
|
||||
protected function getParameterValue(AphrontRequest $request, $key) {
|
||||
$list = $request->getArr($key, null);
|
||||
|
||||
if ($list === null) {
|
||||
$list = $request->getStrList($key);
|
||||
}
|
||||
|
||||
return $list;
|
||||
}
|
||||
|
||||
protected function getParameterDefault() {
|
||||
return array();
|
||||
}
|
||||
|
||||
protected function getParameterTypeName() {
|
||||
return 'list<string>';
|
||||
}
|
||||
|
||||
protected function getParameterFormatDescriptions() {
|
||||
return array(
|
||||
pht('Comma-separated list of strings.'),
|
||||
pht('List of strings, as array.'),
|
||||
);
|
||||
}
|
||||
|
||||
protected function getParameterExamples() {
|
||||
return array(
|
||||
'v=cat,dog,pig',
|
||||
'v[]=cat&v[]=dog',
|
||||
);
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
final class AphrontUserListHTTPParameterType
|
||||
extends AphrontHTTPParameterType {
|
||||
|
||||
protected function getParameterValue(AphrontRequest $request, $key) {
|
||||
$type = new AphrontStringListHTTPParameterType();
|
||||
$list = $this->getValueWithType($type, $request, $key);
|
||||
|
||||
return id(new PhabricatorUserPHIDResolver())
|
||||
->setViewer($this->getViewer())
|
||||
->resolvePHIDs($list);
|
||||
}
|
||||
|
||||
protected function getParameterTypeName() {
|
||||
return 'list<user>';
|
||||
}
|
||||
|
||||
protected function getParameterFormatDescriptions() {
|
||||
return array(
|
||||
pht('Comma-separated list of user PHIDs.'),
|
||||
pht('List of user PHIDs, as array.'),
|
||||
pht('Comma-separated list of usernames.'),
|
||||
pht('List of usernames, as array.'),
|
||||
pht('Mixture of usernames and PHIDs.'),
|
||||
);
|
||||
}
|
||||
|
||||
protected function getParameterExamples() {
|
||||
return array(
|
||||
'v=PHID-USER-1111',
|
||||
'v=PHID-USER-1111,PHID-USER-2222',
|
||||
'v=username',
|
||||
'v=alincoln,htaft',
|
||||
'v[]=PHID-USER-1111&v[]=PHID-USER-2222',
|
||||
'v[]=htaft&v[]=alincoln',
|
||||
'v=PHID-USER-1111,alincoln',
|
||||
'v[]=PHID-USER-1111&v[]=htaft',
|
||||
);
|
||||
}
|
||||
|
||||
}
|
44
src/aphront/site/PhabricatorShortSite.php
Normal file
44
src/aphront/site/PhabricatorShortSite.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
final class PhabricatorShortSite extends PhabricatorSite {
|
||||
|
||||
public function getDescription() {
|
||||
return pht('Serves shortened URLs.');
|
||||
}
|
||||
|
||||
public function getPriority() {
|
||||
return 2500;
|
||||
}
|
||||
|
||||
public function newSiteForRequest(AphrontRequest $request) {
|
||||
$host = $request->getHost();
|
||||
|
||||
$uri = PhabricatorEnv::getEnvConfig('phurl.short-uri');
|
||||
if (!strlen($uri)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$phurl_installed = PhabricatorApplication::isClassInstalled(
|
||||
'PhabricatorPhurlApplication');
|
||||
if (!$phurl_installed) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->isHostMatch($host, array($uri))) {
|
||||
return new PhabricatorShortSite();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getRoutingMaps() {
|
||||
$app = PhabricatorApplication::getByClass('PhabricatorPhurlApplication');
|
||||
|
||||
$maps = array();
|
||||
$maps[] = $this->newRoutingMap()
|
||||
->setApplication($app)
|
||||
->setRoutes($app->getShortRoutes());
|
||||
return $maps;
|
||||
}
|
||||
|
||||
}
|
@@ -12,6 +12,10 @@ final class AlmanacBindingPHIDType extends PhabricatorPHIDType {
|
||||
return new AlmanacBinding();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorAlmanacApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -12,6 +12,10 @@ final class AlmanacDevicePHIDType extends PhabricatorPHIDType {
|
||||
return new AlmanacDevice();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorAlmanacApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -12,6 +12,10 @@ final class AlmanacInterfacePHIDType extends PhabricatorPHIDType {
|
||||
return new AlmanacInterface();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorAlmanacApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -12,6 +12,10 @@ final class AlmanacNetworkPHIDType extends PhabricatorPHIDType {
|
||||
return new AlmanacNetwork();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorAlmanacApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -12,6 +12,10 @@ final class AlmanacServicePHIDType extends PhabricatorPHIDType {
|
||||
return new AlmanacService();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorAlmanacApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -2,18 +2,6 @@
|
||||
|
||||
abstract class PhabricatorAuthController extends PhabricatorController {
|
||||
|
||||
public function buildStandardPageResponse($view, array $data) {
|
||||
$page = $this->buildStandardPageView();
|
||||
|
||||
$page->setApplicationName(pht('Login'));
|
||||
$page->setBaseURI('/login/');
|
||||
$page->setTitle(idx($data, 'title'));
|
||||
$page->appendChild($view);
|
||||
|
||||
$response = new AphrontWebpageResponse();
|
||||
return $response->setContent($page->render());
|
||||
}
|
||||
|
||||
protected function renderErrorPage($title, array $messages) {
|
||||
$view = new PHUIInfoView();
|
||||
$view->setTitle($title);
|
||||
|
@@ -109,7 +109,7 @@ final class PhabricatorAuthListController
|
||||
'only users with a verified email address at one of these %s '.
|
||||
'allowed domain(s) will be able to register an account: %s',
|
||||
$domains_link,
|
||||
new PhutilNumber(count($domains_value)),
|
||||
phutil_count($domains_value),
|
||||
phutil_tag('strong', array(), implode(', ', $domains_value)));
|
||||
} else {
|
||||
$issues[] = pht(
|
||||
|
@@ -78,7 +78,7 @@ final class PhabricatorAuthManagementRefreshWorkflow
|
||||
"%s\n",
|
||||
pht(
|
||||
'Found %s account(s) to refresh.',
|
||||
new PhutilNumber(count($accounts))));
|
||||
phutil_count($accounts)));
|
||||
}
|
||||
|
||||
$providers = PhabricatorAuthProvider::getAllEnabledProviders();
|
||||
|
@@ -12,6 +12,10 @@ final class PhabricatorAuthAuthFactorPHIDType extends PhabricatorPHIDType {
|
||||
return new PhabricatorAuthFactorConfig();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorAuthApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -12,6 +12,10 @@ final class PhabricatorAuthAuthProviderPHIDType extends PhabricatorPHIDType {
|
||||
return new PhabricatorAuthProviderConfig();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorAuthApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -12,6 +12,10 @@ final class PhabricatorAuthInvitePHIDType extends PhabricatorPHIDType {
|
||||
return new PhabricatorAuthInvite();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorAuthApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -77,6 +77,8 @@ final class PhabricatorJIRAAuthProvider extends PhabricatorOAuth1AuthProvider {
|
||||
const PROPERTY_JIRA_URI = 'oauth1:jira:uri';
|
||||
const PROPERTY_PUBLIC_KEY = 'oauth1:jira:key:public';
|
||||
const PROPERTY_PRIVATE_KEY = 'oauth1:jira:key:private';
|
||||
const PROPERTY_REPORT_LINK = 'oauth1:jira:report:link';
|
||||
const PROPERTY_REPORT_COMMENT = 'oauth1:jira:report:comment';
|
||||
|
||||
|
||||
public function readFormValuesFromProvider() {
|
||||
@@ -100,6 +102,10 @@ final class PhabricatorJIRAAuthProvider extends PhabricatorOAuth1AuthProvider {
|
||||
return array(
|
||||
self::PROPERTY_JIRA_NAME => $name,
|
||||
self::PROPERTY_JIRA_URI => $request->getStr(self::PROPERTY_JIRA_URI),
|
||||
self::PROPERTY_REPORT_LINK =>
|
||||
$request->getInt(self::PROPERTY_REPORT_LINK, 0),
|
||||
self::PROPERTY_REPORT_COMMENT =>
|
||||
$request->getInt(self::PROPERTY_REPORT_COMMENT, 0),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -175,6 +181,7 @@ final class PhabricatorJIRAAuthProvider extends PhabricatorOAuth1AuthProvider {
|
||||
'JIRA 5 or earlier.'));
|
||||
|
||||
$is_setup = $this->isSetup();
|
||||
$viewer = $request->getViewer();
|
||||
|
||||
$e_required = $request->isFormPost() ? null : true;
|
||||
|
||||
@@ -249,11 +256,40 @@ final class PhabricatorJIRAAuthProvider extends PhabricatorOAuth1AuthProvider {
|
||||
id(new AphrontFormStaticControl())
|
||||
->setLabel(pht('Public Key'))
|
||||
->setValue($pkey));
|
||||
|
||||
$form
|
||||
->appendRemarkupInstructions(
|
||||
pht(
|
||||
'= Integration Options = '."\n".
|
||||
'Configure how to record Revisions on JIRA tasks.'."\n\n".
|
||||
'Note you\'ll have to restart the daemons for this to take '.
|
||||
'effect.'))
|
||||
->appendChild(
|
||||
id(new AphrontFormCheckboxControl())
|
||||
->addCheckbox(
|
||||
self::PROPERTY_REPORT_LINK,
|
||||
1,
|
||||
new PHUIRemarkupView(
|
||||
$viewer,
|
||||
pht(
|
||||
'Create **Issue Link** to the Revision, as an "implemented '.
|
||||
'in" relationship.')),
|
||||
$this->shouldCreateJIRALink()))
|
||||
->appendChild(
|
||||
id(new AphrontFormCheckboxControl())
|
||||
->addCheckbox(
|
||||
self::PROPERTY_REPORT_COMMENT,
|
||||
1,
|
||||
new PHUIRemarkupView(
|
||||
$viewer,
|
||||
pht(
|
||||
'**Post a comment** in the JIRA task, similar to the '.
|
||||
'emails Phabricator sends.')),
|
||||
$this->shouldCreateJIRAComment()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* JIRA uses a setup step to generate public/private keys.
|
||||
*/
|
||||
@@ -286,4 +322,14 @@ final class PhabricatorJIRAAuthProvider extends PhabricatorOAuth1AuthProvider {
|
||||
return $adapter->newJIRAFuture($path, $method, $params);
|
||||
}
|
||||
|
||||
public function shouldCreateJIRALink() {
|
||||
$config = $this->getProviderConfig();
|
||||
return $config->getProperty(self::PROPERTY_REPORT_LINK, true);
|
||||
}
|
||||
|
||||
public function shouldCreateJIRAComment() {
|
||||
$config = $this->getProviderConfig();
|
||||
return $config->getProperty(self::PROPERTY_REPORT_COMMENT, true);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -635,4 +635,12 @@ abstract class PhabricatorApplication
|
||||
return array();
|
||||
}
|
||||
|
||||
protected function getEditRoutePattern($base = null) {
|
||||
return $base.'(?:(?P<id>[0-9]\d*)/)?(?:(?P<editAction>parameters)/)?';
|
||||
}
|
||||
|
||||
protected function getQueryRoutePattern($base = null) {
|
||||
return $base.'(?:query/(?P<queryKey>[^/]+)/)?';
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -3,7 +3,6 @@
|
||||
abstract class PhabricatorController extends AphrontController {
|
||||
|
||||
private $handles;
|
||||
private $extraQuicksandConfig = array();
|
||||
|
||||
public function shouldRequireLogin() {
|
||||
return true;
|
||||
@@ -62,15 +61,6 @@ abstract class PhabricatorController extends AphrontController {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function addExtraQuicksandConfig($config) {
|
||||
$this->extraQuicksandConfig += $config;
|
||||
return $this;
|
||||
}
|
||||
|
||||
private function getExtraQuicksandConfig() {
|
||||
return $this->extraQuicksandConfig;
|
||||
}
|
||||
|
||||
public function willBeginExecution() {
|
||||
$request = $this->getRequest();
|
||||
|
||||
@@ -285,32 +275,6 @@ abstract class PhabricatorController extends AphrontController {
|
||||
}
|
||||
}
|
||||
|
||||
public function buildStandardPageView() {
|
||||
$view = new PhabricatorStandardPageView();
|
||||
$view->setRequest($this->getRequest());
|
||||
$view->setController($this);
|
||||
return $view;
|
||||
}
|
||||
|
||||
public function buildStandardPageResponse($view, array $data) {
|
||||
$page = $this->buildStandardPageView();
|
||||
$page->appendChild($view);
|
||||
return $this->buildPageResponse($page);
|
||||
}
|
||||
|
||||
private function buildPageResponse($page) {
|
||||
if ($this->getRequest()->isQuicksand()) {
|
||||
$response = id(new AphrontAjaxResponse())
|
||||
->setContent($page->renderForQuicksand(
|
||||
$this->getExtraQuicksandConfig()));
|
||||
} else {
|
||||
$response = id(new AphrontWebpageResponse())
|
||||
->setContent($page->render());
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function getApplicationURI($path = '') {
|
||||
if (!$this->getCurrentApplication()) {
|
||||
throw new Exception(pht('No application!'));
|
||||
@@ -318,58 +282,6 @@ abstract class PhabricatorController extends AphrontController {
|
||||
return $this->getCurrentApplication()->getApplicationURI($path);
|
||||
}
|
||||
|
||||
public function buildApplicationPage($view, array $options) {
|
||||
$page = $this->buildStandardPageView();
|
||||
|
||||
$title = PhabricatorEnv::getEnvConfig('phabricator.serious-business') ?
|
||||
'Blender Foundation' :
|
||||
pht('Bacon Ice Cream for Breakfast');
|
||||
|
||||
$application = $this->getCurrentApplication();
|
||||
$page->setTitle(idx($options, 'title', $title));
|
||||
if ($application) {
|
||||
$page->setApplicationName($application->getName());
|
||||
if ($application->getTitleGlyph()) {
|
||||
$page->setGlyph($application->getTitleGlyph());
|
||||
}
|
||||
}
|
||||
|
||||
if (!($view instanceof AphrontSideNavFilterView)) {
|
||||
$nav = new AphrontSideNavFilterView();
|
||||
$nav->appendChild($view);
|
||||
$view = $nav;
|
||||
}
|
||||
|
||||
$user = $this->getRequest()->getUser();
|
||||
$view->setUser($user);
|
||||
|
||||
$page->appendChild($view);
|
||||
|
||||
$object_phids = idx($options, 'pageObjects', array());
|
||||
if ($object_phids) {
|
||||
$page->appendPageObjects($object_phids);
|
||||
foreach ($object_phids as $object_phid) {
|
||||
PhabricatorFeedStoryNotification::updateObjectNotificationViews(
|
||||
$user,
|
||||
$object_phid);
|
||||
}
|
||||
}
|
||||
|
||||
if (idx($options, 'device', true)) {
|
||||
$page->setDeviceReady(true);
|
||||
}
|
||||
|
||||
$page->setShowFooter(idx($options, 'showFooter', true));
|
||||
$page->setShowChrome(idx($options, 'chrome', true));
|
||||
|
||||
$application_menu = $this->buildApplicationMenu();
|
||||
if ($application_menu) {
|
||||
$page->setApplicationMenu($application_menu);
|
||||
}
|
||||
|
||||
return $this->buildPageResponse($page);
|
||||
}
|
||||
|
||||
public function willSendResponse(AphrontResponse $response) {
|
||||
$request = $this->getRequest();
|
||||
|
||||
@@ -532,6 +444,36 @@ abstract class PhabricatorController extends AphrontController {
|
||||
->setSubmitURI($submit_uri);
|
||||
}
|
||||
|
||||
public function newPage() {
|
||||
$page = id(new PhabricatorStandardPageView())
|
||||
->setRequest($this->getRequest())
|
||||
->setController($this)
|
||||
->setDeviceReady(true);
|
||||
|
||||
$application = $this->getCurrentApplication();
|
||||
if ($application) {
|
||||
$page->setApplicationName($application->getName());
|
||||
if ($application->getTitleGlyph()) {
|
||||
$page->setGlyph($application->getTitleGlyph());
|
||||
}
|
||||
}
|
||||
|
||||
$viewer = $this->getRequest()->getUser();
|
||||
if ($viewer) {
|
||||
$page->setUser($viewer);
|
||||
}
|
||||
|
||||
// TODO: Remove after removing callsites to addExtraQuicksandConfig().
|
||||
$page->addQuicksandConfig($this->extraQuicksandConfig);
|
||||
|
||||
return $page;
|
||||
}
|
||||
|
||||
public function newApplicationMenu() {
|
||||
return id(new PHUIApplicationMenuView())
|
||||
->setViewer($this->getRequest()->getUser());
|
||||
}
|
||||
|
||||
protected function buildTransactionTimeline(
|
||||
PhabricatorApplicationTransactionInterface $object,
|
||||
PhabricatorApplicationTransactionQuery $query,
|
||||
@@ -579,4 +521,89 @@ abstract class PhabricatorController extends AphrontController {
|
||||
return $timeline;
|
||||
}
|
||||
|
||||
|
||||
public function buildApplicationCrumbsForEditEngine() {
|
||||
// TODO: This is kind of gross, I'm bascially just making this public so
|
||||
// I can use it in EditEngine. We could do this without making it public
|
||||
// by using controller delegation, or make it properly public.
|
||||
return $this->buildApplicationCrumbs();
|
||||
}
|
||||
|
||||
|
||||
/* -( Deprecated )--------------------------------------------------------- */
|
||||
|
||||
|
||||
/**
|
||||
* DEPRECATED.
|
||||
*/
|
||||
private $extraQuicksandConfig = array();
|
||||
|
||||
|
||||
/**
|
||||
* DEPRECATED. Use @{method:newPage} and call addQuicksandConfig().
|
||||
*/
|
||||
public function addExtraQuicksandConfig($config) {
|
||||
// TODO: When this method is removed,
|
||||
$this->extraQuicksandConfig += $config;
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* DEPRECATED. Use @{method:newPage}.
|
||||
*/
|
||||
public function buildStandardPageView() {
|
||||
return $this->newPage();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* DEPRECATED. Use @{method:newPage}.
|
||||
*/
|
||||
public function buildStandardPageResponse($view, array $data) {
|
||||
$page = $this->buildStandardPageView();
|
||||
$page->appendChild($view);
|
||||
return $page->produceAphrontResponse();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* DEPRECATED. Use @{method:newPage}.
|
||||
*/
|
||||
public function buildApplicationPage($view, array $options) {
|
||||
$page = $this->newPage();
|
||||
|
||||
$title = PhabricatorEnv::getEnvConfig('phabricator.serious-business') ?
|
||||
'Blender Foundation' :
|
||||
pht('Bacon Ice Cream for Breakfast');
|
||||
|
||||
$page->setTitle(idx($options, 'title', $title));
|
||||
|
||||
if (idx($options, 'class')) {
|
||||
$page->addClass($options['class']);
|
||||
}
|
||||
|
||||
if (!($view instanceof AphrontSideNavFilterView)) {
|
||||
$nav = new AphrontSideNavFilterView();
|
||||
$nav->appendChild($view);
|
||||
$view = $nav;
|
||||
}
|
||||
|
||||
$page->appendChild($view);
|
||||
|
||||
$object_phids = idx($options, 'pageObjects', array());
|
||||
if ($object_phids) {
|
||||
$page->setPageObjectPHIDs($object_phids);
|
||||
}
|
||||
|
||||
if (!idx($options, 'device', true)) {
|
||||
$page->setDeviceReady(false);
|
||||
}
|
||||
|
||||
$page->setShowFooter(idx($options, 'showFooter', true));
|
||||
$page->setShowChrome(idx($options, 'chrome', true));
|
||||
|
||||
return $page->produceAphrontResponse();
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -56,7 +56,6 @@ final class PhabricatorAccessControlTestCase extends PhabricatorTestCase {
|
||||
$env->overrideEnvConfig('phabricator.base-uri', 'http://'.$host);
|
||||
$env->overrideEnvConfig('policy.allow-public', false);
|
||||
$env->overrideEnvConfig('auth.require-email-verification', false);
|
||||
$env->overrideEnvConfig('auth.email-domains', array());
|
||||
$env->overrideEnvConfig('security.require-multi-factor-auth', false);
|
||||
|
||||
|
||||
|
@@ -68,6 +68,15 @@ final class PhabricatorCalendarApplication extends PhabricatorApplication {
|
||||
);
|
||||
}
|
||||
|
||||
public function getHelpDocumentationArticles(PhabricatorUser $viewer) {
|
||||
return array(
|
||||
array(
|
||||
'name' => pht('Calendar User Guide'),
|
||||
'href' => PhabricatorEnv::getDoclink('Calendar User Guide'),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
public function getQuickCreateItems(PhabricatorUser $viewer) {
|
||||
$items = array();
|
||||
|
||||
|
@@ -436,9 +436,9 @@ final class PhabricatorCalendarEventEditor
|
||||
$body = parent::buildMailBody($object, $xactions);
|
||||
|
||||
if (strlen($description)) {
|
||||
$body->addTextSection(
|
||||
$body->addRemarkupSection(
|
||||
pht('EVENT DESCRIPTION'),
|
||||
$object->getDescription());
|
||||
$description);
|
||||
}
|
||||
|
||||
$body->addLinkSection(
|
||||
|
@@ -8,14 +8,14 @@ final class PhabricatorCalendarEventPHIDType extends PhabricatorPHIDType {
|
||||
return pht('Event');
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorCalendarApplication';
|
||||
}
|
||||
|
||||
public function newObject() {
|
||||
return new PhabricatorCalendarEvent();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorCalendarApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -18,7 +18,7 @@ final class CelerityManagementMapWorkflow
|
||||
$this->log(
|
||||
pht(
|
||||
'Rebuilding %d resource source(s).',
|
||||
new PhutilNumber(count($resources_map))));
|
||||
phutil_count($resources_map)));
|
||||
|
||||
foreach ($resources_map as $name => $resources) {
|
||||
$this->rebuildResources($resources);
|
||||
|
@@ -172,11 +172,11 @@ final class CelerityDefaultPostprocessor
|
||||
'sh-pinkbackground' => '#fbeaf8',
|
||||
|
||||
// Shade Grey
|
||||
'sh-lightgreyborder' => '#d8d8d8',
|
||||
'sh-lightgreyborder' => '#e3e4e8',
|
||||
'sh-greyborder' => '#b2b2b2',
|
||||
'sh-greyicon' => '#757575',
|
||||
'sh-greytext' => '#555555',
|
||||
'sh-greybackground' => '#e7e7e7',
|
||||
'sh-greybackground' => '#edeef2',
|
||||
|
||||
// Shade Disabled
|
||||
'sh-lightdisabledborder' => '#e5e5e5',
|
||||
|
@@ -47,7 +47,6 @@ final class PhabricatorDaemonsSetupCheck extends PhabricatorSetupCheck {
|
||||
}
|
||||
|
||||
$phd_user = PhabricatorEnv::getEnvConfig('phd.user');
|
||||
$environment_hash = PhabricatorEnv::calculateEnvironmentHash();
|
||||
$all_daemons = id(new PhabricatorDaemonLogQuery())
|
||||
->setViewer(PhabricatorUser::getOmnipotentUser())
|
||||
->withStatus(PhabricatorDaemonLogQuery::STATUS_ALIVE)
|
||||
@@ -91,107 +90,6 @@ final class PhabricatorDaemonsSetupCheck extends PhabricatorSetupCheck {
|
||||
->addCommand('phabricator/ $ ./bin/phd restart');
|
||||
}
|
||||
}
|
||||
|
||||
if ($daemon->getEnvHash() != $environment_hash) {
|
||||
$doc_href = PhabricatorEnv::getDocLink(
|
||||
'Managing Daemons with phd');
|
||||
|
||||
$summary = pht(
|
||||
'At least one daemon is currently running with different '.
|
||||
'configuration than the Phabricator web application.');
|
||||
|
||||
$list_section = null;
|
||||
$env_info = $daemon->getEnvInfo();
|
||||
if ($env_info) {
|
||||
$issues = PhabricatorEnv::compareEnvironmentInfo(
|
||||
PhabricatorEnv::calculateEnvironmentInfo(),
|
||||
$env_info);
|
||||
|
||||
if ($issues) {
|
||||
foreach ($issues as $key => $issue) {
|
||||
$issues[$key] = phutil_tag('li', array(), $issue);
|
||||
}
|
||||
|
||||
$list_section = array(
|
||||
pht(
|
||||
'The configurations differ in the following %s way(s):',
|
||||
new PhutilNumber(count($issues))),
|
||||
phutil_tag(
|
||||
'ul',
|
||||
array(),
|
||||
$issues),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$message = pht(
|
||||
'At least one daemon is currently running with a different '.
|
||||
'configuration (config checksum %s) than the web application '.
|
||||
'(config checksum %s).'.
|
||||
"\n\n%s".
|
||||
'This usually means that you have just made a configuration change '.
|
||||
'from the web UI, but have not yet restarted the daemons. You '.
|
||||
'need to restart the daemons after making configuration changes '.
|
||||
'so they will pick up the new values: until you do, they will '.
|
||||
'continue operating with the old settings.'.
|
||||
"\n\n".
|
||||
'(If you plan to make more changes, you can restart the daemons '.
|
||||
'once after you finish making all of your changes.)'.
|
||||
"\n\n".
|
||||
'Use %s to restart daemons. You can find a list of running daemons '.
|
||||
'in the %s, which will also help you identify which daemon (or '.
|
||||
'daemons) have divergent configuration. For more information about '.
|
||||
'managing the daemons, see %s in the documentation.'.
|
||||
"\n\n".
|
||||
'This can also happen if you use the %s environmental variable to '.
|
||||
'choose a configuration file, but the daemons run with a different '.
|
||||
'value than the web application. If restarting the daemons does '.
|
||||
'not resolve this issue and you use %s to select configuration, '.
|
||||
'check that it is set consistently.'.
|
||||
"\n\n".
|
||||
'A third possible cause is that you run several machines, and '.
|
||||
'the %s configuration file differs between them. This file is '.
|
||||
'updated when you edit configuration from the CLI with %s. If '.
|
||||
'restarting the daemons does not resolve this issue and you '.
|
||||
'run multiple machines, check that all machines have identical '.
|
||||
'%s configuration files.'.
|
||||
"\n\n".
|
||||
'This issue is not severe, but usually indicates that something '.
|
||||
'is not configured the way you expect, and may cause the daemons '.
|
||||
'to exhibit different behavior than the web application does.',
|
||||
|
||||
phutil_tag('tt', array(), substr($daemon->getEnvHash(), 0, 12)),
|
||||
phutil_tag('tt', array(), substr($environment_hash, 0, 12)),
|
||||
$list_section,
|
||||
phutil_tag('tt', array(), 'bin/phd restart'),
|
||||
phutil_tag(
|
||||
'a',
|
||||
array(
|
||||
'href' => '/daemon/',
|
||||
'target' => '_blank',
|
||||
),
|
||||
pht('Daemon Console')),
|
||||
phutil_tag(
|
||||
'a',
|
||||
array(
|
||||
'href' => $doc_href,
|
||||
'target' => '_blank',
|
||||
),
|
||||
pht('Managing Daemons with phd')),
|
||||
phutil_tag('tt', array(), 'PHABRICATOR_ENV'),
|
||||
phutil_tag('tt', array(), 'PHABRICATOR_ENV'),
|
||||
phutil_tag('tt', array(), 'phabricator/conf/local/local.json'),
|
||||
phutil_tag('tt', array(), 'bin/config'),
|
||||
phutil_tag('tt', array(), 'phabricator/conf/local/local.json'));
|
||||
|
||||
$this->newIssue('daemons.need-restarting')
|
||||
->setName(pht('Daemons and Web Have Different Config'))
|
||||
->setSummary($summary)
|
||||
->setMessage($message)
|
||||
->addCommand('phabricator/ $ ./bin/phd restart');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -292,6 +292,10 @@ final class PhabricatorExtraConfigSetupCheck extends PhabricatorSetupCheck {
|
||||
'gcdaemon.ttl.task-archive' => $gc_reason,
|
||||
'gcdaemon.ttl.general-cache' => $gc_reason,
|
||||
'gcdaemon.ttl.conduit-logs' => $gc_reason,
|
||||
|
||||
'phd.variant-config' => pht(
|
||||
'This configuration is no longer relevant because daemons '.
|
||||
'restart automatically on configuration changes.'),
|
||||
);
|
||||
|
||||
return $ancient_config;
|
||||
|
@@ -111,7 +111,7 @@ final class PhabricatorPathSetupCheck extends PhabricatorSetupCheck {
|
||||
|
||||
$this
|
||||
->newIssue('config.PATH.'.$digest)
|
||||
->setName(pht('$PATH Component Unusable'))
|
||||
->setName(pht('%s Component Unusable', '$PATH'))
|
||||
->setSummary(
|
||||
pht(
|
||||
'A component of the configured PATH can not be used by '.
|
||||
|
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
final class PhabricatorConfigHTTPParameterTypesModule
|
||||
extends PhabricatorConfigModule {
|
||||
|
||||
public function getModuleKey() {
|
||||
return 'httpparameter';
|
||||
}
|
||||
|
||||
public function getModuleName() {
|
||||
return pht('HTTP Parameter Types');
|
||||
}
|
||||
|
||||
public function renderModuleStatus(AphrontRequest $request) {
|
||||
$viewer = $request->getViewer();
|
||||
|
||||
$types = AphrontHTTPParameterType::getAllTypes();
|
||||
|
||||
$table = id(new PhabricatorHTTPParameterTypeTableView())
|
||||
->setHTTPParameterTypes($types);
|
||||
|
||||
return id(new PHUIObjectBoxView())
|
||||
->setHeaderText(pht('HTTP Parameter Types'))
|
||||
->setTable($table);
|
||||
}
|
||||
|
||||
}
|
@@ -1,35 +0,0 @@
|
||||
<?php
|
||||
|
||||
final class PhabricatorDisqusConfigOptions
|
||||
extends PhabricatorApplicationConfigOptions {
|
||||
|
||||
public function getName() {
|
||||
return pht('Integration with Disqus');
|
||||
}
|
||||
|
||||
public function getDescription() {
|
||||
return pht('Disqus authentication and integration options.');
|
||||
}
|
||||
|
||||
public function getFontIcon() {
|
||||
return 'fa-comment';
|
||||
}
|
||||
|
||||
public function getGroup() {
|
||||
return 'core';
|
||||
}
|
||||
|
||||
public function getOptions() {
|
||||
return array(
|
||||
$this->newOption('disqus.shortname', 'string', null)
|
||||
->setSummary(pht('Shortname for Disqus comment widget.'))
|
||||
->setDescription(
|
||||
pht(
|
||||
"Website shortname to use for Disqus comment widget in Phame. ".
|
||||
"For more information, see:\n\n".
|
||||
"[[http://docs.disqus.com/help/4/ | Disqus Quick Start Guide]]\n".
|
||||
"[[http://docs.disqus.com/help/68/ | Information on Shortnames]]")),
|
||||
);
|
||||
}
|
||||
|
||||
}
|
@@ -73,13 +73,6 @@ final class PhabricatorPHDConfigOptions
|
||||
"trace mode. See also '%s'.",
|
||||
'phd debug',
|
||||
'phd.verbose')),
|
||||
$this->newOption('phd.variant-config', 'list<string>', array())
|
||||
->setDescription(
|
||||
pht(
|
||||
'Specify config keys that can safely vary between the web tier '.
|
||||
'and the daemons. Primarily, this is a way to suppress the '.
|
||||
'"Daemons and Web Have Different Config" setup issue on a per '.
|
||||
'config key basis.')),
|
||||
$this->newOption('phd.garbage-collection', 'wild', array())
|
||||
->setLocked(true)
|
||||
->setLockedMessage(
|
||||
|
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
final class PhabricatorPhurlConfigOptions
|
||||
extends PhabricatorApplicationConfigOptions {
|
||||
|
||||
public function getName() {
|
||||
return pht('Phurl');
|
||||
}
|
||||
|
||||
public function getDescription() {
|
||||
return pht('Options for Phurl.');
|
||||
}
|
||||
|
||||
public function getFontIcon() {
|
||||
return 'fa-link';
|
||||
}
|
||||
|
||||
public function getGroup() {
|
||||
return 'phurl';
|
||||
}
|
||||
|
||||
public function getOptions() {
|
||||
return array(
|
||||
$this->newOption('phurl.short-uri', 'string', null)
|
||||
->setLocked(true)
|
||||
->setSummary(pht('URI that Phurl will use to shorten URLs.'))
|
||||
->setDescription(
|
||||
pht(
|
||||
'Set the URI that Phurl will use to share shortened URLs.'))
|
||||
->addExample(
|
||||
'https://some-very-short-domain.museum/',
|
||||
pht('Valid Setting')),
|
||||
);
|
||||
}
|
||||
}
|
@@ -12,6 +12,10 @@ final class PhabricatorConfigConfigPHIDType extends PhabricatorPHIDType {
|
||||
return new PhabricatorConfigEntry();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorConfigApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
final class PhabricatorHTTPParameterTypeTableView
|
||||
extends AphrontView {
|
||||
|
||||
private $types;
|
||||
|
||||
public function setHTTPParameterTypes(array $types) {
|
||||
assert_instances_of($types, 'AphrontHTTPParameterType');
|
||||
$this->types = $types;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getHTTPParameterTypes() {
|
||||
return $this->types;
|
||||
}
|
||||
|
||||
public function render() {
|
||||
$types = $this->getHTTPParameterTypes();
|
||||
$types = mpull($types, null, 'getTypeName');
|
||||
|
||||
$br = phutil_tag('br');
|
||||
|
||||
$rows = array();
|
||||
foreach ($types as $name => $type) {
|
||||
$formats = $type->getFormatDescriptions();
|
||||
$formats = phutil_implode_html($br, $formats);
|
||||
|
||||
$examples = $type->getExamples();
|
||||
$examples = phutil_implode_html($br, $examples);
|
||||
|
||||
$rows[] = array(
|
||||
$name,
|
||||
$formats,
|
||||
$examples,
|
||||
);
|
||||
}
|
||||
|
||||
$table = id(new AphrontTableView($rows))
|
||||
->setHeaders(
|
||||
array(
|
||||
pht('Type'),
|
||||
pht('Formats'),
|
||||
pht('Examples'),
|
||||
))
|
||||
->setColumnClasses(
|
||||
array(
|
||||
'pri top',
|
||||
'top',
|
||||
'wide top prewrap',
|
||||
));
|
||||
|
||||
return $table;
|
||||
}
|
||||
|
||||
}
|
@@ -387,7 +387,7 @@ final class PhabricatorSetupIssueView extends AphrontView {
|
||||
array(),
|
||||
pht(
|
||||
'PHP also loaded these %s configuration file(s):',
|
||||
new PhutilNumber(count($more_loc))));
|
||||
phutil_count($more_loc)));
|
||||
$info[] = phutil_tag(
|
||||
'pre',
|
||||
array(),
|
||||
|
@@ -29,14 +29,13 @@ final class ConpherenceUpdateThreadConduitAPIMethod
|
||||
protected function defineErrorTypes() {
|
||||
return array(
|
||||
'ERR_USAGE_NO_ROOM_ID' => pht(
|
||||
'You must specify a room id or room phid to query transactions '.
|
||||
'from.'),
|
||||
'You must specify a room ID or room PHID to query transactions from.'),
|
||||
'ERR_USAGE_ROOM_NOT_FOUND' => pht(
|
||||
'room does not exist or logged in user can not see it.'),
|
||||
'Room does not exist or logged in user can not see it.'),
|
||||
'ERR_USAGE_ONLY_SELF_REMOVE' => pht(
|
||||
'Only a user can remove themselves from a room.'),
|
||||
'ERR_USAGE_NO_UPDATES' => pht(
|
||||
'You must specify data that actually updates the conpherence.'),
|
||||
'You must specify data that actually updates the Conpherence.'),
|
||||
);
|
||||
}
|
||||
|
||||
|
@@ -325,8 +325,7 @@ final class ConpherenceUpdateController
|
||||
$remove_person = $request->getStr('remove_person');
|
||||
$participants = $conpherence->getParticipants();
|
||||
|
||||
$message = pht(
|
||||
'Are you sure you want to leave this room?');
|
||||
$message = pht('Are you sure you want to leave this room?');
|
||||
$test_conpherence = clone $conpherence;
|
||||
$test_conpherence->attachParticipants(array());
|
||||
if (!PhabricatorPolicyFilter::hasCapability(
|
||||
@@ -334,17 +333,14 @@ final class ConpherenceUpdateController
|
||||
$test_conpherence,
|
||||
PhabricatorPolicyCapability::CAN_VIEW)) {
|
||||
if (count($participants) == 1) {
|
||||
$message .= pht(
|
||||
' The room will be inaccessible forever and ever.');
|
||||
$message .= ' '.pht('The room will be inaccessible forever and ever.');
|
||||
} else {
|
||||
$message .= pht(
|
||||
' Someone else in the room can add you back later.');
|
||||
$message .= ' '.pht('Someone else in the room can add you back later.');
|
||||
}
|
||||
}
|
||||
$body = phutil_tag(
|
||||
'p',
|
||||
array(
|
||||
),
|
||||
array(),
|
||||
$message);
|
||||
|
||||
require_celerity_resource('conpherence-update-css');
|
||||
|
@@ -77,14 +77,14 @@ final class ConpherenceTransaction extends PhabricatorApplicationTransaction {
|
||||
count($rem));
|
||||
} else if ($add) {
|
||||
$title = pht(
|
||||
'%s added %d files(s).',
|
||||
'%s added %s files(s).',
|
||||
$this->renderHandleLink($author_phid),
|
||||
count($add));
|
||||
phutil_count($add));
|
||||
} else {
|
||||
$title = pht(
|
||||
'%s removed %d file(s).',
|
||||
'%s removed %s file(s).',
|
||||
$this->renderHandleLink($author_phid),
|
||||
count($rem));
|
||||
phutil_count($rem));
|
||||
}
|
||||
return $title;
|
||||
break;
|
||||
|
@@ -12,6 +12,10 @@ final class PhabricatorCountdownCountdownPHIDType extends PhabricatorPHIDType {
|
||||
return new PhabricatorCountdown();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorCountdownApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -58,14 +58,6 @@ final class PhabricatorDaemonLogViewController
|
||||
}
|
||||
|
||||
$header->addTag($tag);
|
||||
$env_hash = PhabricatorEnv::calculateEnvironmentHash();
|
||||
if ($log->getEnvHash() != $env_hash) {
|
||||
$tag = id(new PHUITagView())
|
||||
->setType(PHUITagView::TYPE_STATE)
|
||||
->setBackgroundColor(PHUITagView::COLOR_YELLOW)
|
||||
->setName(pht('Stale Config'));
|
||||
$header->addTag($tag);
|
||||
}
|
||||
|
||||
$properties = $this->buildPropertyListView($log);
|
||||
|
||||
|
@@ -42,8 +42,6 @@ final class PhabricatorDaemonEventListener extends PhabricatorEventListener {
|
||||
->setHost(php_uname('n'))
|
||||
->setPID(getmypid())
|
||||
->setRunningAsUser($current_user['name'])
|
||||
->setEnvHash(PhabricatorEnv::calculateEnvironmentHash())
|
||||
->setEnvInfo(PhabricatorEnv::calculateEnvironmentInfo())
|
||||
->setStatus(PhabricatorDaemonLog::STATUS_RUNNING)
|
||||
->setArgv($event->getValue('argv'))
|
||||
->setExplicitArgv($event->getValue('explicitArgv'))
|
||||
|
@@ -226,7 +226,9 @@ abstract class PhabricatorDaemonManagementWorkflow
|
||||
// Retry without sudo
|
||||
$console->writeOut(
|
||||
"%s\n",
|
||||
pht('sudo command failed. Starting daemon as current user.'));
|
||||
pht(
|
||||
'%s command failed. Starting daemon as current user.',
|
||||
'sudo'));
|
||||
$this->executeDaemonLaunchCommand(
|
||||
$command,
|
||||
$daemon_script_dir,
|
||||
@@ -265,8 +267,9 @@ abstract class PhabricatorDaemonManagementWorkflow
|
||||
if (preg_match('/sudo: a password is required/', $stderr)) {
|
||||
throw new Exception(
|
||||
pht(
|
||||
'sudo exited with a zero exit code, but emitted output '.
|
||||
'consistent with failure under OSX.'));
|
||||
'%s exited with a zero exit code, but emitted output '.
|
||||
'consistent with failure under OSX.',
|
||||
'sudo'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -17,8 +17,6 @@ final class PhabricatorDaemonLog extends PhabricatorDaemonDAO
|
||||
protected $runningAsUser;
|
||||
protected $argv;
|
||||
protected $explicitArgv = array();
|
||||
protected $envHash;
|
||||
protected $envInfo;
|
||||
protected $status;
|
||||
|
||||
protected function getConfiguration() {
|
||||
@@ -26,14 +24,12 @@ final class PhabricatorDaemonLog extends PhabricatorDaemonDAO
|
||||
self::CONFIG_SERIALIZATION => array(
|
||||
'argv' => self::SERIALIZATION_JSON,
|
||||
'explicitArgv' => self::SERIALIZATION_JSON,
|
||||
'envInfo' => self::SERIALIZATION_JSON,
|
||||
),
|
||||
self::CONFIG_COLUMN_SCHEMA => array(
|
||||
'daemon' => 'text255',
|
||||
'host' => 'text255',
|
||||
'pid' => 'uint32',
|
||||
'runningAsUser' => 'text255?',
|
||||
'envHash' => 'bytes40',
|
||||
'status' => 'text8',
|
||||
'daemonID' => 'text64',
|
||||
),
|
||||
|
@@ -17,7 +17,6 @@ final class PhabricatorDaemonLogListView extends AphrontView {
|
||||
throw new PhutilInvalidStateException('setUser');
|
||||
}
|
||||
|
||||
$env_hash = PhabricatorEnv::calculateEnvironmentHash();
|
||||
$list = new PHUIObjectItemListView();
|
||||
$list->setFlush(true);
|
||||
foreach ($this->daemonLogs as $log) {
|
||||
@@ -33,15 +32,8 @@ final class PhabricatorDaemonLogListView extends AphrontView {
|
||||
$status = $log->getStatus();
|
||||
switch ($status) {
|
||||
case PhabricatorDaemonLog::STATUS_RUNNING:
|
||||
if ($env_hash != $log->getEnvHash()) {
|
||||
$item->setStatusIcon('fa-warning yellow');
|
||||
$item->addAttribute(pht(
|
||||
'This daemon is running with an out of date configuration and '.
|
||||
'should be restarted.'));
|
||||
} else {
|
||||
$item->setStatusIcon('fa-rocket green');
|
||||
$item->addAttribute(pht('This daemon is running.'));
|
||||
}
|
||||
$item->setStatusIcon('fa-rocket green');
|
||||
$item->addAttribute(pht('This daemon is running.'));
|
||||
break;
|
||||
case PhabricatorDaemonLog::STATUS_DEAD:
|
||||
$item->setStatusIcon('fa-warning red');
|
||||
|
@@ -12,6 +12,10 @@ final class PhabricatorDashboardDashboardPHIDType extends PhabricatorPHIDType {
|
||||
return new PhabricatorDashboard();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorDashboardApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -12,6 +12,10 @@ final class PhabricatorDashboardPanelPHIDType extends PhabricatorPHIDType {
|
||||
return new PhabricatorDashboardPanel();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorDashboardApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -218,21 +218,21 @@ final class DifferentialJIRAIssuesField
|
||||
return pht(
|
||||
'%s updated JIRA issue(s): added %d %s; removed %d %s.',
|
||||
$xaction->renderHandleLink($author_phid),
|
||||
new PhutilNumber(count($add)),
|
||||
phutil_count($add),
|
||||
implode(', ', $add),
|
||||
new PhutilNumber(count($rem)),
|
||||
phutil_count($rem),
|
||||
implode(', ', $rem));
|
||||
} else if ($add) {
|
||||
return pht(
|
||||
'%s added %d JIRA issue(s): %s.',
|
||||
$xaction->renderHandleLink($author_phid),
|
||||
new PhutilNumber(count($add)),
|
||||
phutil_count($add),
|
||||
implode(', ', $add));
|
||||
} else if ($rem) {
|
||||
return pht(
|
||||
'%s removed %d JIRA issue(s): %s.',
|
||||
$xaction->renderHandleLink($author_phid),
|
||||
new PhutilNumber(count($rem)),
|
||||
phutil_count($rem),
|
||||
implode(', ', $rem));
|
||||
}
|
||||
|
||||
|
@@ -125,7 +125,7 @@ final class DifferentialUnitField
|
||||
)) + $groups;
|
||||
|
||||
foreach ($groups as $result => $group) {
|
||||
$count = new PhutilNumber(count($group));
|
||||
$count = phutil_count($group);
|
||||
switch ($result) {
|
||||
case ArcanistUnitTestResult::RESULT_PASS:
|
||||
$note[] = pht('%s Passed Test(s)', $count);
|
||||
|
@@ -135,12 +135,12 @@ abstract class DifferentialReviewersHeraldAction
|
||||
case self::DO_ADD_REVIEWERS:
|
||||
return pht(
|
||||
'Added %s reviewer(s): %s.',
|
||||
new PhutilNumber(count($data)),
|
||||
phutil_count($data),
|
||||
$this->renderHandleList($data));
|
||||
case self::DO_ADD_BLOCKING_REVIEWERS:
|
||||
return pht(
|
||||
'Added %s blocking reviewer(s): %s.',
|
||||
new PhutilNumber(count($data)),
|
||||
phutil_count($data),
|
||||
$this->renderHandleList($data));
|
||||
}
|
||||
}
|
||||
|
@@ -81,14 +81,14 @@ final class DifferentialCreateMailReceiver extends PhabricatorMailReceiver {
|
||||
} else {
|
||||
$subject = pht(
|
||||
'Diff creation failed; see body for %s error(s).',
|
||||
new PhutilNumber(count($errors)));
|
||||
phutil_count($errors));
|
||||
}
|
||||
$body = new PhabricatorMetaMTAMailBody();
|
||||
$body->addRawSection($subject);
|
||||
if (count($diffs)) {
|
||||
$text_body = '';
|
||||
$html_body = array();
|
||||
$body_label = pht('%s DIFF LINK(S)', new PhutilNumber(count($diffs)));
|
||||
$body_label = pht('%s DIFF LINK(S)', phutil_count($diffs));
|
||||
foreach ($diffs as $filename => $diff_uri) {
|
||||
$text_body .= $filename.': '.$diff_uri."\n";
|
||||
$html_body[] = phutil_tag(
|
||||
@@ -105,7 +105,7 @@ final class DifferentialCreateMailReceiver extends PhabricatorMailReceiver {
|
||||
|
||||
if (count($errors)) {
|
||||
$body_section = new PhabricatorMetaMTAMailSection();
|
||||
$body_label = pht('%s ERROR(S)', new PhutilNumber(count($errors)));
|
||||
$body_label = pht('%s ERROR(S)', phutil_count($errors));
|
||||
foreach ($errors as $error) {
|
||||
$body_section->addFragment($error);
|
||||
}
|
||||
|
@@ -12,6 +12,10 @@ final class DifferentialDiffPHIDType extends PhabricatorPHIDType {
|
||||
return new DifferentialDiff();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorDifferentialApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -8,14 +8,14 @@ final class DifferentialRevisionPHIDType extends PhabricatorPHIDType {
|
||||
return pht('Differential Revision');
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorDifferentialApplication';
|
||||
}
|
||||
|
||||
public function newObject() {
|
||||
return new DifferentialRevision();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorDifferentialApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -20,11 +20,17 @@ final class DiffusionUpdateCoverageConduitAPIMethod
|
||||
}
|
||||
|
||||
protected function defineParamTypes() {
|
||||
$modes = array(
|
||||
'overwrite',
|
||||
'update',
|
||||
);
|
||||
|
||||
return array(
|
||||
'repositoryPHID' => 'required phid',
|
||||
'branch' => 'required string',
|
||||
'commit' => 'required string',
|
||||
'coverage' => 'required map<string, string>',
|
||||
'mode' => 'optional '.$this->formatStringConstants($modes),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -77,16 +83,31 @@ final class DiffusionUpdateCoverageConduitAPIMethod
|
||||
$table_name = 'repository_coverage';
|
||||
|
||||
$conn->openTransaction();
|
||||
queryfx(
|
||||
$conn,
|
||||
'DELETE FROM %T WHERE branchID = %d',
|
||||
$table_name,
|
||||
$branch->getID());
|
||||
$mode = $request->getValue('mode');
|
||||
switch ($mode) {
|
||||
case '':
|
||||
case 'overwrite':
|
||||
// sets the coverage for the whole branch, deleting all previous
|
||||
// coverage information
|
||||
queryfx(
|
||||
$conn,
|
||||
'DELETE FROM %T WHERE branchID = %d',
|
||||
$table_name,
|
||||
$branch->getID());
|
||||
break;
|
||||
case 'update':
|
||||
// sets the coverage for the provided files on the specified commit
|
||||
break;
|
||||
default:
|
||||
$conn->killTransaction();
|
||||
throw new Exception(pht('Invalid mode "%s".', $mode));
|
||||
}
|
||||
|
||||
foreach (PhabricatorLiskDAO::chunkSQL($sql) as $chunk) {
|
||||
queryfx(
|
||||
$conn,
|
||||
'INSERT INTO %T (branchID, pathID, commitID, coverage) VALUES %Q',
|
||||
'INSERT INTO %T (branchID, pathID, commitID, coverage) VALUES %Q'.
|
||||
' ON DUPLICATE KEY UPDATE coverage=VALUES(coverage)',
|
||||
$table_name,
|
||||
$chunk);
|
||||
}
|
||||
|
@@ -68,7 +68,7 @@ abstract class DiffusionAuditorsHeraldAction
|
||||
case self::DO_ADD_AUDITORS:
|
||||
return pht(
|
||||
'Added %s auditor(s): %s.',
|
||||
new PhutilNumber(count($data)),
|
||||
phutil_count($data),
|
||||
$this->renderHandleList($data));
|
||||
}
|
||||
}
|
||||
|
@@ -152,8 +152,8 @@ final class DivinerPHPAtomizer extends DivinerAtomizer {
|
||||
$atom->addWarning(
|
||||
pht(
|
||||
'This call takes %s parameter(s), but only %s are documented.',
|
||||
new PhutilNumber(count($params)),
|
||||
new PhutilNumber(count($docs))));
|
||||
phutil_count($params),
|
||||
phutil_count($docs)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -58,13 +58,7 @@ final class DivinerAtomController extends DivinerController {
|
||||
$crumbs->addTextCrumb($atom_short_title);
|
||||
|
||||
$header = id(new PHUIHeaderView())
|
||||
->setHeader($this->renderFullSignature($symbol))
|
||||
->addTag(
|
||||
id(new PHUITagView())
|
||||
->setType(PHUITagView::TYPE_STATE)
|
||||
->setBackgroundColor(PHUITagView::COLOR_BLUE)
|
||||
->setName(DivinerAtom::getAtomTypeNameString(
|
||||
$atom ? $atom->getType() : $symbol->getType())));
|
||||
->setHeader($this->renderFullSignature($symbol));
|
||||
|
||||
$properties = new PHUIPropertyListView();
|
||||
|
||||
@@ -78,11 +72,11 @@ final class DivinerAtomController extends DivinerController {
|
||||
$prop_list = new PHUIPropertyGroupView();
|
||||
$prop_list->addPropertyList($properties);
|
||||
|
||||
$document = id(new PHUIDocumentView())
|
||||
$document = id(new PHUIDocumentViewPro())
|
||||
->setBook($book->getTitle(), $group_name)
|
||||
->setHeader($header)
|
||||
->addClass('diviner-view')
|
||||
->appendChild($prop_list);
|
||||
->setPropertyList($prop_list);
|
||||
|
||||
if ($atom) {
|
||||
$this->buildDefined($properties, $symbol);
|
||||
@@ -163,10 +157,6 @@ final class DivinerAtomController extends DivinerController {
|
||||
->setHeader($spec['title']));
|
||||
|
||||
$task_methods = idx($methods_by_task, $spec['name'], array());
|
||||
$inner_box = id(new PHUIBoxView())
|
||||
->addPadding(PHUI::PADDING_LARGE_LEFT)
|
||||
->addPadding(PHUI::PADDING_LARGE_RIGHT)
|
||||
->addPadding(PHUI::PADDING_LARGE_BOTTOM);
|
||||
|
||||
$box_content = array();
|
||||
if ($task_methods) {
|
||||
@@ -198,7 +188,7 @@ final class DivinerAtomController extends DivinerController {
|
||||
$box_content = phutil_tag('em', array(), $no_methods);
|
||||
}
|
||||
|
||||
$inner_box->appendChild($box_content);
|
||||
$inner_box = phutil_tag_div('diviner-task-items', $box_content);
|
||||
$section->addContent($inner_box);
|
||||
}
|
||||
$document->appendChild($section);
|
||||
@@ -246,7 +236,7 @@ final class DivinerAtomController extends DivinerController {
|
||||
->setHref('#'.$key));
|
||||
}
|
||||
|
||||
$document->setSideNav($side, PHUIDocumentView::NAV_TOP);
|
||||
$document->setToc($side);
|
||||
}
|
||||
|
||||
return $this->buildApplicationPage(
|
||||
@@ -256,6 +246,7 @@ final class DivinerAtomController extends DivinerController {
|
||||
),
|
||||
array(
|
||||
'title' => $symbol->getTitle(),
|
||||
'class' => 'pro-white-background',
|
||||
));
|
||||
}
|
||||
|
||||
@@ -629,7 +620,7 @@ final class DivinerAtomController extends DivinerController {
|
||||
$content = phutil_tag(
|
||||
'div',
|
||||
array(
|
||||
'class' => 'phabricator-remarkup',
|
||||
'class' => 'phabricator-remarkup diviner-remarkup-section',
|
||||
),
|
||||
$content);
|
||||
} else {
|
||||
@@ -668,8 +659,6 @@ final class DivinerAtomController extends DivinerController {
|
||||
|
||||
if (($impl !== $parent) || $out) {
|
||||
$where = id(new PHUIBoxView())
|
||||
->addPadding(PHUI::PADDING_MEDIUM_LEFT)
|
||||
->addPadding(PHUI::PADDING_MEDIUM_RIGHT)
|
||||
->addClass('diviner-method-implementation-header')
|
||||
->appendChild($impl->getName());
|
||||
$doc = array($where, $doc);
|
||||
|
@@ -53,7 +53,7 @@ final class DivinerBookController extends DivinerController {
|
||||
->setName($book->getRepository()->getMonogram()));
|
||||
}
|
||||
|
||||
$document = new PHUIDocumentView();
|
||||
$document = new PHUIDocumentViewPro();
|
||||
$document->setHeader($header);
|
||||
$document->addClass('diviner-view');
|
||||
|
||||
@@ -111,6 +111,7 @@ final class DivinerBookController extends DivinerController {
|
||||
),
|
||||
array(
|
||||
'title' => $book->getTitle(),
|
||||
'class' => 'pro-white-background',
|
||||
));
|
||||
}
|
||||
|
||||
|
@@ -30,7 +30,7 @@ final class DivinerMainController extends DivinerController {
|
||||
->setHeader(pht('Documentation Books'))
|
||||
->addActionLink($query_button);
|
||||
|
||||
$document = new PHUIDocumentView();
|
||||
$document = new PHUIDocumentViewPro();
|
||||
$document->setHeader($header);
|
||||
$document->addClass('diviner-view');
|
||||
|
||||
@@ -45,10 +45,7 @@ final class DivinerMainController extends DivinerController {
|
||||
$list[] = $item;
|
||||
}
|
||||
$list = id(new PHUIBoxView())
|
||||
->addPadding(PHUI::PADDING_LARGE_LEFT)
|
||||
->addPadding(PHUI::PADDING_LARGE_RIGHT)
|
||||
->addPadding(PHUI::PADDING_SMALL_TOP)
|
||||
->addPadding(PHUI::PADDING_SMALL_BOTTOM)
|
||||
->addPadding(PHUI::PADDING_MEDIUM_TOP)
|
||||
->appendChild($list);
|
||||
|
||||
$document->appendChild($list);
|
||||
@@ -82,7 +79,7 @@ final class DivinerMainController extends DivinerController {
|
||||
),
|
||||
array(
|
||||
'title' => pht('Documentation Books'),
|
||||
'fonts' => true,
|
||||
'class' => 'pro-white-background',
|
||||
));
|
||||
}
|
||||
}
|
||||
|
@@ -140,14 +140,14 @@ abstract class DivinerPublisher extends Phobject {
|
||||
"%s\n",
|
||||
pht(
|
||||
'Deleting %s document(s).',
|
||||
new PhutilNumber(count($deleted))));
|
||||
phutil_count($deleted)));
|
||||
$this->deleteDocumentsByHash($deleted);
|
||||
|
||||
$console->writeOut(
|
||||
"%s\n",
|
||||
pht(
|
||||
'Creating %s document(s).',
|
||||
new PhutilNumber(count($created))));
|
||||
phutil_count($created)));
|
||||
$this->createDocumentsByHash($created);
|
||||
}
|
||||
|
||||
|
@@ -30,12 +30,10 @@ final class DivinerSectionView extends AphrontTagView {
|
||||
|
||||
$header = id(new PHUIHeaderView())
|
||||
->setBleedHeader(true)
|
||||
->addClass('diviner-section-header')
|
||||
->setHeader($this->header);
|
||||
|
||||
$content = id(new PHUIBoxView())
|
||||
->addPadding(PHUI::PADDING_LARGE_LEFT)
|
||||
->addPadding(PHUI::PADDING_LARGE_RIGHT)
|
||||
->appendChild($this->content);
|
||||
$content = phutil_tag_div('diviner-section-content', $this->content);
|
||||
|
||||
return array($header, $content);
|
||||
}
|
||||
|
@@ -69,7 +69,7 @@ final class DivinerGenerateWorkflow extends DivinerWorkflow {
|
||||
'.book',
|
||||
'--book <book>'));
|
||||
} else {
|
||||
$this->log(pht('Found %s book(s).', new PhutilNumber(count($books))));
|
||||
$this->log(pht('Found %s book(s).', phutil_count($books)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -224,26 +224,26 @@ final class DivinerGenerateWorkflow extends DivinerWorkflow {
|
||||
$this->log(
|
||||
pht(
|
||||
'Found %s file(s) in project.',
|
||||
new PhutilNumber(count($file_hashes))));
|
||||
phutil_count($file_hashes)));
|
||||
|
||||
$this->deleteDeadAtoms($file_hashes);
|
||||
$atomize = $this->getFilesToAtomize($file_hashes);
|
||||
$this->log(
|
||||
pht(
|
||||
'Found %s unatomized, uncached file(s).',
|
||||
new PhutilNumber(count($atomize))));
|
||||
phutil_count($atomize)));
|
||||
|
||||
$file_atomizers = $this->getAtomizersForFiles($atomize);
|
||||
$this->log(
|
||||
pht(
|
||||
'Found %s file(s) to atomize.',
|
||||
new PhutilNumber(count($file_atomizers))));
|
||||
phutil_count($file_atomizers)));
|
||||
|
||||
$futures = $this->buildAtomizerFutures($file_atomizers);
|
||||
$this->log(
|
||||
pht(
|
||||
'Atomizing %s file(s).',
|
||||
new PhutilNumber(count($file_atomizers))));
|
||||
phutil_count($file_atomizers)));
|
||||
|
||||
if ($futures) {
|
||||
$this->resolveAtomizerFutures($futures, $file_hashes);
|
||||
@@ -452,7 +452,7 @@ final class DivinerGenerateWorkflow extends DivinerWorkflow {
|
||||
$this->log(
|
||||
pht(
|
||||
'Found %s obsolete atom(s) in graph.',
|
||||
new PhutilNumber(count($del_atoms))));
|
||||
phutil_count($del_atoms)));
|
||||
|
||||
foreach ($del_atoms as $nhash => $shash) {
|
||||
$atom_cache->deleteSymbol($nhash);
|
||||
@@ -466,7 +466,7 @@ final class DivinerGenerateWorkflow extends DivinerWorkflow {
|
||||
$this->log(
|
||||
pht(
|
||||
'Found %s new atom(s) in graph.',
|
||||
new PhutilNumber(count($new_atoms))));
|
||||
phutil_count($new_atoms)));
|
||||
|
||||
foreach ($new_atoms as $nhash => $ignored) {
|
||||
$shash = $this->computeSymbolHash($nhash);
|
||||
@@ -505,7 +505,7 @@ final class DivinerGenerateWorkflow extends DivinerWorkflow {
|
||||
$this->log(
|
||||
pht(
|
||||
'Found %s affected atoms.',
|
||||
new PhutilNumber(count($dirty_nhashes))));
|
||||
phutil_count($dirty_nhashes)));
|
||||
|
||||
foreach ($dirty_nhashes as $nhash => $ignored) {
|
||||
$atom_cache->addGraph($nhash, $this->computeGraphHash($nhash));
|
||||
|
@@ -96,8 +96,11 @@ final class PhabricatorAsanaConfigOptions
|
||||
}
|
||||
|
||||
$out = array();
|
||||
$out[] = pht('| Workspace ID | Workspace Name |');
|
||||
$out[] = '| ------------ | -------------- |';
|
||||
$out[] = sprintf(
|
||||
'| %s | %s |',
|
||||
pht('Workspace ID'),
|
||||
pht('Workspace Name'));
|
||||
$out[] = '| ------------ | -------------- |';
|
||||
foreach ($workspaces as $workspace) {
|
||||
$out[] = sprintf('| `%s` | `%s` |', $workspace['id'], $workspace['name']);
|
||||
}
|
||||
|
@@ -40,6 +40,14 @@ final class DoorkeeperJIRAFeedWorker extends DoorkeeperFeedWorker {
|
||||
return;
|
||||
}
|
||||
|
||||
$do_anything = ($this->shouldPostComment() || $this->shouldPostLink());
|
||||
if (!$do_anything) {
|
||||
$this->log(
|
||||
"%s\n",
|
||||
pht('JIRA integration is configured not to post anything.'));
|
||||
return;
|
||||
}
|
||||
|
||||
$xobjs = id(new DoorkeeperExternalObjectQuery())
|
||||
->setViewer($viewer)
|
||||
->withPHIDs($jira_issue_phids)
|
||||
@@ -60,7 +68,6 @@ final class DoorkeeperJIRAFeedWorker extends DoorkeeperFeedWorker {
|
||||
return;
|
||||
}
|
||||
|
||||
$story_text = $this->renderStoryText();
|
||||
|
||||
$xobjs = mgroup($xobjs, 'getApplicationDomain');
|
||||
foreach ($xobjs as $domain => $xobj_list) {
|
||||
@@ -84,13 +91,16 @@ final class DoorkeeperJIRAFeedWorker extends DoorkeeperFeedWorker {
|
||||
foreach ($xobj_list as $xobj) {
|
||||
foreach ($accounts as $account) {
|
||||
try {
|
||||
$provider->newJIRAFuture(
|
||||
$account,
|
||||
'rest/api/2/issue/'.$xobj->getObjectID().'/comment',
|
||||
'POST',
|
||||
array(
|
||||
'body' => $story_text,
|
||||
))->resolveJSON();
|
||||
$jira_key = $xobj->getObjectID();
|
||||
|
||||
if ($this->shouldPostComment()) {
|
||||
$this->postComment($account, $jira_key);
|
||||
}
|
||||
|
||||
if ($this->shouldPostLink()) {
|
||||
$this->postLink($account, $jira_key);
|
||||
}
|
||||
|
||||
break;
|
||||
} catch (HTTPFutureResponseStatus $ex) {
|
||||
phlog($ex);
|
||||
@@ -169,14 +179,70 @@ final class DoorkeeperJIRAFeedWorker extends DoorkeeperFeedWorker {
|
||||
return $try_users;
|
||||
}
|
||||
|
||||
private function shouldPostComment() {
|
||||
return $this->getProvider()->shouldCreateJIRAComment();
|
||||
}
|
||||
|
||||
private function shouldPostLink() {
|
||||
return $this->getProvider()->shouldCreateJIRALink();
|
||||
}
|
||||
|
||||
private function postComment($account, $jira_key) {
|
||||
$provider = $this->getProvider();
|
||||
|
||||
$provider->newJIRAFuture(
|
||||
$account,
|
||||
'rest/api/2/issue/'.$jira_key.'/comment',
|
||||
'POST',
|
||||
array(
|
||||
'body' => $this->renderStoryText(),
|
||||
))->resolveJSON();
|
||||
}
|
||||
|
||||
private function renderStoryText() {
|
||||
$object = $this->getStoryObject();
|
||||
$publisher = $this->getPublisher();
|
||||
|
||||
$text = $publisher->getStoryText($object);
|
||||
$uri = $publisher->getObjectURI($object);
|
||||
|
||||
return $text."\n\n".$uri;
|
||||
if ($this->shouldPostLink()) {
|
||||
return $text;
|
||||
} else {
|
||||
// include the link in the comment
|
||||
return $text."\n\n".$publisher->getObjectURI($object);
|
||||
}
|
||||
}
|
||||
|
||||
private function postLink($account, $jira_key) {
|
||||
$provider = $this->getProvider();
|
||||
$object = $this->getStoryObject();
|
||||
$publisher = $this->getPublisher();
|
||||
$icon_uri = celerity_get_resource_uri('rsrc/favicons/favicon-16x16.png');
|
||||
|
||||
$provider->newJIRAFuture(
|
||||
$account,
|
||||
'rest/api/2/issue/'.$jira_key.'/remotelink',
|
||||
'POST',
|
||||
|
||||
// format documented at http://bit.ly/1K5T0Li
|
||||
array(
|
||||
'globalId' => $object->getPHID(),
|
||||
'application' => array(
|
||||
'type' => 'com.phacility.phabricator',
|
||||
'name' => 'Phabricator',
|
||||
),
|
||||
'relationship' => 'implemented in',
|
||||
'object' => array(
|
||||
'url' => $publisher->getObjectURI($object),
|
||||
'title' => $publisher->getObjectTitle($object),
|
||||
'icon' => array(
|
||||
'url16x16' => $icon_uri,
|
||||
'title' => 'Phabricator',
|
||||
),
|
||||
'status' => array(
|
||||
'resolved' => $publisher->isObjectClosed($object),
|
||||
),
|
||||
),
|
||||
))->resolveJSON();
|
||||
}
|
||||
}
|
||||
|
@@ -12,6 +12,10 @@ final class DrydockAuthorizationPHIDType extends PhabricatorPHIDType {
|
||||
return new DrydockAuthorization();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorDrydockApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -8,10 +8,6 @@ final class DrydockBlueprintPHIDType extends PhabricatorPHIDType {
|
||||
return pht('Blueprint');
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorDrydockApplication';
|
||||
}
|
||||
|
||||
public function getTypeIcon() {
|
||||
return 'fa-map-o';
|
||||
}
|
||||
@@ -20,6 +16,10 @@ final class DrydockBlueprintPHIDType extends PhabricatorPHIDType {
|
||||
return new DrydockBlueprint();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorDrydockApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -8,10 +8,6 @@ final class DrydockLeasePHIDType extends PhabricatorPHIDType {
|
||||
return pht('Drydock Lease');
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorDrydockApplication';
|
||||
}
|
||||
|
||||
public function getTypeIcon() {
|
||||
return 'fa-link';
|
||||
}
|
||||
@@ -20,6 +16,10 @@ final class DrydockLeasePHIDType extends PhabricatorPHIDType {
|
||||
return new DrydockLease();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorDrydockApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -12,6 +12,10 @@ final class DrydockRepositoryOperationPHIDType extends PhabricatorPHIDType {
|
||||
return new DrydockRepositoryOperation();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorDrydockApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -8,10 +8,6 @@ final class DrydockResourcePHIDType extends PhabricatorPHIDType {
|
||||
return pht('Drydock Resource');
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorDrydockApplication';
|
||||
}
|
||||
|
||||
public function getTypeIcon() {
|
||||
return 'fa-map';
|
||||
}
|
||||
@@ -20,6 +16,10 @@ final class DrydockResourcePHIDType extends PhabricatorPHIDType {
|
||||
return new DrydockResource();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorDrydockApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -2,26 +2,6 @@
|
||||
|
||||
abstract class PhabricatorFeedController extends PhabricatorController {
|
||||
|
||||
public function buildStandardPageResponse($view, array $data) {
|
||||
$page = $this->buildStandardPageView();
|
||||
|
||||
$page->setApplicationName(pht('Feed'));
|
||||
$page->setBaseURI('/feed/');
|
||||
$page->setTitle(idx($data, 'title'));
|
||||
$page->setGlyph("\xE2\x88\x9E");
|
||||
$page->appendChild($view);
|
||||
|
||||
$response = new AphrontWebpageResponse();
|
||||
|
||||
if (!empty($data['public'])) {
|
||||
$page->setFrameable(true);
|
||||
$page->setShowChrome(false);
|
||||
$response->setFrameable(true);
|
||||
}
|
||||
|
||||
return $response->setContent($page->render());
|
||||
}
|
||||
|
||||
protected function buildSideNavView() {
|
||||
$user = $this->getRequest()->getUser();
|
||||
|
||||
|
@@ -12,6 +12,10 @@ final class PhabricatorFileFilePHIDType extends PhabricatorPHIDType {
|
||||
return new PhabricatorFile();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorFilesApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -557,7 +557,7 @@ final class PhabricatorFile extends PhabricatorFileDAO
|
||||
'Failed to fetch remote URI "%s" after following %s redirect(s) '.
|
||||
'(%s): %s',
|
||||
$uri,
|
||||
new PhutilNumber(count($redirects)),
|
||||
phutil_count($redirects),
|
||||
implode(' > ', array_keys($redirects)),
|
||||
$ex->getMessage()),
|
||||
$ex);
|
||||
|
@@ -12,6 +12,10 @@ final class FundBackerPHIDType extends PhabricatorPHIDType {
|
||||
return new FundInitiative();
|
||||
}
|
||||
|
||||
public function getPHIDTypeApplicationClass() {
|
||||
return 'PhabricatorFundApplication';
|
||||
}
|
||||
|
||||
protected function buildQueryForObjects(
|
||||
PhabricatorObjectQuery $query,
|
||||
array $phids) {
|
||||
|
@@ -37,7 +37,7 @@ final class HarbormasterSendMessageConduitAPIMethod
|
||||
$unit_spec = HarbormasterBuildUnitMessage::getParameterSpec();
|
||||
foreach ($unit_spec as $key => $parameter) {
|
||||
$type = idx($parameter, 'type');
|
||||
$type = str_replace('|', pht(' or '), $type);
|
||||
$type = str_replace('|', ' '.pht('or').' ', $type);
|
||||
$description = idx($parameter, 'description');
|
||||
$rows[] = "| `{$key}` | //{$type}// | {$description} |";
|
||||
}
|
||||
@@ -61,7 +61,7 @@ final class HarbormasterSendMessageConduitAPIMethod
|
||||
$lint_spec = HarbormasterBuildLintMessage::getParameterSpec();
|
||||
foreach ($lint_spec as $key => $parameter) {
|
||||
$type = idx($parameter, 'type');
|
||||
$type = str_replace('|', pht(' or '), $type);
|
||||
$type = str_replace('|', ' '.pht('or').' ', $type);
|
||||
$description = idx($parameter, 'description');
|
||||
$rows[] = "| `{$key}` | //{$type}// | {$description} |";
|
||||
}
|
||||
|
@@ -377,7 +377,7 @@ final class HarbormasterBuildViewController
|
||||
array(
|
||||
pht(
|
||||
'%s empty logs are hidden.',
|
||||
new PhutilNumber(count($empty_logs))),
|
||||
phutil_count($empty_logs)),
|
||||
' ',
|
||||
javelin_tag(
|
||||
'a',
|
||||
|
@@ -59,7 +59,7 @@ final class HarbormasterPlanRunController extends HarbormasterController {
|
||||
|
||||
if (!$errors) {
|
||||
$buildable->save();
|
||||
$buildable->applyPlan($plan, array());
|
||||
$buildable->applyPlan($plan, array(), $viewer->getPHID());
|
||||
|
||||
$buildable_uri = '/B'.$buildable->getID();
|
||||
return id(new AphrontRedirectResponse())->setURI($buildable_uri);
|
||||
|
@@ -231,7 +231,10 @@ final class HarbormasterStepEditController extends HarbormasterController {
|
||||
'The following variables can be used in most fields. '.
|
||||
'To reference a variable, use `%s` in a field.',
|
||||
'${name}');
|
||||
$rows[] = pht('| Variable | Description |');
|
||||
$rows[] = sprintf(
|
||||
'| %s | %s |',
|
||||
pht('Variable'),
|
||||
pht('Description'));
|
||||
$rows[] = '|---|---|';
|
||||
foreach ($variables as $name => $description) {
|
||||
$rows[] = '| `'.$name.'` | '.$description.' |';
|
||||
|
@@ -14,6 +14,7 @@
|
||||
final class HarbormasterBuildRequest extends Phobject {
|
||||
|
||||
private $buildPlanPHID;
|
||||
private $initiatorPHID;
|
||||
private $buildParameters = array();
|
||||
|
||||
public function setBuildPlanPHID($build_plan_phid) {
|
||||
@@ -34,4 +35,13 @@ final class HarbormasterBuildRequest extends Phobject {
|
||||
return $this->buildParameters;
|
||||
}
|
||||
|
||||
public function setInitiatorPHID($phid) {
|
||||
$this->initiatorPHID = $phid;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getInitiatorPHID() {
|
||||
return $this->initiatorPHID;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@ final class HarbormasterTargetEngine extends Phobject {
|
||||
private $object;
|
||||
private $autoTargetKeys;
|
||||
|
||||
public function setViewer($viewer) {
|
||||
public function setViewer(PhabricatorUser $viewer) {
|
||||
$this->viewer = $viewer;
|
||||
return $this;
|
||||
}
|
||||
@@ -163,6 +163,10 @@ final class HarbormasterTargetEngine extends Phobject {
|
||||
array $step_map) {
|
||||
|
||||
$viewer = $this->getViewer();
|
||||
$initiator_phid = null;
|
||||
if (!$viewer->isOmnipotent()) {
|
||||
$initiator_phid = $viewer->getPHID();
|
||||
}
|
||||
$plan_map = mgroup($step_map, 'getBuildPlanPHID');
|
||||
|
||||
$builds = id(new HarbormasterBuildQuery())
|
||||
@@ -206,7 +210,7 @@ final class HarbormasterTargetEngine extends Phobject {
|
||||
// resource and "own" it, so we don't try to handle this, but may need
|
||||
// to be more careful here if use of autotargets expands.
|
||||
|
||||
$build = $buildable->applyPlan($plan, array());
|
||||
$build = $buildable->applyPlan($plan, array(), $initiator_phid);
|
||||
PhabricatorWorker::setRunAllTasksInProcess(false);
|
||||
} catch (Exception $ex) {
|
||||
PhabricatorWorker::setRunAllTasksInProcess(false);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user