diff --git a/roles/phabricator/files/PhabricatorProjectWikiProfilePanel.php b/roles/phabricator/files/PhabricatorProjectWikiProfilePanel.php index 97013c9..f974aca 100644 --- a/roles/phabricator/files/PhabricatorProjectWikiProfilePanel.php +++ b/roles/phabricator/files/PhabricatorProjectWikiProfilePanel.php @@ -1,66 +1,66 @@ getPanelProperty('name'); + PhabricatorProfileMenuItemConfiguration $config) { + $name = $config->getMenuItemProperty('name'); if (strlen($name)) { return $name; } return $this->getDefaultName(); } public function buildEditEngineFields( - PhabricatorProfilePanelConfiguration $config) { + PhabricatorProfileMenuItemConfiguration $config) { return array( id(new PhabricatorTextEditField()) ->setKey('name') ->setLabel(pht('Name')) ->setPlaceholder($this->getDefaultName()) - ->setValue($config->getPanelProperty('name')), + ->setValue($config->getMenuItemProperty('name')), ); } protected function newNavigationMenuItems( - PhabricatorProfilePanelConfiguration $config) { + PhabricatorProfileMenuItemConfiguration $config) { $project = $config->getProfileObject(); $id = $project->getID(); $name = $this->getDisplayName($config); $icon = 'fa-book'; $href = "/project/wiki/view/{$id}/"; $item = $this->newItem() ->setHref($href) ->setName($name) ->setIcon($icon); return array( $item, ); } } diff --git a/roles/phabricator/files/PhabricatorProjectWikiView.php b/roles/phabricator/files/PhabricatorProjectWikiView.php index 052e5c3..09bcea5 100644 --- a/roles/phabricator/files/PhabricatorProjectWikiView.php +++ b/roles/phabricator/files/PhabricatorProjectWikiView.php @@ -1,106 +1,106 @@ getViewer(); $id = $request->getURIData('id'); $project = id(new PhabricatorProjectQuery()) ->setViewer($viewer) ->withIDs(array($id)) ->needImages(true) ->executeOne(); if (!$project) { return new Aphront404Response(); } $this->setProject($project); $title = pht('Wiki pages'); $curtain = $this->buildCurtainView($project); $query = id(new PhrictionDocumentQuery()) ->setViewer($viewer) ->needContent(true) ->withStatus(PhrictionDocumentQuery::STATUS_OPEN) ->withSlugPrefix(PhabricatorProjectWikiCreate::getAllSlugs($project)) ->execute(); $wiki_list = new PHUIObjectItemListView(); foreach($query as $w){ $wiki_list->addItem( id(new PHUIObjectItemView()) ->setHeader($w->getContent()->getTitle()) ->addAttribute($w->getSlug()) ->setHref($w->getSlugURI($w->getSlug()))); } $nav = $this->getProfileMenu(); - $nav->selectFilter(PhabricatorProjectWikiProfilePanel::PANEL_WIKI); + $nav->selectFilter(PhabricatorProjectWikiProfileMenuItem::MENUITEM_WIKI); $crumbs = $this->buildApplicationCrumbs(); $crumbs->addCrumb( id(new PHUICrumbView()) ->setHref("/project/view/${id}") ->setName($project->getName()) ); $crumbs->addTextCrumb(pht('Wiki')); $crumbs->setBorder(true); $header = id(new PHUIHeaderView()) ->setHeader($title) ->setHeaderIcon('fa-book'); $view = id(new PHUITwoColumnView()) ->setHeader($header) ->setCurtain($curtain) ->setMainColumn(array( $wiki_list, )); return $this->newPage() ->setNavigation($nav) ->setCrumbs($crumbs) ->setTitle(array($project->getName(), $title)) ->appendChild($view); } private function buildCurtainView(PhabricatorProject $project) { $viewer = $this->getViewer(); $id = $project->getID(); $curtain = $this->newCurtainView($project); $can_edit = PhabricatorPolicyFilter::hasCapability( $viewer, $project, PhabricatorPolicyCapability::CAN_EDIT); if($can_edit) { $curtain->addAction( id(new PhabricatorActionView()) ->setName('Create wiki page') ->setIcon('fa-plus') ->setHref("/project/wiki/create/{$id}/") ->setWorkflow(true)); } return $curtain; } protected function buildApplicationCrumbs() { $view = new PHUICrumbsView(); $view->addCrumb( id(new PHUICrumbView()) ->setHref('/project/') ->setName(pht('Projects')) ->setIcon('fa-briefcase') ); return $view; } } diff --git a/roles/phabricator/files/project_panels.patch b/roles/phabricator/files/project_panels.patch index 7b535e0..4fe64bc 100644 --- a/roles/phabricator/files/project_panels.patch +++ b/roles/phabricator/files/project_panels.patch @@ -1,36 +1,36 @@ ---- a/src/applications/project/engine/PhabricatorProjectProfilePanelEngine.php -+++ b/src/applications/project/engine/PhabricatorProjectProfilePanelEngine.php -@@ -26,7 +26,8 @@ +--- a/src/applications/project/engine/PhabricatorProjectProfileMenuEngine.php ++++ b/src/applications/project/engine/PhabricatorProjectProfileMenuEngine.php +@@ -26,7 +26,8 @@ final class PhabricatorProjectProfileMenuEngine - $panels[] = $this->newPanel() - ->setBuiltinKey(PhabricatorProject::PANEL_WORKBOARD) -- ->setPanelKey(PhabricatorProjectWorkboardProfilePanel::PANELKEY); -+ ->setPanelKey(PhabricatorProjectWorkboardProfilePanel::PANELKEY) -+ ->setVisibility(PhabricatorProfilePanelConfiguration::VISIBILITY_DISABLED); + $items[] = $this->newItem() + ->setBuiltinKey(PhabricatorProject::ITEM_WORKBOARD) +- ->setMenuItemKey(PhabricatorProjectWorkboardProfileMenuItem::MENUITEMKEY); ++ ->setMenuItemKey(PhabricatorProjectWorkboardProfileMenuItem::MENUITEMKEY) ++ ->setVisibility(PhabricatorProfileMenuItemConfiguration::VISIBILITY_DISABLED); - $panels[] = $this->newPanel() - ->setBuiltinKey(PhabricatorProject::PANEL_MEMBERS) -@@ -34,7 +35,22 @@ - - $panels[] = $this->newPanel() - ->setBuiltinKey(PhabricatorProject::PANEL_SUBPROJECTS) -- ->setPanelKey(PhabricatorProjectSubprojectsProfilePanel::PANELKEY); -+ ->setPanelKey(PhabricatorProjectSubprojectsProfilePanel::PANELKEY) -+ ->setVisibility(PhabricatorProfilePanelConfiguration::VISIBILITY_DISABLED); + $items[] = $this->newItem() + ->setBuiltinKey(PhabricatorProject::ITEM_MEMBERS) +@@ -35,7 +36,22 @@ final class PhabricatorProjectProfileMenuEngine + $items[] = $this->newItem() + ->setBuiltinKey(PhabricatorProject::ITEM_SUBPROJECTS) + ->setMenuItemKey( +- PhabricatorProjectSubprojectsProfileMenuItem::MENUITEMKEY); ++ PhabricatorProjectSubprojectsProfileMenuItem::MENUITEMKEY) ++ ->setVisibility(PhabricatorProfileMenuItemConfiguration::VISIBILITY_DISABLED); + + $project = $this->getProfileObject(); -+ $panels[] = $this->newPanel() ++ $items[] = $this->newItem() + ->setBuiltinKey('project.repo') -+ ->setPanelKey(PhabricatorLinkProfilePanel::PANELKEY) -+ ->setPanelProperty('icon', 'diffusion') -+ ->setPanelProperty('name', pht('Repositories')) -+ ->setPanelProperty('uri', '/diffusion/?status=open&projectPHIDs=' ++ ->setMenuItemKey(PhabricatorLinkProfileMenuItem::MENUITEMKEY) ++ ->setMenuItemProperty('icon', 'diffusion') ++ ->setMenuItemProperty('name', pht('Repositories')) ++ ->setMenuItemProperty('uri', '/diffusion/?status=open&projectPHIDs=' + . $project->getPHID() . '#R'); + -+ $panels[] = $this->newPanel() -+ ->setBuiltinKey(PhabricatorProjectWikiProfilePanel::PANEL_WIKI) -+ ->setPanelKey(PhabricatorProjectWikiProfilePanel::PANELKEY) -+ ->setVisibility(PhabricatorProfilePanelConfiguration::VISIBILITY_DISABLED); ++ $items[] = $this->newItem() ++ ->setBuiltinKey(PhabricatorProjectWikiProfileMenuItem::MENUITEM_WIKI) ++ ->setMenuItemKey(PhabricatorProjectWikiProfileMenuItem::MENUITEMKEY) ++ ->setVisibility(PhabricatorProfileMenuItemConfiguration::VISIBILITY_DISABLED); - $panels[] = $this->newPanel() - ->setBuiltinKey(PhabricatorProject::PANEL_MANAGE) + $items[] = $this->newItem() + ->setBuiltinKey(PhabricatorProject::ITEM_MANAGE) diff --git a/roles/phabricator/files/project_wiki_panel.patch b/roles/phabricator/files/project_wiki_panel.patch index 6c48b3a..26ed807 100644 --- a/roles/phabricator/files/project_wiki_panel.patch +++ b/roles/phabricator/files/project_wiki_panel.patch @@ -1,12 +1,12 @@ --- a/src/applications/project/controller/PhabricatorProjectViewController.php +++ b/src/applications/project/controller/PhabricatorProjectViewController.php -@@ -21,6 +21,9 @@ - $default = $engine->getDefaultPanel(); +@@ -21,6 +21,9 @@ final class PhabricatorProjectViewController + $default = $engine->getDefaultItem(); switch ($default->getBuiltinKey()) { -+ case PhabricatorProjectWikiProfilePanel::PANEL_WIKI: ++ case PhabricatorProjectWikiProfileMenuItem::MENUITEM_WIKI: + $controller_object = new PhabricatorProjectWikiView(); + break; - case PhabricatorProject::PANEL_WORKBOARD: + case PhabricatorProject::ITEM_WORKBOARD: $controller_object = new PhabricatorProjectBoardViewController(); break;