Correct Aphlict websocket URI construction after PHP8 compatibility changes
[phabricator.git] / src / applications / project / menuitem / PhabricatorProjectWorkboardProfileMenuItem.php
blob20cda3b4f5e083fb2435bb570a2a94c3b71f5e8b
1 <?php
3 final class PhabricatorProjectWorkboardProfileMenuItem
4 extends PhabricatorProfileMenuItem {
6 const MENUITEMKEY = 'project.workboard';
8 public function getMenuItemTypeName() {
9 return pht('Project Workboard');
12 private function getDefaultName() {
13 return pht('Workboard');
16 public function getDisplayName(
17 PhabricatorProfileMenuItemConfiguration $config) {
18 $default = $this->getDefaultName();
19 return $this->getNameFromConfig($config, $default);
22 public function getMenuItemTypeIcon() {
23 return 'fa-columns';
26 public function canMakeDefault(
27 PhabricatorProfileMenuItemConfiguration $config) {
28 return true;
31 public function shouldEnableForObject($object) {
32 $viewer = $this->getViewer();
34 // Workboards are only available if Maniphest is installed.
35 $class = 'PhabricatorManiphestApplication';
36 if (!PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) {
37 return false;
40 return true;
43 public function buildEditEngineFields(
44 PhabricatorProfileMenuItemConfiguration $config) {
45 return array(
46 id(new PhabricatorTextEditField())
47 ->setKey('name')
48 ->setLabel(pht('Name'))
49 ->setPlaceholder($this->getDefaultName())
50 ->setValue($config->getMenuItemProperty('name')),
54 protected function newMenuItemViewList(
55 PhabricatorProfileMenuItemConfiguration $config) {
56 $project = $config->getProfileObject();
58 $id = $project->getID();
59 $uri = $project->getWorkboardURI();
60 $name = $this->getDisplayName($config);
62 $item = $this->newItemView()
63 ->setURI($uri)
64 ->setName($name)
65 ->setIcon('fa-columns');
67 return array(
68 $item,