RED de-colourise Next Userclass

Remove the red/green of the Next Userclass and also add a Hide/Show completed link

  1. // ==UserScript==
  2. // @name RED de-colourise Next Userclass
  3. // @version 0.1
  4. // @description Remove the red/green of the Next Userclass and also add a Hide/Show completed link
  5. // @author Chameleon
  6. // @include http*://*redacted.ch/user.php?id=*
  7. // @grant none
  8. // @namespace https://greasyfork.org/users/87476
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. 'use strict';
  13.  
  14. var progressDiv=document.getElementsByClassName('box_userinfo_progress');
  15. if(progressDiv.length==0)
  16. return;
  17.  
  18. progressDiv=progressDiv[0];
  19. var hideCompleted=window.localStorage.classProgressShowComplete != "false";
  20. var lis=progressDiv.getElementsByTagName('li');
  21. hideShow(lis, hideCompleted);
  22. for(var i=0; i<lis.length; i++)
  23. {
  24. var sp=lis[i].getElementsByTagName('span')[0];
  25. if(!sp)
  26. continue;
  27. var c=sp.getAttribute('class');
  28. sp.setAttribute('class', c+' nocolor');
  29. }
  30.  
  31. var a=document.createElement('a');
  32. progressDiv.firstElementChild.appendChild(document.createTextNode(' ('));
  33. progressDiv.firstElementChild.appendChild(a);
  34. progressDiv.firstElementChild.appendChild(document.createTextNode(')'));
  35. a.innerHTML = (hideCompleted ? 'Show':'Hide')+' completed';
  36. a.href='javascript:void(0);';
  37. a.addEventListener('click', toggleCompleted.bind(undefined, a, lis), false);
  38.  
  39. var style=document.createElement('style');
  40. document.head.appendChild(style);
  41. style.innerHTML='.nocolor { color:'+getComputedStyle(document.body).color+' !important;}';
  42. })();
  43.  
  44. function toggleCompleted(a, lis)
  45. {
  46. var hideCompleted=window.localStorage.classProgressShowComplete != "false";
  47. if(hideCompleted)
  48. {
  49. window.localStorage.classProgressShowComplete = "false";
  50. a.innerHTML='Hide completed';
  51. }
  52. else
  53. {
  54. window.localStorage.classProgressShowComplete = "true";
  55. a.innerHTML='Show completed';
  56. }
  57. hideShow(lis, !hideCompleted);
  58. }
  59.  
  60. function hideShow(lis, hideCompleted)
  61. {
  62. for(var i=0; i<lis.length; i++)
  63. {
  64. var li=lis[i];
  65. if(hideCompleted && li.innerHTML.indexOf('class="r99')!=-1)
  66. {
  67. li.style.display='none';
  68. }
  69. else
  70. {
  71. li.style.display='';
  72. }
  73. }
  74. }