When2Meet User Filter with Styling

Source: https://gist.github.com/Ulyssys/160e12ed2f14c0dadf0ee769a474d19b

  1. // ==UserScript==
  2. // @name When2Meet User Filter with Styling
  3. // @namespace Violentmonkey Scripts
  4. // @match https://www.when2meet.com/*
  5. // @grant none
  6. // @version 1.0
  7. // @author ulyssys
  8. // @description Source: https://gist.github.com/Ulyssys/160e12ed2f14c0dadf0ee769a474d19b
  9. // @grant GM_addStyle
  10. // ==/UserScript==
  11.  
  12. // paste this into your browser console when looking at when2meet results
  13. if (!window.OrigAvailableAtSlot) window.OrigAvailableAtSlot = AvailableAtSlot;
  14. if (!window.OrigAvailableIDs) window.OrigAvailableIDs = AvailableIDs;
  15. let nameFilter;
  16. if ((nameFilter = document.getElementById("NameFilter"))) nameFilter.remove();
  17. nameFilter = document.createElement("ul");
  18. nameFilter.id = "NameFilter";
  19. document.getElementById("LeftPanel").appendChild(nameFilter);
  20. const idOn = (id) => document.getElementById(id).checked;
  21. for (let i = 0; i < PeopleNames.length; i++) {
  22. const li = document.createElement("li");
  23. li.innerHTML =
  24. `<input type="checkbox" id="${PeopleIDs[i]}" checked>` +
  25. `&nbsp;<label for="${PeopleIDs[i]}">${PeopleNames[i]}</label>`;
  26. nameFilter.appendChild(li);
  27. li.addEventListener("change", () => {
  28. AvailableIDs = OrigAvailableIDs.filter(idOn);
  29. AvailableAtSlot = OrigAvailableAtSlot.map((avail) => avail.filter(idOn));
  30. ReColorGroup();
  31. });
  32. }
  33.  
  34. GM_addStyle (`
  35. .HalfPanel ul li {
  36. text-align: left !important;
  37. }
  38. `)