From 2e8649c2923107281f6b132f6f705e0dc2518cd6 Mon Sep 17 00:00:00 2001 From: Bob Trahan Date: Wed, 22 Apr 2015 12:19:24 -0700 Subject: [PATCH] Conpherence - sort participant list in a case insensitive way Summary: Fixes T7857. Some sorting gymnastics - make a nice list for natcasesort and then array_select_key to sort - but nothing too crazy. Test Plan: made a room with user "btrahan" and other users "BTRAHA", "BTRAHANCAPS", and "xerxes". chat room correctly ordered "btrahan" (since logged in user always at top), "BTRAHA", "BTRAHANCAPS", "xerxes". Viewed room as "xerxes" and saw ordering "xerxes", "BTRAHA", "btrahan", "BTRAHANCAPS". Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin, epriestley Maniphest Tasks: T7857 Differential Revision: https://secure.phabricator.com/D12507 --- .../conpherence/view/ConpherencePeopleWidgetView.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/applications/conpherence/view/ConpherencePeopleWidgetView.php b/src/applications/conpherence/view/ConpherencePeopleWidgetView.php index f9a61b9619..a10a9756c7 100644 --- a/src/applications/conpherence/view/ConpherencePeopleWidgetView.php +++ b/src/applications/conpherence/view/ConpherencePeopleWidgetView.php @@ -9,12 +9,17 @@ final class ConpherencePeopleWidgetView extends ConpherenceWidgetView { $conpherence = $this->getConpherence(); $participants = $conpherence->getParticipants(); $handles = $conpherence->getHandles(); - $handles = msort($handles, 'getName'); $head_handles = array_select_keys($handles, array($user->getPHID())); + $handle_list = mpull($handles, 'getName'); + natcasesort($handle_list); + $handles = mpull($handles, null, 'getName'); + $handles = array_select_keys($handles, $handle_list); + $head_handles = mpull($head_handles, null, 'getName'); $handles = $head_handles + $handles; $body = array(); - foreach ($handles as $user_phid => $handle) { + foreach ($handles as $handle) { + $user_phid = $handle->getPHID(); $remove_html = ''; if ($user_phid == $user->getPHID()) { $icon = id(new PHUIIconView()) @@ -25,7 +30,7 @@ final class ConpherencePeopleWidgetView extends ConpherenceWidgetView { 'class' => 'remove', 'sigil' => 'remove-person', 'meta' => array( - 'remove_person' => $handle->getPHID(), + 'remove_person' => $user_phid, 'action' => 'remove_person', ), ),