Differential D16048 Diff 38616 src/applications/settings/panel/PhabricatorEditEngineSettingsPanel.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/settings/panel/PhabricatorEditEngineSettingsPanel.php
| <?php | <?php | ||||
| abstract class PhabricatorEditEngineSettingsPanel | abstract class PhabricatorEditEngineSettingsPanel | ||||
| extends PhabricatorSettingsPanel { | extends PhabricatorSettingsPanel { | ||||
| final public function processRequest(AphrontRequest $request) { | final public function processRequest(AphrontRequest $request) { | ||||
| $viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
| $user = $this->getUser(); | $user = $this->getUser(); | ||||
| if ($user->getPHID() === $viewer->getPHID()) { | if ($user && ($user->getPHID() === $viewer->getPHID())) { | ||||
| $is_self = true; | $is_self = true; | ||||
| } else { | } else { | ||||
| $is_self = false; | $is_self = false; | ||||
| } | } | ||||
| if ($user->getPHID()) { | if ($user && $user->getPHID()) { | ||||
| $profile_uri = '/people/manage/'.$user->getID().'/'; | $profile_uri = '/people/manage/'.$user->getID().'/'; | ||||
| } else { | } else { | ||||
| $profile_uri = null; | $profile_uri = null; | ||||
| } | } | ||||
| $engine = id(new PhabricatorSettingsEditEngine()) | $engine = id(new PhabricatorSettingsEditEngine()) | ||||
| ->setController($this->getController()) | ->setController($this->getController()) | ||||
| ->setNavigation($this->getNavigation()) | ->setNavigation($this->getNavigation()) | ||||
| ->setHideHeader(true) | ->setHideHeader(true) | ||||
| ->setIsSelfEdit($is_self) | ->setIsSelfEdit($is_self) | ||||
| ->setProfileURI($profile_uri); | ->setProfileURI($profile_uri); | ||||
| $preferences = $this->loadTargetPreferences(); | $preferences = $this->getPreferences(); | ||||
| $engine->setTargetObject($preferences); | $engine->setTargetObject($preferences); | ||||
| return $engine->buildResponse(); | return $engine->buildResponse(); | ||||
| } | } | ||||
| final public function isEnabled() { | final public function isEnabled() { | ||||
| // Only enable the panel if it has any fields. | // Only enable the panel if it has any fields. | ||||
| $field_keys = $this->getPanelSettingsKeys(); | $field_keys = $this->getPanelSettingsKeys(); | ||||
| return (bool)$field_keys; | return (bool)$field_keys; | ||||
| } | } | ||||
| final public function newEditEnginePage() { | final public function newEditEnginePage() { | ||||
| $field_keys = $this->getPanelSettingsKeys(); | $field_keys = $this->getPanelSettingsKeys(); | ||||
| if (!$field_keys) { | if (!$field_keys) { | ||||
| return null; | return null; | ||||
| } | } | ||||
| $key = $this->getPanelKey(); | $key = $this->getPanelKey(); | ||||
| $label = $this->getPanelName(); | $label = $this->getPanelName(); | ||||
| $panel_uri = $this->getPanelURI().'saved/'; | $panel_uri = $this->getPanelURI(); | ||||
| return id(new PhabricatorEditPage()) | return id(new PhabricatorEditPage()) | ||||
| ->setKey($key) | ->setKey($key) | ||||
| ->setLabel($label) | ->setLabel($label) | ||||
| ->setViewURI($panel_uri) | ->setViewURI($panel_uri) | ||||
| ->setFieldKeys($field_keys); | ->setFieldKeys($field_keys); | ||||
| } | } | ||||
| Show All 17 Lines | |||||