Advertisement
webnesto

Ello - Sort Avatars Alphabetically

Oct 30th, 2014
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name           Ello - Sort Avatars Alphabetically
  3. // @description    Ello - Sort Avatars Alphabetically
  4. // @include        https://ello.co/*
  5. // @version        1.0
  6. // ==/UserScript==
  7.  
  8. // a function that loads jQuery and calls a callback function when jQuery has finished loading
  9. function addJQuery(callback) {
  10.   var script = document.createElement("script");
  11.   script.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js");
  12.   script.addEventListener('load', function() {
  13.     var script = document.createElement("script");
  14.     script.textContent = "window.jQ=jQuery.noConflict(true);(" + callback.toString() + ")();";
  15.     document.body.appendChild(script);
  16.   }, false);
  17.   document.body.appendChild(script);
  18. }
  19.  
  20. GM_addStyle( '.layout-mode .toolbar--open .toolbar, .layout-mode .drawer { width: 23.625rem; }' );
  21. GM_addStyle( '.script-avatar-alphabet { position: fixed; left: 4%; width: 91%; top: 66px; letter-spacing: -1px; }' );
  22. GM_addStyle( '.script-avatar-letter { background-color: #e5e5e5; margin-top: 2em; }' );
  23.  
  24.  
  25. addJQuery( function(){
  26.     var alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  27.     var links = "";
  28.     var $peops = $( "#peops" );
  29.     var i, l;
  30.     var letter;
  31.  
  32.     for( i = 0, l = alpha.length; i < l; i++ ){
  33.         letter = alpha.charAt( i );
  34.         links+='<a href="#script-' + letter + '">' + letter + '</a> ';
  35.     }
  36.  
  37.     var $sorted = $peops.children().sort( function( lhs,rhs ){
  38.         return $( lhs ).attr('data-username').localeCompare( $( rhs ).attr( 'data-username' ) );
  39.     } );
  40.    
  41.     $peops.html("");
  42.  
  43.     $peops.append( '<li class="script-avatar-alphabet" >' + links + '</li>' );
  44.  
  45.     for( i = 0, l = alpha.length; i < l; i++ ){
  46.         letter = alpha.charAt( i );
  47.         $peops.append( '<li class="script-avatar-letter" data-letter="' + letter + '"><a name="script-' + letter + '"></a>' + letter + '</li>');
  48.     }
  49.  
  50.     $sorted.each( function( i, el ){
  51.         var firstletter = $( el ).attr( 'data-username' ).charAt( 0 ).toUpperCase();
  52.         $peops.find( 'li[data-letter="' + alpha[ alpha.indexOf( firstletter ) + 1 ] + '"]' ).before( el );
  53.     } );
  54.  
  55. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement