*/
function showInputForm()
{
- $user = common_current_user();
-
- $profile = $user->getProfile();
-
$this->elementStart('form', array('method' => 'post',
'id' => 'form_ostatus_sub',
'class' => 'form_settings',
// TRANS: Field label.
_m('Join group'),
$this->profile_uri,
- // TRANS: Tooltip for field label "Join group".
+ // TRANS: Tooltip for field label "Join group". Do not translate the "example.net"
+ // TRANS: domain name in the URL, as it is an official standard domain name for examples.
_m("OStatus group's address, like http://example.net/group/nickname."));
$this->elementEnd('li');
$this->elementEnd('ul');
*/
function preview()
{
- $oprofile = $this->oprofile;
- $group = $oprofile->localGroup();
+ $group = $this->oprofile->localGroup();
- $cur = common_current_user();
- if ($cur->isMember($group)) {
+ if ($this->scoped->isMember($group)) {
$this->element('div', array('class' => 'error'),
- _m("You are already a member of this group."));
+ // TRANS: Error text displayed when trying to join a remote group the user is already a member of.
+ _m('You are already a member of this group.'));
$ok = false;
} else {
$ok = true;
*/
function success()
{
- $cur = common_current_user();
- $url = common_local_url('usergroups', array('nickname' => $cur->nickname));
+ $url = common_local_url('usergroups', array('nickname' => $this->scoped->getNickname()));
common_redirect($url, 303);
}
*/
function saveFeed()
{
- $user = common_current_user();
$group = $this->oprofile->localGroup();
- if ($user->isMember($group)) {
+ if ($this->scoped->isMember($group)) {
// TRANS: OStatus remote group subscription dialog error.
$this->showForm(_m('Already a member!'));
return;
}
- if (Event::handle('StartJoinGroup', array($group, $user))) {
- $ok = Group_member::join($this->oprofile->group_id, $user->id);
- if ($ok) {
- Event::handle('EndJoinGroup', array($group, $user));
- $this->success();
- } else {
- // TRANS: OStatus remote group subscription dialog error.
- $this->showForm(_m('Remote group join failed!'));
- }
- } else {
+ try {
+ $this->scoped->joinGroup($group);
+ } catch (Exception $e) {
+ common_log(LOG_ERR, "Exception on remote group join: " . $e->getMessage());
+ common_log(LOG_ERR, $e->getTraceAsString());
// TRANS: OStatus remote group subscription dialog error.
- $this->showForm(_m('Remote group join aborted!'));
+ $this->showForm(_m('Remote group join failed!'));
+ return;
}
+
+ $this->success();
}
/**
*/
function getInstructions()
{
- // TRANS: Instructions.
+ // TRANS: Form instructions.
return _m('You can subscribe to groups from other supported sites. Paste the group\'s profile URI below:');
}