diff --git a/classes/Notice.php b/classes/Notice.php index 835d9af53e..a4f530c44f 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -342,6 +342,12 @@ class Notice extends Memcached_DataObject $notice->uri = $uri; $notice->url = $url; + // Get the groups here so we can figure out replies and such + + if (!isset($groups)) { + $groups = self::groupsFromText($notice->content, $profile); + } + $reply = null; // Handle repeat case @@ -394,6 +400,20 @@ class Notice extends Memcached_DataObject $notice->reply_to = $reply->id; $notice->conversation = $reply->conversation; + + // If the original is private to a group, and notice has no group specified, + // make it to the same group(s) + + if (empty($groups) && ($reply->scope | Notice::GROUP_SCOPE)) { + $groups = array(); + $replyGroups = $reply->getGroups(); + foreach ($replyGroups as $group) { + if ($profile->isMember($group)) { + $groups[] = $group->id; + } + } + } + // Scope set below } } @@ -444,10 +464,6 @@ class Notice extends Memcached_DataObject // Force the scope for private groups - if (!isset($groups)) { - $groups = self::groupsFromText($notice->content, $profile); - } - foreach ($groups as $groupId) { $group = User_group::staticGet('id', $groupId); if (!empty($group)) { diff --git a/plugins/Event/eventform.php b/plugins/Event/eventform.php index 31fecb1278..dfdb65a30d 100644 --- a/plugins/Event/eventform.php +++ b/plugins/Event/eventform.php @@ -147,6 +147,13 @@ class EventForm extends Form _m('Description of the event.')); $this->unli(); + $this->li(); + $toWidget = new ToSelector($this->out, + common_current_user(), + null); + $toWidget->show(); + $this->unli(); + $this->out->elementEnd('ul'); $this->out->elementEnd('fieldset'); } diff --git a/plugins/Event/newevent.php b/plugins/Event/newevent.php index 082f12bb4b..93baa37b6b 100644 --- a/plugins/Event/newevent.php +++ b/plugins/Event/newevent.php @@ -190,6 +190,12 @@ class NeweventAction extends Action throw new ClientException(_m('Event must have an end time.')); } + $options = array(); + + // Does the heavy-lifting for getting "To:" information + + ToSelector::fillOptions($this, $options); + $profile = $this->user->getProfile(); $saved = Happening::saveNew($profile, @@ -198,7 +204,8 @@ class NeweventAction extends Action $this->title, $this->location, $this->description, - $this->url); + $this->url, + $options); $event = Happening::fromNotice($saved);