We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit a3928e55 authored by Brion Vibber's avatar Brion Vibber

UserFlagPlugin fix for ticket #2118 and ticket #2847: flagged state wasn't...

UserFlagPlugin fix for ticket #2118 and ticket #2847: flagged state wasn't reflected in profile lists such as group members page and profile search .
Pulled common code for the profile page and profile list cases to give them the same logic on checking. Also fixes the problem that you'd get a flag button for yourself in profile lists, while we explicitly exclude that from the profile page -- it's now skipped in both places.
parent 8e04e888
......@@ -128,25 +128,9 @@ class UserFlagPlugin extends Plugin
*/
function onEndProfilePageActionsElements(&$action, $profile)
{
$user = common_current_user();
if (!empty($user) && ($user->id != $profile->id)) {
$action->elementStart('li', 'entity_flag');
if (User_flag_profile::exists($profile->id, $user->id)) {
// @todo FIXME: Add a title explaining what 'flagged' means?
// TRANS: Message added to a profile if it has been flagged for review.
$action->element('p', 'flagged', _('Flagged'));
} else {
$form = new FlagProfileForm($action, $profile,
$this->showFlagButton($action, $profile,
array('action' => 'showstream',
'nickname' => $profile->nickname));
$form->show();
}
$action->elementEnd('li');
}
return true;
}
......@@ -160,22 +144,40 @@ class UserFlagPlugin extends Plugin
*/
function onEndProfileListItemActionElements($item)
{
$user = common_current_user();
list($action, $args) = $item->action->returnToArgs();
$args['action'] = $action;
$this->showFlagButton($item->action, $item->profile, $args);
if (!empty($user)) {
return true;
}
list($action, $args) = $item->action->returnToArgs();
/**
* Actually output a flag button. If the target profile has already been
* flagged by the current user, a null-action faux button is shown.
*
* @param Action $action
* @param Profile $profile
* @param array $returnToArgs
*/
protected function showFlagButton($action, $profile, $returnToArgs)
{
$user = common_current_user();
$args['action'] = $action;
if (!empty($user) && ($user->id != $profile->id)) {
$form = new FlagProfileForm($item->action, $item->profile, $args);
$action->elementStart('li', 'entity_flag');
$item->action->elementStart('li', 'entity_flag');
if (User_flag_profile::exists($profile->id, $user->id)) {
// @todo FIXME: Add a title explaining what 'flagged' means?
// TRANS: Message added to a profile if it has been flagged for review.
$action->element('p', 'flagged', _m('Flagged'));
} else {
$form = new FlagProfileForm($action, $profile, $returnToArgs);
$form->show();
$item->action->elementEnd('li');
}
return true;
$action->elementEnd('li');
}
}
/**
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment