mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-22 06:42:42 +01:00
Convert the "Repository Management" UI to a full-width, Phortune-style UI
Summary: Ref T13216. I want to add some new management options to repositories (e.g., filesize limit, clone timeouts). Before adding new stuff here, update the UI to a full-width, Phortune-style UI. This partially reverts D18523. About a year ago, several UIs got converted to fixed-width (repository management, config, settings, instance management in SAAS). I didn't think these were good changes and have never really gotten used to them. The rationale wasn't clear to me and these changes just felt like "be more like GitHub". I think usability is significantly worse, e.g. actions are now hidden inside button menus instead of immediately visible. Phortune also got converted less dramatically to a full-width-with-menu UI, which I like much better. Adjust repository management to use that UI style instead of the fixed-width style. Test Plan: {F6020884} Viewed every panel, including the Subversion panel. Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T13216 Differential Revision: https://secure.phabricator.com/D19826
This commit is contained in:
parent
2e8a5e843f
commit
bb369c7b71
12 changed files with 405 additions and 210 deletions
|
@ -68,13 +68,17 @@ final class DiffusionRepositoryManagePanelsController
|
|||
|
||||
$view = id(new PHUITwoColumnView())
|
||||
->setHeader($header)
|
||||
->setNavigation($nav)
|
||||
->setFixed(true)
|
||||
->setMainColumn($content);
|
||||
|
||||
$curtain = $panel->buildManagementPanelCurtain();
|
||||
if ($curtain) {
|
||||
$view->setCurtain($curtain);
|
||||
}
|
||||
|
||||
return $this->newPage()
|
||||
->setTitle($title)
|
||||
->setCrumbs($crumbs)
|
||||
->setNavigation($nav)
|
||||
->appendChild($view);
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,20 @@ final class DiffusionRepositoryActionsManagementPanel
|
|||
}
|
||||
|
||||
public function getManagementPanelIcon() {
|
||||
return 'fa-flash';
|
||||
$repository = $this->getRepository();
|
||||
|
||||
$has_any =
|
||||
$repository->getDetail('herald-disabled') ||
|
||||
$repository->getDetail('disable-autoclose');
|
||||
|
||||
// NOTE: Any value here really means something is disabled, so try to
|
||||
// hint that a little bit with the icon.
|
||||
|
||||
if ($has_any) {
|
||||
return 'fa-flash';
|
||||
} else {
|
||||
return 'fa-flash grey';
|
||||
}
|
||||
}
|
||||
|
||||
protected function getEditEngineFieldKeys() {
|
||||
|
@ -24,6 +37,30 @@ final class DiffusionRepositoryActionsManagementPanel
|
|||
);
|
||||
}
|
||||
|
||||
public function buildManagementPanelCurtain() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
$action_list = $this->newActionList();
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$actions_uri = $this->getEditPageURI();
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setIcon('fa-pencil')
|
||||
->setName(pht('Edit Actions'))
|
||||
->setHref($actions_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit));
|
||||
|
||||
return $this->newCurtainView()
|
||||
->setActionList($action_list);
|
||||
}
|
||||
|
||||
public function buildManagementPanelContent() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
|
@ -43,22 +80,7 @@ final class DiffusionRepositoryActionsManagementPanel
|
|||
$autoclose = phutil_tag('em', array(), $autoclose);
|
||||
$view->addProperty(pht('Autoclose'), $autoclose);
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$actions_uri = $this->getEditPageURI();
|
||||
|
||||
$button = id(new PHUIButtonView())
|
||||
->setTag('a')
|
||||
->setIcon('fa-pencil')
|
||||
->setText(pht('Edit'))
|
||||
->setHref($actions_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit);
|
||||
|
||||
return $this->newBox(pht('Actions'), $view, array($button));
|
||||
return $this->newBox(pht('Actions'), $view);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -27,18 +27,60 @@ final class DiffusionRepositoryAutomationManagementPanel
|
|||
public function getManagementPanelIcon() {
|
||||
$repository = $this->getRepository();
|
||||
|
||||
if (!$repository->canPerformAutomation()) {
|
||||
return 'fa-truck grey';
|
||||
}
|
||||
|
||||
$blueprint_phids = $repository->getAutomationBlueprintPHIDs();
|
||||
if (!$blueprint_phids) {
|
||||
return 'fa-truck grey';
|
||||
}
|
||||
|
||||
$is_authorized = DrydockAuthorizationQuery::isFullyAuthorized(
|
||||
$repository->getPHID(),
|
||||
$blueprint_phids);
|
||||
if (!$is_authorized) {
|
||||
return 'fa-exclamation-triangle';
|
||||
return 'fa-exclamation-triangle yellow';
|
||||
}
|
||||
|
||||
return 'fa-truck';
|
||||
}
|
||||
|
||||
public function buildManagementPanelCurtain() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
$action_list = $this->newActionList();
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$can_test = $can_edit && $repository->canPerformAutomation();
|
||||
|
||||
$automation_uri = $this->getEditPageURI();
|
||||
$test_uri = $repository->getPathURI('edit/testautomation/');
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setIcon('fa-pencil')
|
||||
->setName(pht('Edit Automation'))
|
||||
->setHref($automation_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit));
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setIcon('fa-gamepad')
|
||||
->setName(pht('Test Configuration'))
|
||||
->setWorkflow(true)
|
||||
->setDisabled(!$can_test)
|
||||
->setHref($test_uri));
|
||||
|
||||
return $this->newCurtainView()
|
||||
->setActionList($action_list);
|
||||
}
|
||||
|
||||
public function buildManagementPanelContent() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
|
@ -58,33 +100,7 @@ final class DiffusionRepositoryAutomationManagementPanel
|
|||
|
||||
$view->addProperty(pht('Automation'), $blueprint_view);
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$can_test = $can_edit && $repository->canPerformAutomation();
|
||||
|
||||
$automation_uri = $this->getEditPageURI();
|
||||
$test_uri = $repository->getPathURI('edit/testautomation/');
|
||||
|
||||
$edit = id(new PHUIButtonView())
|
||||
->setTag('a')
|
||||
->setIcon('fa-pencil')
|
||||
->setText(pht('Edit'))
|
||||
->setHref($automation_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit);
|
||||
|
||||
$test = id(new PHUIButtonView())
|
||||
->setTag('a')
|
||||
->setIcon('fa-gamepad')
|
||||
->setText(pht('Test Config'))
|
||||
->setWorkflow(true)
|
||||
->setDisabled(!$can_test)
|
||||
->setHref($test_uri);
|
||||
|
||||
return $this->newBox(pht('Automation'), $view, array($edit, $test));
|
||||
return $this->newBox(pht('Automation'), $view);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -27,9 +27,10 @@ final class DiffusionRepositoryBasicsManagementPanel
|
|||
);
|
||||
}
|
||||
|
||||
private function buildActionMenu() {
|
||||
public function buildManagementPanelCurtain() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
|
||||
$action_list = id(new PhabricatorActionListView())
|
||||
->setViewer($viewer);
|
||||
|
||||
|
@ -44,27 +45,34 @@ final class DiffusionRepositoryBasicsManagementPanel
|
|||
$encoding_uri = $this->getEditPageURI('encoding');
|
||||
$dangerous_uri = $repository->getPathURI('edit/dangerous/');
|
||||
$enormous_uri = $repository->getPathURI('edit/enormous/');
|
||||
$update_uri = $repository->getPathURI('edit/update/');
|
||||
|
||||
if ($repository->isTracked()) {
|
||||
$activate_icon = 'fa-ban';
|
||||
$activate_label = pht('Deactivate Repository');
|
||||
} else {
|
||||
$activate_icon = 'fa-check';
|
||||
$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-exclamation-triangle';
|
||||
$dangerous_name = pht('Allow Dangerous Changes');
|
||||
$can_dangerous = ($can_edit && $repository->canAllowDangerousChanges());
|
||||
}
|
||||
|
||||
$should_enormous = $repository->shouldAllowEnormousChanges();
|
||||
if ($should_enormous) {
|
||||
$enormous_icon = 'fa-shield';
|
||||
$enormous_name = pht('Prevent Enormous Changes');
|
||||
$can_enormous = $can_edit;
|
||||
} else {
|
||||
$enormous_icon = 'fa-exclamation-triangle';
|
||||
$enormous_name = pht('Allow Enormous Changes');
|
||||
$can_enormous = ($can_edit && $repository->canAllowEnormousChanges());
|
||||
}
|
||||
|
@ -73,12 +81,14 @@ final class DiffusionRepositoryBasicsManagementPanel
|
|||
id(new PhabricatorActionView())
|
||||
->setName(pht('Edit Basic Information'))
|
||||
->setHref($edit_uri)
|
||||
->setIcon('fa-pencil')
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit));
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setName(pht('Edit Text Encoding'))
|
||||
->setIcon('fa-text-width')
|
||||
->setHref($encoding_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit));
|
||||
|
@ -87,6 +97,7 @@ final class DiffusionRepositoryBasicsManagementPanel
|
|||
id(new PhabricatorActionView())
|
||||
->setName($dangerous_name)
|
||||
->setHref($dangerous_uri)
|
||||
->setIcon($dangerous_icon)
|
||||
->setDisabled(!$can_dangerous)
|
||||
->setWorkflow(true));
|
||||
|
||||
|
@ -94,16 +105,26 @@ final class DiffusionRepositoryBasicsManagementPanel
|
|||
id(new PhabricatorActionView())
|
||||
->setName($enormous_name)
|
||||
->setHref($enormous_uri)
|
||||
->setIcon($enormous_icon)
|
||||
->setDisabled(!$can_enormous)
|
||||
->setWorkflow(true));
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setHref($activate_uri)
|
||||
->setName($activate_label)
|
||||
->setHref($activate_uri)
|
||||
->setIcon($activate_icon)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(true));
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setName(pht('Update Now'))
|
||||
->setHref($update_uri)
|
||||
->setIcon('fa-refresh')
|
||||
->setWorkflow(true)
|
||||
->setDisabled(!$can_edit));
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setType(PhabricatorActionView::TYPE_DIVIDER));
|
||||
|
@ -112,25 +133,18 @@ final class DiffusionRepositoryBasicsManagementPanel
|
|||
id(new PhabricatorActionView())
|
||||
->setName(pht('Delete Repository'))
|
||||
->setHref($delete_uri)
|
||||
->setIcon('fa-times')
|
||||
->setColor(PhabricatorActionView::RED)
|
||||
->setDisabled(true)
|
||||
->setWorkflow(true));
|
||||
|
||||
return $action_list;
|
||||
return $this->newCurtainView()
|
||||
->setActionList($action_list);
|
||||
}
|
||||
|
||||
public function buildManagementPanelContent() {
|
||||
|
||||
$button = id(new PHUIButtonView())
|
||||
->setTag('a')
|
||||
->setText(pht('Actions'))
|
||||
->setHref('#')
|
||||
->setIcon('fa-bars')
|
||||
->addClass('phui-mobile-menu')
|
||||
->setDropdownMenu($this->buildActionMenu());
|
||||
|
||||
$basics = $this->buildBasics();
|
||||
$basics = $this->newBox(pht('Properties'), $basics, array($button));
|
||||
$basics = $this->newBox(pht('Properties'), $basics);
|
||||
|
||||
$repository = $this->getRepository();
|
||||
$is_new = $repository->isNewlyInitialized();
|
||||
|
@ -254,7 +268,6 @@ final class DiffusionRepositoryBasicsManagementPanel
|
|||
private function buildStatus() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
$update_uri = $repository->getPathURI('edit/update/');
|
||||
|
||||
$view = id(new PHUIPropertyListView())
|
||||
->setViewer($viewer);
|
||||
|
@ -274,20 +287,7 @@ final class DiffusionRepositoryBasicsManagementPanel
|
|||
$view->addTextContent($raw_error);
|
||||
}
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$button = id(new PHUIButtonView())
|
||||
->setTag('a')
|
||||
->setIcon('fa-refresh')
|
||||
->setText(pht('Update Now'))
|
||||
->setWorkflow(true)
|
||||
->setDisabled(!$can_edit)
|
||||
->setHref($update_uri);
|
||||
|
||||
return $this->newBox(pht('Status'), $view, array($button));
|
||||
return $this->newBox(pht('Status'), $view);
|
||||
}
|
||||
|
||||
private function buildRepositoryUpdateInterval(
|
||||
|
|
|
@ -19,7 +19,18 @@ final class DiffusionRepositoryBranchesManagementPanel
|
|||
}
|
||||
|
||||
public function getManagementPanelIcon() {
|
||||
return 'fa-code-fork';
|
||||
$repository = $this->getRepository();
|
||||
|
||||
$has_any =
|
||||
$repository->getDetail('default-branch') ||
|
||||
$repository->getDetail('branch-filter') ||
|
||||
$repository->getDetail('close-commits-filter');
|
||||
|
||||
if ($has_any) {
|
||||
return 'fa-code-fork';
|
||||
} else {
|
||||
return 'fa-code-fork grey';
|
||||
}
|
||||
}
|
||||
|
||||
protected function getEditEngineFieldKeys() {
|
||||
|
@ -30,6 +41,30 @@ final class DiffusionRepositoryBranchesManagementPanel
|
|||
);
|
||||
}
|
||||
|
||||
public function buildManagementPanelCurtain() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
$action_list = $this->newActionList();
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$branches_uri = $this->getEditPageURI();
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setIcon('fa-pencil')
|
||||
->setName(pht('Edit Branches'))
|
||||
->setHref($branches_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit));
|
||||
|
||||
return $this->newCurtainView()
|
||||
->setActionList($action_list);
|
||||
}
|
||||
|
||||
public function buildManagementPanelContent() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
|
@ -61,22 +96,7 @@ final class DiffusionRepositoryBranchesManagementPanel
|
|||
|
||||
$view->addProperty(pht('Autoclose Only'), $autoclose_only);
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$branches_uri = $this->getEditPageURI();
|
||||
|
||||
$button = id(new PHUIButtonView())
|
||||
->setTag('a')
|
||||
->setIcon('fa-pencil')
|
||||
->setText(pht('Edit'))
|
||||
->setHref($branches_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit);
|
||||
|
||||
$content[] = $this->newBox(pht('Branches'), $view, array($button));
|
||||
$content[] = $this->newBox(pht('Branches'), $view);
|
||||
|
||||
// Branch Autoclose Table
|
||||
if (!$repository->isImporting()) {
|
||||
|
|
|
@ -41,6 +41,7 @@ abstract class DiffusionRepositoryManagementPanel
|
|||
abstract public function getManagementPanelLabel();
|
||||
abstract public function getManagementPanelOrder();
|
||||
abstract public function buildManagementPanelContent();
|
||||
public function buildManagementPanelCurtain() { return null; }
|
||||
|
||||
public function getManagementPanelIcon() {
|
||||
return 'fa-pencil';
|
||||
|
@ -63,22 +64,6 @@ abstract class DiffusionRepositoryManagementPanel
|
|||
->execute();
|
||||
}
|
||||
|
||||
final protected function newBox($header_text, $body, $button = array()) {
|
||||
$header = id(new PHUIHeaderView())
|
||||
->setHeader($header_text);
|
||||
|
||||
foreach ($button as $link) {
|
||||
$header->addActionLink($link);
|
||||
}
|
||||
|
||||
$view = id(new PHUIObjectBoxView())
|
||||
->setHeader($header)
|
||||
->setBackground(PHUIObjectBoxView::WHITE_CONFIG)
|
||||
->appendChild($body);
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
final protected function newTimeline() {
|
||||
return $this->controller->newTimeline($this->getRepository());
|
||||
}
|
||||
|
@ -124,4 +109,36 @@ abstract class DiffusionRepositoryManagementPanel
|
|||
return $this->getPanelURI();
|
||||
}
|
||||
|
||||
final protected function newActionList() {
|
||||
$viewer = $this->getViewer();
|
||||
$action_id = celerity_generate_unique_node_id();
|
||||
|
||||
return id(new PhabricatorActionListView())
|
||||
->setViewer($viewer)
|
||||
->setID($action_id);
|
||||
}
|
||||
|
||||
final protected function newCurtainView() {
|
||||
$viewer = $this->getViewer();
|
||||
|
||||
return id(new PHUICurtainView())
|
||||
->setViewer($viewer);
|
||||
}
|
||||
|
||||
final protected function newBox($header_text, $body) {
|
||||
$viewer = $this->getViewer();
|
||||
|
||||
$header = id(new PHUIHeaderView())
|
||||
->setViewer($viewer)
|
||||
->setHeader($header_text);
|
||||
|
||||
$view = id(new PHUIObjectBoxView())
|
||||
->setViewer($viewer)
|
||||
->setHeader($header)
|
||||
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
|
||||
->appendChild($body);
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -14,7 +14,35 @@ final class DiffusionRepositoryPoliciesManagementPanel
|
|||
}
|
||||
|
||||
public function getManagementPanelIcon() {
|
||||
return 'fa-lock';
|
||||
$viewer = $this->getViewer();
|
||||
$repository = $this->getRepository();
|
||||
|
||||
$can_view = PhabricatorPolicyCapability::CAN_VIEW;
|
||||
$can_edit = PhabricatorPolicyCapability::CAN_EDIT;
|
||||
$can_push = DiffusionPushCapability::CAPABILITY;
|
||||
|
||||
$actual_values = array(
|
||||
'spacePHID' => $repository->getSpacePHID(),
|
||||
'view' => $repository->getPolicy($can_view),
|
||||
'edit' => $repository->getPolicy($can_edit),
|
||||
'push' => $repository->getPolicy($can_push),
|
||||
);
|
||||
|
||||
$default = PhabricatorRepository::initializeNewRepository(
|
||||
$viewer);
|
||||
|
||||
$default_values = array(
|
||||
'spacePHID' => $default->getSpacePHID(),
|
||||
'view' => $default->getPolicy($can_view),
|
||||
'edit' => $default->getPolicy($can_edit),
|
||||
'push' => $default->getPolicy($can_push),
|
||||
);
|
||||
|
||||
if ($actual_values === $default_values) {
|
||||
return 'fa-lock grey';
|
||||
} else {
|
||||
return 'fa-lock';
|
||||
}
|
||||
}
|
||||
|
||||
protected function getEditEngineFieldKeys() {
|
||||
|
@ -26,6 +54,31 @@ final class DiffusionRepositoryPoliciesManagementPanel
|
|||
);
|
||||
}
|
||||
|
||||
public function buildManagementPanelCurtain() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
$action_list = $this->newActionList();
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$edit_uri = $this->getEditPageURI();
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setName(pht('Edit Policies'))
|
||||
->setHref($edit_uri)
|
||||
->setIcon('fa-pencil')
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit));
|
||||
|
||||
return $this->newCurtainView()
|
||||
->setActionList($action_list);
|
||||
}
|
||||
|
||||
|
||||
public function buildManagementPanelContent() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
|
@ -58,22 +111,7 @@ final class DiffusionRepositoryPoliciesManagementPanel
|
|||
: phutil_tag('em', array(), pht('Not a Hosted Repository'));
|
||||
$view->addProperty(pht('Pushable By'), $pushable);
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$edit_uri = $this->getEditPageURI();
|
||||
|
||||
$button = id(new PHUIButtonView())
|
||||
->setTag('a')
|
||||
->setIcon('fa-pencil')
|
||||
->setText(pht('Edit'))
|
||||
->setHref($edit_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit);
|
||||
|
||||
return $this->newBox(pht('Policies'), $view, array($button));
|
||||
return $this->newBox(pht('Policies'), $view);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -18,9 +18,16 @@ final class DiffusionRepositoryStagingManagementPanel
|
|||
return $repository->isGit();
|
||||
}
|
||||
|
||||
|
||||
public function getManagementPanelIcon() {
|
||||
return 'fa-upload';
|
||||
$repository = $this->getRepository();
|
||||
|
||||
$staging_uri = $repository->getStagingURI();
|
||||
|
||||
if ($staging_uri) {
|
||||
return 'fa-upload';
|
||||
} else {
|
||||
return 'fa-upload grey';
|
||||
}
|
||||
}
|
||||
|
||||
protected function getEditEngineFieldKeys() {
|
||||
|
@ -29,6 +36,30 @@ final class DiffusionRepositoryStagingManagementPanel
|
|||
);
|
||||
}
|
||||
|
||||
public function buildManagementPanelCurtain() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
$action_list = $this->newActionList();
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$staging_uri = $this->getEditPageURI();
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setIcon('fa-pencil')
|
||||
->setName(pht('Edit Staging'))
|
||||
->setHref($staging_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit));
|
||||
|
||||
return $this->newCurtainView()
|
||||
->setActionList($action_list);
|
||||
}
|
||||
|
||||
public function buildManagementPanelContent() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
|
@ -43,22 +74,7 @@ final class DiffusionRepositoryStagingManagementPanel
|
|||
|
||||
$view->addProperty(pht('Staging Area URI'), $staging_uri);
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$staging_uri = $this->getEditPageURI();
|
||||
|
||||
$button = id(new PHUIButtonView())
|
||||
->setTag('a')
|
||||
->setIcon('fa-pencil')
|
||||
->setText(pht('Edit'))
|
||||
->setHref($staging_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit);
|
||||
|
||||
return $this->newBox(pht('Staging Area'), $view, array($button));
|
||||
return $this->newBox(pht('Staging Area'), $view);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -14,7 +14,32 @@ final class DiffusionRepositoryStorageManagementPanel
|
|||
}
|
||||
|
||||
public function getManagementPanelIcon() {
|
||||
return 'fa-database';
|
||||
$repository = $this->getRepository();
|
||||
|
||||
if ($repository->getAlmanacServicePHID()) {
|
||||
return 'fa-sitemap';
|
||||
} else if ($repository->isHosted()) {
|
||||
return 'fa-database';
|
||||
} else {
|
||||
return 'fa-download';
|
||||
}
|
||||
}
|
||||
|
||||
public function buildManagementPanelCurtain() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
$action_list = $this->newActionList();
|
||||
|
||||
$doc_href = PhabricatorEnv::getDoclink('Cluster: Repositories');
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setIcon('fa-book')
|
||||
->setHref($doc_href)
|
||||
->setName(pht('Cluster Documentation')));
|
||||
|
||||
return $this->newCurtainView()
|
||||
->setActionList($action_list);
|
||||
}
|
||||
|
||||
public function buildManagementPanelContent() {
|
||||
|
@ -47,15 +72,7 @@ final class DiffusionRepositoryStorageManagementPanel
|
|||
$view->addProperty(pht('Storage Path'), $storage_path);
|
||||
$view->addProperty(pht('Storage Cluster'), $storage_service);
|
||||
|
||||
$doc_href = PhabricatorEnv::getDoclink('Cluster: Repositories');
|
||||
|
||||
$button = id(new PHUIButtonView())
|
||||
->setTag('a')
|
||||
->setIcon('fa-book')
|
||||
->setHref($doc_href)
|
||||
->setText(pht('Help'));
|
||||
|
||||
return $this->newBox(pht('Storage'), $view, array($button));
|
||||
return $this->newBox(pht('Storage'), $view);
|
||||
}
|
||||
|
||||
private function buildClusterStatusPanel() {
|
||||
|
|
|
@ -19,7 +19,15 @@ final class DiffusionRepositorySubversionManagementPanel
|
|||
}
|
||||
|
||||
public function getManagementPanelIcon() {
|
||||
return 'fa-folder';
|
||||
$repository = $this->getRepository();
|
||||
|
||||
$has_any = (bool)$repository->getDetail('svn-subpath');
|
||||
|
||||
if ($has_any) {
|
||||
return 'fa-folder';
|
||||
} else {
|
||||
return 'fa-folder grey';
|
||||
}
|
||||
}
|
||||
|
||||
protected function getEditEngineFieldKeys() {
|
||||
|
@ -28,6 +36,30 @@ final class DiffusionRepositorySubversionManagementPanel
|
|||
);
|
||||
}
|
||||
|
||||
public function buildManagementPanelCurtain() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
$action_list = $this->newActionList();
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$subversion_uri = $this->getEditPageURI();
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setIcon('fa-pencil')
|
||||
->setName(pht('Edit Properties'))
|
||||
->setHref($subversion_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit));
|
||||
|
||||
return $this->newCurtainView($action_list)
|
||||
->setActionList($action_list);
|
||||
}
|
||||
|
||||
public function buildManagementPanelContent() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
|
@ -40,22 +72,7 @@ final class DiffusionRepositorySubversionManagementPanel
|
|||
phutil_tag('em', array(), pht('Import Entire Repository')));
|
||||
$view->addProperty(pht('Import Only'), $default_branch);
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$subversion_uri = $this->getEditPageURI();
|
||||
|
||||
$button = id(new PHUIButtonView())
|
||||
->setTag('a')
|
||||
->setIcon('fa-pencil')
|
||||
->setText(pht('Edit'))
|
||||
->setHref($subversion_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit);
|
||||
|
||||
return $this->newBox(pht('Subversion'), $view, array($button));
|
||||
return $this->newBox(pht('Subversion'), $view);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -14,7 +14,17 @@ final class DiffusionRepositorySymbolsManagementPanel
|
|||
}
|
||||
|
||||
public function getManagementPanelIcon() {
|
||||
return 'fa-bullseye';
|
||||
$repository = $this->getRepository();
|
||||
|
||||
$has_any =
|
||||
$repository->getSymbolLanguages() ||
|
||||
$repository->getSymbolSources();
|
||||
|
||||
if ($has_any) {
|
||||
return 'fa-link';
|
||||
} else {
|
||||
return 'fa-link grey';
|
||||
}
|
||||
}
|
||||
|
||||
protected function getEditEngineFieldKeys() {
|
||||
|
@ -24,6 +34,30 @@ final class DiffusionRepositorySymbolsManagementPanel
|
|||
);
|
||||
}
|
||||
|
||||
public function buildManagementPanelCurtain() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
$action_list = $this->newActionList();
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$symbols_uri = $this->getEditPageURI();
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setIcon('fa-pencil')
|
||||
->setName(pht('Edit Symbols'))
|
||||
->setHref($symbols_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit));
|
||||
|
||||
return $this->newCurtainView()
|
||||
->setActionList($action_list);
|
||||
}
|
||||
|
||||
public function buildManagementPanelContent() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
|
@ -47,22 +81,7 @@ final class DiffusionRepositorySymbolsManagementPanel
|
|||
}
|
||||
$view->addProperty(pht('Uses Symbols From'), $sources);
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$symbols_uri = $this->getEditPageURI();
|
||||
|
||||
$button = id(new PHUIButtonView())
|
||||
->setTag('a')
|
||||
->setIcon('fa-pencil')
|
||||
->setText(pht('Edit'))
|
||||
->setHref($symbols_uri)
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit);
|
||||
|
||||
return $this->newBox(pht('Symbols'), $view, array($button));
|
||||
return $this->newBox(pht('Symbols'), $view);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -17,6 +17,36 @@ final class DiffusionRepositoryURIsManagementPanel
|
|||
return 400;
|
||||
}
|
||||
|
||||
public function buildManagementPanelCurtain() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
$action_list = $this->newActionList();
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$doc_href = PhabricatorEnv::getDoclink('Diffusion User Guide: URIs');
|
||||
$add_href = $repository->getPathURI('uri/edit/');
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setIcon('fa-plus')
|
||||
->setHref($add_href)
|
||||
->setDisabled(!$can_edit)
|
||||
->setName(pht('Add New URI')));
|
||||
|
||||
$action_list->addAction(
|
||||
id(new PhabricatorActionView())
|
||||
->setIcon('fa-book')
|
||||
->setHref($doc_href)
|
||||
->setName(pht('URI Documentation')));
|
||||
|
||||
return $this->newCurtainView()
|
||||
->setActionList($action_list);
|
||||
}
|
||||
|
||||
public function buildManagementPanelContent() {
|
||||
$repository = $this->getRepository();
|
||||
$viewer = $this->getViewer();
|
||||
|
@ -122,30 +152,9 @@ final class DiffusionRepositoryURIsManagementPanel
|
|||
->setSeverity(PHUIInfoView::SEVERITY_NOTICE)
|
||||
->setErrors($messages);
|
||||
|
||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
||||
$viewer,
|
||||
$repository,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
$box = $this->newBox(pht('Repository URIs'), $table);
|
||||
|
||||
$doc_href = PhabricatorEnv::getDoclink('Diffusion User Guide: URIs');
|
||||
$add_href = $repository->getPathURI('uri/edit/');
|
||||
|
||||
$add = id(new PHUIButtonView())
|
||||
->setTag('a')
|
||||
->setIcon('fa-plus')
|
||||
->setHref($add_href)
|
||||
->setDisabled(!$can_edit)
|
||||
->setText(pht('New URI'));
|
||||
|
||||
$help = id(new PHUIButtonView())
|
||||
->setTag('a')
|
||||
->setIcon('fa-book')
|
||||
->setHref($doc_href)
|
||||
->setText(pht('Help'));
|
||||
|
||||
$box = $this->newBox(pht('Repository URIs'), $table, array($add, $help));
|
||||
|
||||
return array($box, $info_view);
|
||||
return array($info_view, $box);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue