I have a user list I'm displaying. My question is, how do I sort them alphabetically but in groups of online statuses.
Basically I want the users that are online to be displayed first, the users that are away second, and the offline users last. Each of those groups I'd like to have sorted alphabetically. My user list looks like this:
<ul>
<li data-uid="x" data-status="away">John</li>
<li data-uid="x" data-status="online">Tom</li>
<li data-uid="x" data-status="online">Mary</li>
<li data-uid="x" data-status="offline">Xiang</li>
<li data-uid="x" data-status="away">Chris</li>
<li data-uid="x" data-status="offline">Peter</li>
<li data-uid="x" data-status="online">Matt</li>
</ul>
And I'd like them to be sorted like this:
<ul>
<li data-uid="x" data-status="online">Mary</li>
<li data-uid="x" data-status="online">Matt</li>
<li data-uid="x" data-status="online">Tom</li>
<li data-uid="x" data-status="away">Chris</li>
<li data-uid="x" data-status="away">John</li>
<li data-uid="x" data-status="offline">Peter</li>
<li data-uid="x" data-status="offline">Xiang</li>
</ul>
I've tried using this answer as my starting point, but I just can't manage to get them sorted in groups..
Thanks
Edit:
Also I'm pulling live status updates with ajax. I'm not sure how this could influence the function, but maybe it's possible later on to just target a specific user and move him accordingly?..