@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Use curtain views in Almanac

Summary: Convert Almanac interfaces to Curtain views.

Test Plan: Viewed Services, Bindings, Devices, Namespaces and Networks.

Reviewers: chad

Reviewed By: chad

Differential Revision: https://secure.phabricator.com/D15415

+59 -113
+14 -15
src/applications/almanac/controller/AlmanacBindingViewController.php
··· 28 28 29 29 $properties = $this->buildPropertyList($binding); 30 30 $details = $this->buildPropertySection($binding); 31 - $actions = $this->buildActionList($binding); 31 + $curtain = $this->buildCurtain($binding); 32 32 33 33 $header = id(new PHUIHeaderView()) 34 34 ->setUser($viewer) ··· 62 62 63 63 $view = id(new PHUITwoColumnView()) 64 64 ->setHeader($header) 65 + ->setCurtain($curtain) 65 66 ->setMainColumn(array( 66 67 $issue, 67 68 $this->buildAlmanacPropertiesTable($binding), 68 69 $timeline, 69 70 )) 70 - ->setPropertyList($properties) 71 - ->addPropertySection(pht('DETAILS'), $details) 72 - ->setActionList($actions); 71 + ->addPropertySection(pht('DETAILS'), $details); 73 72 74 73 return $this->newPage() 75 74 ->setTitle($title) ··· 116 115 return $properties; 117 116 } 118 117 119 - private function buildActionList(AlmanacBinding $binding) { 118 + private function buildCurtain(AlmanacBinding $binding) { 120 119 $viewer = $this->getViewer(); 121 - $id = $binding->getID(); 122 120 123 121 $can_edit = PhabricatorPolicyFilter::hasCapability( 124 122 $viewer, 125 123 $binding, 126 124 PhabricatorPolicyCapability::CAN_EDIT); 127 125 128 - $actions = id(new PhabricatorActionListView()) 129 - ->setUser($viewer); 126 + $id = $binding->getID(); 127 + $edit_uri = $this->getApplicationURI("binding/edit/{$id}/"); 128 + $disable_uri = $this->getApplicationURI("binding/disable/{$id}/"); 129 + 130 + $curtain = $this->newCurtainView($binding); 130 131 131 - $actions->addAction( 132 + $curtain->addAction( 132 133 id(new PhabricatorActionView()) 133 134 ->setIcon('fa-pencil') 134 135 ->setName(pht('Edit Binding')) 135 - ->setHref($this->getApplicationURI("binding/edit/{$id}/")) 136 + ->setHref($edit_uri) 136 137 ->setWorkflow(!$can_edit) 137 138 ->setDisabled(!$can_edit)); 138 139 ··· 144 145 $disable_text = pht('Disable Binding'); 145 146 } 146 147 147 - $disable_href = $this->getApplicationURI("binding/disable/{$id}/"); 148 - 149 - $actions->addAction( 148 + $curtain->addAction( 150 149 id(new PhabricatorActionView()) 151 150 ->setIcon($disable_icon) 152 151 ->setName($disable_text) 153 - ->setHref($disable_href) 152 + ->setHref($disable_uri) 154 153 ->setWorkflow(true) 155 154 ->setDisabled(!$can_edit)); 156 155 157 - return $actions; 156 + return $curtain; 158 157 } 159 158 160 159 }
+11 -22
src/applications/almanac/controller/AlmanacDeviceViewController.php
··· 23 23 24 24 $title = pht('Device %s', $device->getName()); 25 25 26 - $properties = $this->buildPropertyList($device); 27 - $actions = $this->buildActionList($device); 26 + $curtain = $this->buildCurtain($device); 28 27 29 28 $header = id(new PHUIHeaderView()) 30 29 ->setUser($viewer) ··· 55 54 56 55 $view = id(new PHUITwoColumnView()) 57 56 ->setHeader($header) 57 + ->setCurtain($curtain) 58 58 ->setMainColumn(array( 59 59 $issue, 60 60 $interfaces, ··· 62 62 $this->buildSSHKeysTable($device), 63 63 $this->buildServicesTable($device), 64 64 $timeline, 65 - )) 66 - ->setPropertyList($properties) 67 - ->setActionList($actions); 65 + )); 68 66 69 67 return $this->newPage() 70 68 ->setTitle($title) ··· 75 73 )); 76 74 } 77 75 78 - private function buildPropertyList(AlmanacDevice $device) { 76 + private function buildCurtain(AlmanacDevice $device) { 79 77 $viewer = $this->getViewer(); 80 78 81 - $properties = id(new PHUIPropertyListView()) 82 - ->setUser($viewer) 83 - ->setObject($device); 84 - 85 - return $properties; 86 - } 87 - 88 - private function buildActionList(AlmanacDevice $device) { 89 - $viewer = $this->getViewer(); 90 - $id = $device->getID(); 91 - 92 79 $can_edit = PhabricatorPolicyFilter::hasCapability( 93 80 $viewer, 94 81 $device, 95 82 PhabricatorPolicyCapability::CAN_EDIT); 96 83 97 - $actions = id(new PhabricatorActionListView()) 98 - ->setUser($viewer); 84 + $id = $device->getID(); 85 + $edit_uri = $this->getApplicationURI("device/edit/{$id}/"); 99 86 100 - $actions->addAction( 87 + $curtain = $this->newCurtainView($device); 88 + 89 + $curtain->addAction( 101 90 id(new PhabricatorActionView()) 102 91 ->setIcon('fa-pencil') 103 92 ->setName(pht('Edit Device')) 104 - ->setHref($this->getApplicationURI("device/edit/{$id}/")) 93 + ->setHref($edit_uri) 105 94 ->setWorkflow(!$can_edit) 106 95 ->setDisabled(!$can_edit)); 107 96 108 - return $actions; 97 + return $curtain; 109 98 } 110 99 111 100 private function buildInterfaceList(AlmanacDevice $device) {
+11 -24
src/applications/almanac/controller/AlmanacNamespaceViewController.php
··· 21 21 22 22 $title = pht('Namespace %s', $namespace->getName()); 23 23 24 - $properties = $this->buildPropertyList($namespace); 25 - $actions = $this->buildActionList($namespace); 24 + $curtain = $this->buildCurtain($namespace); 26 25 27 26 $header = id(new PHUIHeaderView()) 28 27 ->setUser($viewer) ··· 41 40 42 41 $view = id(new PHUITwoColumnView()) 43 42 ->setHeader($header) 43 + ->setCurtain($curtain) 44 44 ->setMainColumn(array( 45 45 $timeline, 46 - )) 47 - ->setPropertyList($properties) 48 - ->setActionList($actions); 46 + )); 49 47 50 48 return $this->newPage() 51 49 ->setTitle($title) ··· 56 54 )); 57 55 } 58 56 59 - private function buildPropertyList(AlmanacNamespace $namespace) { 57 + private function buildCurtain(AlmanacNamespace $namespace) { 60 58 $viewer = $this->getViewer(); 61 59 62 - $properties = id(new PHUIPropertyListView()) 63 - ->setUser($viewer) 64 - ->setObject($namespace); 65 - 66 - $properties->invokeWillRenderEvent(); 67 - 68 - return $properties; 69 - } 70 - 71 - private function buildActionList(AlmanacNamespace $namespace) { 72 - $viewer = $this->getViewer(); 73 - $id = $namespace->getID(); 74 - 75 60 $can_edit = PhabricatorPolicyFilter::hasCapability( 76 61 $viewer, 77 62 $namespace, 78 63 PhabricatorPolicyCapability::CAN_EDIT); 79 64 80 - $actions = id(new PhabricatorActionListView()) 81 - ->setUser($viewer); 65 + $id = $namespace->getID(); 66 + $edit_uri = $this->getApplicationURI("namespace/edit/{$id}/"); 67 + 68 + $curtain = $this->newCurtainView($namespace); 82 69 83 - $actions->addAction( 70 + $curtain->addAction( 84 71 id(new PhabricatorActionView()) 85 72 ->setIcon('fa-pencil') 86 73 ->setName(pht('Edit Namespace')) 87 - ->setHref($this->getApplicationURI("namespace/edit/{$id}/")) 74 + ->setHref($edit_uri) 88 75 ->setWorkflow(!$can_edit) 89 76 ->setDisabled(!$can_edit)); 90 77 91 - return $actions; 78 + return $curtain; 92 79 } 93 80 94 81 }
+11 -23
src/applications/almanac/controller/AlmanacNetworkViewController.php
··· 21 21 22 22 $title = pht('Network %s', $network->getName()); 23 23 24 - $properties = $this->buildPropertyList($network); 25 - $actions = $this->buildActionList($network); 24 + $curtain = $this->buildCurtain($network); 26 25 27 26 $header = id(new PHUIHeaderView()) 28 27 ->setUser($viewer) ··· 41 40 42 41 $view = id(new PHUITwoColumnView()) 43 42 ->setHeader($header) 43 + ->setCurtain($curtain) 44 44 ->setMainColumn(array( 45 45 $timeline, 46 - )) 47 - ->setPropertyList($properties) 48 - ->setActionList($actions); 46 + )); 49 47 50 48 return $this->newPage() 51 49 ->setTitle($title) ··· 56 54 )); 57 55 } 58 56 59 - private function buildPropertyList(AlmanacNetwork $network) { 60 - $viewer = $this->getViewer(); 61 57 62 - $properties = id(new PHUIPropertyListView()) 63 - ->setUser($viewer) 64 - ->setObject($network); 65 - 66 - $properties->invokeWillRenderEvent(); 67 - 68 - return $properties; 69 - } 70 - 71 - private function buildActionList(AlmanacNetwork $network) { 58 + private function buildCurtain(AlmanacNetwork $network) { 72 59 $viewer = $this->getViewer(); 73 - $id = $network->getID(); 74 60 75 61 $can_edit = PhabricatorPolicyFilter::hasCapability( 76 62 $viewer, 77 63 $network, 78 64 PhabricatorPolicyCapability::CAN_EDIT); 79 65 80 - $actions = id(new PhabricatorActionListView()) 81 - ->setUser($viewer); 66 + $id = $network->getID(); 67 + $edit_uri = $this->getApplicationURI("network/edit/{$id}/"); 68 + 69 + $curtain = $this->newCurtainView($network); 82 70 83 - $actions->addAction( 71 + $curtain->addAction( 84 72 id(new PhabricatorActionView()) 85 73 ->setIcon('fa-pencil') 86 74 ->setName(pht('Edit Network')) 87 - ->setHref($this->getApplicationURI("network/edit/{$id}/")) 75 + ->setHref($edit_uri) 88 76 ->setWorkflow(!$can_edit) 89 77 ->setDisabled(!$can_edit)); 90 78 91 - return $actions; 79 + return $curtain; 92 80 } 93 81 94 82 }
+12 -29
src/applications/almanac/controller/AlmanacServiceViewController.php
··· 23 23 24 24 $title = pht('Service %s', $service->getName()); 25 25 26 - $properties = $this->buildPropertyList($service); 27 - $actions = $this->buildActionList($service); 26 + $curtain = $this->buildCurtain($service); 28 27 $details = $this->buildPropertySection($service); 29 28 30 29 $header = id(new PHUIHeaderView()) ··· 55 54 56 55 $view = id(new PHUITwoColumnView()) 57 56 ->setHeader($header) 57 + ->setCurtain($curtain) 58 58 ->setMainColumn(array( 59 59 $issue, 60 60 $details, 61 61 $bindings, 62 62 $this->buildAlmanacPropertiesTable($service), 63 63 $timeline, 64 - )) 65 - ->setPropertyList($properties) 66 - ->setActionList($actions); 64 + )); 67 65 68 66 return $this->newPage() 69 67 ->setTitle($title) 70 68 ->setCrumbs($crumbs) 71 - ->appendChild( 72 - array( 73 - $view, 74 - )); 75 - } 76 - 77 - private function buildPropertyList( 78 - AlmanacService $service) { 79 - $viewer = $this->getViewer(); 80 - 81 - $view = id(new PHUIPropertyListView()) 82 - ->setUser($viewer) 83 - ->setObject($service); 84 - 85 - $view->invokeWillRenderEvent(); 86 - 87 - return $view; 69 + ->appendChild($view); 88 70 } 89 71 90 72 private function buildPropertySection( ··· 104 86 ->appendChild($properties); 105 87 } 106 88 107 - private function buildActionList(AlmanacService $service) { 89 + private function buildCurtain(AlmanacService $service) { 108 90 $viewer = $this->getViewer(); 109 - $id = $service->getID(); 110 91 111 92 $can_edit = PhabricatorPolicyFilter::hasCapability( 112 93 $viewer, 113 94 $service, 114 95 PhabricatorPolicyCapability::CAN_EDIT); 115 96 116 - $actions = id(new PhabricatorActionListView()) 117 - ->setUser($viewer); 97 + $id = $service->getID(); 98 + $edit_uri = $this->getApplicationURI("service/edit/{$id}/"); 118 99 119 - $actions->addAction( 100 + $curtain = $this->newCurtainView($service); 101 + 102 + $curtain->addAction( 120 103 id(new PhabricatorActionView()) 121 104 ->setIcon('fa-pencil') 122 105 ->setName(pht('Edit Service')) 123 - ->setHref($this->getApplicationURI("service/edit/{$id}/")) 106 + ->setHref($edit_uri) 124 107 ->setWorkflow(!$can_edit) 125 108 ->setDisabled(!$can_edit)); 126 109 127 - return $actions; 110 + return $curtain; 128 111 } 129 112 130 113 private function buildBindingList(AlmanacService $service) {