1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-30 02:32:42 +01:00

Move profile-related "settings" and "account" panel information to "edit profile"

Summary: Ref T1703. Put this stuff on Profile -> Edit Profile instead of spread across Settings -> Account and Settings -> Profile. Makes it custom-field driven.

Test Plan: {F49333} {F49334}

Reviewers: chad, btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T1703

Differential Revision: https://secure.phabricator.com/D6397
This commit is contained in:
epriestley 2013-07-09 16:23:45 -07:00
parent c5f2e617d8
commit 62ab1dcc62
4 changed files with 29 additions and 61 deletions

View file

@ -104,23 +104,31 @@ final class PhabricatorPeopleProfileController
} }
} }
$nav->appendChild($header); $actions = id(new PhabricatorActionListView())
$nav->appendChild($content); ->setUser($viewer);
if ($user->getPHID() == $viewer->getPHID()) { $can_edit = ($user->getPHID() == $viewer->getPHID());
$nav->addFilter(
null, $actions->addAction(
pht('Edit Profile...'), id(new PhabricatorActionView())
'/settings/panel/profile/'); ->setIcon('edit')
} ->setName(pht('Edit Profile'))
->setHref($this->getApplicationURI('editprofile/'.$user->getID().'/'))
->setDisabled(!$can_edit)
->setWorkflow(!$can_edit));
if ($viewer->getIsAdmin()) { if ($viewer->getIsAdmin()) {
$nav->addFilter( $actions->addAction(
null, id(new PhabricatorActionView())
pht('Administrate User...'), ->setIcon('blame')
'/people/edit/'.$user->getID().'/'); ->setName(pht('Administrate User'))
->setHref($this->getApplicationURI('edit/'.$user->getID().'/')));
} }
$nav->appendChild($header);
$nav->appendChild($actions);
$nav->appendChild($content);
return $this->buildApplicationPage( return $this->buildApplicationPage(
$nav, $nav,
array( array(

View file

@ -26,6 +26,9 @@ final class PhabricatorUserRealNameField
} }
public function getNewValueForApplicationTransactions() { public function getNewValueForApplicationTransactions() {
if (!$this->isEditable()) {
return $this->getObject()->getRealName();
}
return $this->value; return $this->value;
} }
@ -42,7 +45,12 @@ final class PhabricatorUserRealNameField
return id(new AphrontFormTextControl()) return id(new AphrontFormTextControl())
->setName($this->getFieldKey()) ->setName($this->getFieldKey())
->setValue($this->value) ->setValue($this->value)
->setLabel($this->getFieldName()); ->setLabel($this->getFieldName())
->setDisabled(!$this->isEditable());
}
private function isEditable() {
return PhabricatorEnv::getEnvConfig('account.editable');
} }
} }

View file

@ -17,20 +17,8 @@ final class PhabricatorSettingsPanelAccount
public function processRequest(AphrontRequest $request) { public function processRequest(AphrontRequest $request) {
$user = $request->getUser(); $user = $request->getUser();
$editable = PhabricatorEnv::getEnvConfig('account.editable');
$e_realname = $editable ? true : null;
$errors = array(); $errors = array();
if ($request->isFormPost()) { if ($request->isFormPost()) {
if ($editable) {
$user->setRealName($request->getStr('realname'));
if (!strlen($user->getRealName())) {
$errors[] = pht('Real name must be nonempty.');
$e_realname = pht('Required');
}
}
$new_timezone = $request->getStr('timezone'); $new_timezone = $request->getStr('timezone');
if (in_array($new_timezone, DateTimeZone::listIdentifiers(), true)) { if (in_array($new_timezone, DateTimeZone::listIdentifiers(), true)) {
$user->setTimezoneIdentifier($new_timezone); $user->setTimezoneIdentifier($new_timezone);
@ -72,13 +60,6 @@ final class PhabricatorSettingsPanelAccount
id(new AphrontFormStaticControl()) id(new AphrontFormStaticControl())
->setLabel(pht('Username')) ->setLabel(pht('Username'))
->setValue($user->getUsername())) ->setValue($user->getUsername()))
->appendChild(
id(new AphrontFormTextControl())
->setLabel(pht('Real Name'))
->setName('realname')
->setError($e_realname)
->setValue($user->getRealName())
->setDisabled(!$editable))
->appendChild( ->appendChild(
id(new AphrontFormSelectControl()) id(new AphrontFormSelectControl())
->setLabel(pht('Timezone')) ->setLabel(pht('Timezone'))

View file

@ -25,9 +25,6 @@ final class PhabricatorSettingsPanelProfile
$e_image = null; $e_image = null;
$errors = array(); $errors = array();
if ($request->isFormPost()) { if ($request->isFormPost()) {
$profile->setTitle($request->getStr('title'));
$profile->setBlurb($request->getStr('blurb'));
$sex = $request->getStr('sex'); $sex = $request->getStr('sex');
$sexes = array(PhutilPerson::SEX_MALE, PhutilPerson::SEX_FEMALE); $sexes = array(PhutilPerson::SEX_MALE, PhutilPerson::SEX_FEMALE);
if (in_array($sex, $sexes)) { if (in_array($sex, $sexes)) {
@ -148,12 +145,6 @@ final class PhabricatorSettingsPanelProfile
$form $form
->setUser($request->getUser()) ->setUser($request->getUser())
->setEncType('multipart/form-data') ->setEncType('multipart/form-data')
->appendChild(
id(new AphrontFormTextControl())
->setLabel(pht('Title'))
->setName('title')
->setValue($profile->getTitle())
->setCaption(pht('Serious business title.')))
->appendChild( ->appendChild(
id(new AphrontFormSelectControl()) id(new AphrontFormSelectControl())
->setOptions($sexes) ->setOptions($sexes)
@ -166,26 +157,6 @@ final class PhabricatorSettingsPanelProfile
->setLabel(pht('Translation')) ->setLabel(pht('Translation'))
->setName('translation') ->setName('translation')
->setValue($user->getTranslation())) ->setValue($user->getTranslation()))
->appendChild(
id(new AphrontFormMarkupControl())
->setLabel(pht('Profile URI'))
->setValue(
phutil_tag(
'a',
array(
'href' => $profile_uri,
),
$profile_uri)))
->appendChild(hsprintf(
'<p class="aphront-form-instructions">%s</p>',
pht('Write something about yourself! Make sure to include important ' .
'information like your favorite Pokemon and which Starcraft race ' .
'you play.')))
->appendChild(
id(new AphrontFormTextAreaControl())
->setLabel(pht('Blurb'))
->setName('blurb')
->setValue($profile->getBlurb()))
->appendChild( ->appendChild(
id(new AphrontFormMarkupControl()) id(new AphrontFormMarkupControl())
->setLabel(pht('Profile Image')) ->setLabel(pht('Profile Image'))