From 699a90f11ce5f066a5210610db22ef0a7756a546 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 29 Sep 2011 15:12:30 -0400 Subject: [PATCH] Show Event attendees in mini-list --- classes/Profile.php | 4 ++++ plugins/Event/event.css | 21 ++++++++++++++++- plugins/Event/eventlistitem.php | 41 ++++++++++++++++++++++++++------- 3 files changed, 57 insertions(+), 9 deletions(-) diff --git a/classes/Profile.php b/classes/Profile.php index f983225fd5..7ccfa72166 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -1454,4 +1454,8 @@ class Profile extends Managed_DataObject { return $this; } + + static function pivotGet($key, $values, $otherCols=array()) { + return Memcached_DataObject::pivotGet('Profile', $key, $values, $otherCols); + } } diff --git a/plugins/Event/event.css b/plugins/Event/event.css index 7fbb67d732..3cad53c590 100644 --- a/plugins/Event/event.css +++ b/plugins/Event/event.css @@ -13,4 +13,23 @@ overflow-x: hidden; /* add padding to account for vertical scrollbar */ padding-right: 20px; -} \ No newline at end of file +} + +li.rsvp-list ul.entities { + float:left; + width:100%; + display:inline; +} +li.rsvp-list .entities li { + list-style-type: none; + float: left; + margin-right: 3px; + margin-bottom: 8px; + display: inline; +} +li.rsvp-list .entities li .photo { + margin: 0; +} +li.rsvp-list .entities li .fn { + display: none; +} diff --git a/plugins/Event/eventlistitem.php b/plugins/Event/eventlistitem.php index fb27704461..2f0710f01f 100644 --- a/plugins/Event/eventlistitem.php +++ b/plugins/Event/eventlistitem.php @@ -152,14 +152,39 @@ class EventListItem extends NoticeListItemAdapter $out->elementStart('div', 'event-rsvps'); // TRANS: Field label for event description. - $out->element('strong', null, _m('Attending:')); - $out->element('span', 'event-rsvps', - // TRANS: RSVP counts. - // TRANS: %1$d, %2$d and %3$d are numbers of RSVPs. - sprintf(_m('Yes: %1$d No: %2$d Maybe: %3$d'), - count($rsvps[RSVP::POSITIVE]), - count($rsvps[RSVP::NEGATIVE]), - count($rsvps[RSVP::POSSIBLE]))); + + $out->text(_('Attending:')); + $out->elementStart('ul', 'attending-list'); + + foreach ($rsvps as $verb => $responses) { + $out->elementStart('li', 'rsvp-list'); + switch ($verb) + { + case RSVP::POSITIVE: + $out->text(_('Yes:')); + break; + case RSVP::NEGATIVE: + $out->text(_('No:')); + break; + case RSVP::POSSIBLE: + $out->text(_('Maybe:')); + break; + } + $ids = array(); + foreach ($responses as $response) { + $ids[] = $response->profile_id; + } + common_debug("IDS = " . implode(',', $ids)); + $profiles = Profile::pivotGet('id', $ids); + common_debug("Profiles = " . print_r($profiles, true)); + $profile = new ArrayWrapper(array_values($profiles)); + $minilist = new ProfileMiniList($profile, $out); + $minilist->show(); + + $out->elementEnd('li'); + } + + $out->elementEnd('ul'); $out->elementEnd('div'); $user = common_current_user(); -- 2.39.5