X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fgroupblock.php;h=d426563d8cf38999bc30a0729409283c09664a35;hb=b7d07466943a73e1c009467c8daa6e499810080f;hp=979a56a81d4ab92793f7956f148320f477ef2355;hpb=bbb830e14c718c687f0636710a1827c90b11f4cc;p=quix0rs-gnu-social.git diff --git a/actions/groupblock.php b/actions/groupblock.php index 979a56a81d..d426563d8c 100644 --- a/actions/groupblock.php +++ b/actions/groupblock.php @@ -40,8 +40,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - -class GroupblockAction extends Action +class GroupblockAction extends RedirectingAction { var $profile = null; var $group = null; @@ -53,11 +52,11 @@ class GroupblockAction extends Action * * @return boolean success flag */ - function prepare($args) { parent::prepare($args); if (!common_logged_in()) { + // TRANS: Client error displayed trying to block a user from a group while not logged in. $this->clientError(_('Not logged in.')); return false; } @@ -68,35 +67,42 @@ class GroupblockAction extends Action } $id = $this->trimmed('blockto'); if (empty($id)) { + // TRANS: Client error displayed trying to block a user from a group while not specifying a to be blocked user profile. $this->clientError(_('No profile specified.')); return false; } $this->profile = Profile::staticGet('id', $id); if (empty($this->profile)) { + // TRANS: Client error displayed trying to block a user from a group while specifying a non-existing profile. $this->clientError(_('No profile with that ID.')); return false; } $group_id = $this->trimmed('blockgroup'); if (empty($group_id)) { + // TRANS: Client error displayed trying to block a user from a group while not specifying a group to block a profile from. $this->clientError(_('No group specified.')); return false; } $this->group = User_group::staticGet('id', $group_id); if (empty($this->group)) { + // TRANS: Client error displayed trying to block a user from a group while specifying a non-existing group. $this->clientError(_('No such group.')); return false; } $user = common_current_user(); if (!$user->isAdmin($this->group)) { + // TRANS: Client error displayed trying to block a user from a group while not being an admin user. $this->clientError(_('Only an admin can block group members.'), 401); return false; } if (Group_block::isBlocked($this->group, $this->profile)) { + // TRANS: Client error displayed trying to block a user from a group while user is already blocked from the given group. $this->clientError(_('User is already blocked from group.')); return false; } // XXX: could have proactive blocks, but we don't have UI for it. if (!$this->profile->isMember($this->group)) { + // TRANS: Client error displayed trying to block a user from a group while user is not a member of given group. $this->clientError(_('User is not a member of group.')); return false; } @@ -117,9 +123,7 @@ class GroupblockAction extends Action parent::handle($args); if ($_SERVER['REQUEST_METHOD'] == 'POST') { if ($this->arg('no')) { - common_redirect(common_local_url('groupmembers', - array('nickname' => $this->group->nickname)), - 303); + $this->returnToPrevious(); } elseif ($this->arg('yes')) { $this->blockProfile(); } elseif ($this->arg('blockto')) { @@ -133,6 +137,7 @@ class GroupblockAction extends Action } function title() { + // TRANS: Title for block user from group page. return _('Block user from group'); } @@ -147,21 +152,25 @@ class GroupblockAction extends Action * * @return void */ - function areYouSureForm() { $id = $this->profile->id; + $this->elementStart('form', array('id' => 'block-' . $id, + 'method' => 'post', + 'class' => 'form_settings form_entity_block', + 'action' => common_local_url('groupblock'))); + $this->elementStart('fieldset'); + $this->hidden('token', common_session_token()); + // TRANS: Fieldset legend for block user from group form. + $this->element('legend', _('Block user')); $this->element('p', null, - sprintf(_('Are you sure you want to block user "%s" from the group "%s"? '. + // TRANS: Explanatory text for block user from group form before setting the block. + // TRANS: %1$s is that to be blocked user, %2$s is the group the user will be blocked from. + sprintf(_('Are you sure you want to block user "%1$s" from the group "%2$s"? '. 'They will be removed from the group, unable to post, and '. 'unable to subscribe to the group in the future.'), $this->profile->getBestName(), $this->group->getBestName())); - $this->elementStart('form', array('id' => 'block-' . $id, - 'method' => 'post', - 'class' => 'block', - 'action' => common_local_url('groupblock'))); - $this->hidden('token', common_session_token()); $this->hidden('blockto-' . $this->profile->id, $this->profile->id, 'blockto'); @@ -173,8 +182,21 @@ class GroupblockAction extends Action $this->hidden($k, $v); } } - $this->submit('no', _('No')); - $this->submit('yes', _('Yes')); + $this->submit('form_action-no', + // TRANS: Button label on the form to block a user from a group. + _m('BUTTON','No'), + 'submit form_action-primary', + 'no', + // TRANS: Submit button title for 'No' when blocking a user from a group. + _('Do not block this user from this group.')); + $this->submit('form_action-yes', + // TRANS: Button label on the form to block a user from a group. + _m('BUTTON','Yes'), + 'submit form_action-secondary', + 'yes', + // TRANS: Submit button title for 'Yes' when blocking a user from a group. + _('Block this user from this group.')); + $this->elementEnd('fieldset'); $this->elementEnd('form'); } @@ -183,33 +205,35 @@ class GroupblockAction extends Action * * @return void */ - function blockProfile() { $block = Group_block::blockProfile($this->group, $this->profile, common_current_user()); if (empty($block)) { + // TRANS: Server error displayed when trying to block a user from a group fails because of an application error. $this->serverError(_("Database error blocking user from group.")); return false; } - // Now, gotta figure where we go back to - foreach ($this->args as $k => $v) { - if ($k == 'returnto-action') { - $action = $v; - } elseif (substr($k, 0, 9) == 'returnto-') { - $args[substr($k, 9)] = $v; - } - } + $this->returnToPrevious(); + } - if ($action) { - common_redirect(common_local_url($action, $args), 303); - } else { - common_redirect(common_local_url('groupmembers', - array('nickname' => $this->group->nickname)), - 303); - } + /** + * If we reached this form without returnto arguments, default to + * the top of the group's member list. + * + * @return string URL + */ + function defaultReturnTo() + { + return common_local_url('groupmembers', + array('nickname' => $this->group->nickname)); } -} + function showScripts() + { + parent::showScripts(); + $this->autofocus('form_action-yes'); + } +}