mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-27 09:12:41 +01:00
Port "Allow Dangerous Changes" to new Manage UI
Summary: Ref T10748. Brings this forward in the UI and EditEngine. Test Plan: - Edited via Conduit. - Viewed via Manage UI. Reviewers: chad Reviewed By: chad Maniphest Tasks: T10748 Differential Revision: https://secure.phabricator.com/D15805
This commit is contained in:
parent
57a76d8a70
commit
63bbe6b129
5 changed files with 69 additions and 2 deletions
|
@ -1934,6 +1934,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorBoardLayoutEngine' => 'applications/project/engine/PhabricatorBoardLayoutEngine.php',
|
||||
'PhabricatorBoardRenderingEngine' => 'applications/project/engine/PhabricatorBoardRenderingEngine.php',
|
||||
'PhabricatorBoardResponseEngine' => 'applications/project/engine/PhabricatorBoardResponseEngine.php',
|
||||
'PhabricatorBoolEditField' => 'applications/transactions/editfield/PhabricatorBoolEditField.php',
|
||||
'PhabricatorBot' => 'infrastructure/daemon/bot/PhabricatorBot.php',
|
||||
'PhabricatorBotChannel' => 'infrastructure/daemon/bot/target/PhabricatorBotChannel.php',
|
||||
'PhabricatorBotDebugLogHandler' => 'infrastructure/daemon/bot/handler/PhabricatorBotDebugLogHandler.php',
|
||||
|
@ -4426,7 +4427,7 @@ phutil_register_library_map(array(
|
|||
'ConduitAPIRequest' => 'Phobject',
|
||||
'ConduitAPIResponse' => 'Phobject',
|
||||
'ConduitApplicationNotInstalledException' => 'ConduitMethodNotFoundException',
|
||||
'ConduitBoolParameterType' => 'ConduitListParameterType',
|
||||
'ConduitBoolParameterType' => 'ConduitParameterType',
|
||||
'ConduitCall' => 'Phobject',
|
||||
'ConduitCallTestCase' => 'PhabricatorTestCase',
|
||||
'ConduitColumnsParameterType' => 'ConduitParameterType',
|
||||
|
@ -6363,6 +6364,7 @@ phutil_register_library_map(array(
|
|||
'PhabricatorBoardLayoutEngine' => 'Phobject',
|
||||
'PhabricatorBoardRenderingEngine' => 'Phobject',
|
||||
'PhabricatorBoardResponseEngine' => 'Phobject',
|
||||
'PhabricatorBoolEditField' => 'PhabricatorEditField',
|
||||
'PhabricatorBot' => 'PhabricatorDaemon',
|
||||
'PhabricatorBotChannel' => 'PhabricatorBotTarget',
|
||||
'PhabricatorBotDebugLogHandler' => 'PhabricatorBotHandler',
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
final class ConduitBoolParameterType
|
||||
extends ConduitListParameterType {
|
||||
extends ConduitParameterType {
|
||||
|
||||
protected function getParameterValue(array $request, $key) {
|
||||
$value = parent::getParameterValue($request, $key);
|
||||
|
|
|
@ -132,6 +132,16 @@ final class DiffusionRepositoryEditEngine
|
|||
->setConduitDescription(pht('Change the default text encoding.'))
|
||||
->setConduitTypeDescription(pht('New text encoding.'))
|
||||
->setValue($object->getDetail('encoding')),
|
||||
id(new PhabricatorBoolEditField())
|
||||
->setKey('allowDangerousChanges')
|
||||
->setLabel(pht('Allow Dangerous Changes'))
|
||||
->setIsCopyable(true)
|
||||
->setIsConduitOnly(true)
|
||||
->setTransactionType(PhabricatorRepositoryTransaction::TYPE_DANGEROUS)
|
||||
->setDescription(pht('Permit dangerous changes to be made.'))
|
||||
->setConduitDescription(pht('Allow or prevent dangerous changes.'))
|
||||
->setConduitTypeDescription(pht('New protection setting.'))
|
||||
->setValue($object->shouldAllowDangerousChanges()),
|
||||
id(new PhabricatorSelectEditField())
|
||||
->setKey('status')
|
||||
->setLabel(pht('Status'))
|
||||
|
|
|
@ -26,6 +26,7 @@ final class DiffusionRepositoryBasicsManagementPanel
|
|||
$activate_uri = $repository->getPathURI('edit/activate/');
|
||||
$delete_uri = $repository->getPathURI('edit/delete/');
|
||||
$encoding_uri = $repository->getPathURI('edit/encoding/');
|
||||
$dangerous_uri = $repository->getPathURI('edit/dangerous/');
|
||||
|
||||
if ($repository->isTracked()) {
|
||||
$activate_icon = 'fa-pause';
|
||||
|
@ -35,6 +36,17 @@ final class DiffusionRepositoryBasicsManagementPanel
|
|||
$activate_label = pht('Activate Repository');
|
||||
}
|
||||
|
||||
$should_dangerous = $repository->shouldAllowDangerousChanges();
|
||||
if ($should_dangerous) {
|
||||
$dangerous_icon = 'fa-shield';
|
||||
$dangerous_name = pht('Prevent Dangerous Changes');
|
||||
$can_dangerous = $can_edit;
|
||||
} else {
|
||||
$dangerous_icon = 'fa-bullseye';
|
||||
$dangerous_name = pht('Allow Dangerous Changes');
|
||||
$can_dangerous = ($can_edit && $repository->canAllowDangerousChanges());
|
||||
}
|
||||
|
||||
return array(
|
||||
id(new PhabricatorActionView())
|
||||
->setIcon('fa-pencil')
|
||||
|
@ -48,6 +60,12 @@ final class DiffusionRepositoryBasicsManagementPanel
|
|||
->setHref($encoding_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit),
|
||||
id(new PhabricatorActionView())
|
||||
->setIcon($dangerous_icon)
|
||||
->setName($dangerous_name)
|
||||
->setHref($dangerous_uri)
|
||||
->setDisabled(!$can_dangerous)
|
||||
->setWorkflow(true),
|
||||
id(new PhabricatorActionView())
|
||||
->setHref($activate_uri)
|
||||
->setIcon($activate_icon)
|
||||
|
@ -110,6 +128,20 @@ final class DiffusionRepositoryBasicsManagementPanel
|
|||
}
|
||||
$view->addProperty(pht('Encoding'), $encoding);
|
||||
|
||||
$can_dangerous = $repository->canAllowDangerousChanges();
|
||||
if (!$can_dangerous) {
|
||||
$dangerous = phutil_tag('em', array(), pht('Not Preventable'));
|
||||
} else {
|
||||
$should_dangerous = $repository->shouldAllowDangerousChanges();
|
||||
if ($should_dangerous) {
|
||||
$dangerous = pht('Allowed');
|
||||
} else {
|
||||
$dangerous = pht('Not Allowed');
|
||||
}
|
||||
}
|
||||
|
||||
$view->addProperty(pht('Dangerous Changes'), $dangerous);
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
final class PhabricatorBoolEditField
|
||||
extends PhabricatorEditField {
|
||||
|
||||
protected function newControl() {
|
||||
return id(new AphrontFormSelectControl())
|
||||
->setOptions(
|
||||
array(
|
||||
'0' => pht('False'),
|
||||
'1' => pht('True'),
|
||||
));
|
||||
}
|
||||
|
||||
protected function newHTTPParameterType() {
|
||||
return new AphrontBoolHTTPParameterType();
|
||||
}
|
||||
|
||||
protected function newConduitParameterType() {
|
||||
return new ConduitBoolParameterType();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue