Page MenuHomePhabricator

D15801.id38062.diff
No OneTemporary

D15801.id38062.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -779,6 +779,7 @@
'DiffusionRepositoryRef' => 'applications/diffusion/data/DiffusionRepositoryRef.php',
'DiffusionRepositoryRemarkupRule' => 'applications/diffusion/remarkup/DiffusionRepositoryRemarkupRule.php',
'DiffusionRepositorySearchConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionRepositorySearchConduitAPIMethod.php',
+ 'DiffusionRepositoryStagingManagementPanel' => 'applications/diffusion/management/DiffusionRepositoryStagingManagementPanel.php',
'DiffusionRepositoryStatusManagementPanel' => 'applications/diffusion/management/DiffusionRepositoryStatusManagementPanel.php',
'DiffusionRepositoryStorageManagementPanel' => 'applications/diffusion/management/DiffusionRepositoryStorageManagementPanel.php',
'DiffusionRepositorySymbolsController' => 'applications/diffusion/controller/DiffusionRepositorySymbolsController.php',
@@ -4991,6 +4992,7 @@
'DiffusionRepositoryRef' => 'Phobject',
'DiffusionRepositoryRemarkupRule' => 'PhabricatorObjectRemarkupRule',
'DiffusionRepositorySearchConduitAPIMethod' => 'PhabricatorSearchEngineAPIMethod',
+ 'DiffusionRepositoryStagingManagementPanel' => 'DiffusionRepositoryManagementPanel',
'DiffusionRepositoryStatusManagementPanel' => 'DiffusionRepositoryManagementPanel',
'DiffusionRepositoryStorageManagementPanel' => 'DiffusionRepositoryManagementPanel',
'DiffusionRepositorySymbolsController' => 'DiffusionRepositoryEditController',
diff --git a/src/applications/diffusion/editor/DiffusionRepositoryEditEngine.php b/src/applications/diffusion/editor/DiffusionRepositoryEditEngine.php
--- a/src/applications/diffusion/editor/DiffusionRepositoryEditEngine.php
+++ b/src/applications/diffusion/editor/DiffusionRepositoryEditEngine.php
@@ -152,6 +152,16 @@
->setConduitDescription(pht('Set the default branch name.'))
->setConduitTypeDescription(pht('New default branch name.'))
->setValue($object->getDetail('default-branch')),
+ id(new PhabricatorTextEditField())
+ ->setKey('stagingAreaURI')
+ ->setLabel(pht('Staging Area URI'))
+ ->setTransactionType(
+ PhabricatorRepositoryTransaction::TYPE_STAGING_URI)
+ ->setIsCopyable(true)
+ ->setDescription(pht('Staging area URI.'))
+ ->setConduitDescription(pht('Set the staging area URI.'))
+ ->setConduitTypeDescription(pht('New staging area URI.'))
+ ->setValue($object->getStagingURI()),
id(new PhabricatorPolicyEditField())
->setKey('policy.push')
->setLabel(pht('Push Policy'))
diff --git a/src/applications/diffusion/management/DiffusionRepositoryStagingManagementPanel.php b/src/applications/diffusion/management/DiffusionRepositoryStagingManagementPanel.php
new file mode 100644
--- /dev/null
+++ b/src/applications/diffusion/management/DiffusionRepositoryStagingManagementPanel.php
@@ -0,0 +1,55 @@
+<?php
+
+final class DiffusionRepositoryStagingManagementPanel
+ extends DiffusionRepositoryManagementPanel {
+
+ const PANELKEY = 'staging';
+
+ public function getManagementPanelLabel() {
+ return pht('Staging Area');
+ }
+
+ public function getManagementPanelOrder() {
+ return 700;
+ }
+
+ protected function buildManagementPanelActions() {
+ $repository = $this->getRepository();
+ $viewer = $this->getViewer();
+
+ $can_edit = PhabricatorPolicyFilter::hasCapability(
+ $viewer,
+ $repository,
+ PhabricatorPolicyCapability::CAN_EDIT);
+
+ $staging_uri = $repository->getPathURI('edit/staging/');
+
+ return array(
+ id(new PhabricatorActionView())
+ ->setIcon('fa-pencil')
+ ->setName(pht('Edit Staging'))
+ ->setHref($staging_uri)
+ ->setDisabled(!$can_edit)
+ ->setWorkflow(!$can_edit),
+ );
+ }
+
+ public function buildManagementPanelContent() {
+ $repository = $this->getRepository();
+ $viewer = $this->getViewer();
+
+ $view = id(new PHUIPropertyListView())
+ ->setViewer($viewer)
+ ->setActionList($this->newActions());
+
+ $staging_uri = $repository->getStagingURI();
+ if (!$staging_uri) {
+ $staging_uri = phutil_tag('em', array(), pht('No Staging Area'));
+ }
+
+ $view->addProperty(pht('Staging Area URI'), $staging_uri);
+
+ return $this->newBox(pht('Staging Area'), $view);
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
Sat, Mar 15, 7:06 AM (1 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7498430
Default Alt Text
D15801.id38062.diff (4 KB)

Event Timeline