Skip to content

Instantly share code, notes, and snippets.

@Ulyssys
Forked from edemaine/when2meet-subset.js
Last active September 1, 2024 02:19
Show Gist options
  • Save Ulyssys/160e12ed2f14c0dadf0ee769a474d19b to your computer and use it in GitHub Desktop.
Save Ulyssys/160e12ed2f14c0dadf0ee769a474d19b to your computer and use it in GitHub Desktop.
Enable toggling subset of users in when2meet results view, including styling
// ==UserScript==
// @name When2Meet User Filter with Styling
// @namespace Violentmonkey Scripts
// @match https://www.when2meet.com/*
// @grant none
// @version 1.0
// @author ulysses
// @description 8/26/2024, 8:59:59 PM
// @grant GM_addStyle
// ==/UserScript==
// paste this into your browser console when looking at when2meet results
if (!window.OrigAvailableAtSlot) window.OrigAvailableAtSlot = AvailableAtSlot;
if (!window.OrigAvailableIDs) window.OrigAvailableIDs = AvailableIDs;
let nameFilter;
if ((nameFilter = document.getElementById("NameFilter"))) nameFilter.remove();
nameFilter = document.createElement("ul");
nameFilter.id = "NameFilter";
document.getElementById("LeftPanel").appendChild(nameFilter);
const idOn = (id) => document.getElementById(id).checked;
for (let i = 0; i < PeopleNames.length; i++) {
const li = document.createElement("li");
li.innerHTML =
`<input type="checkbox" id="${PeopleIDs[i]}" checked>` +
`&nbsp;<label for="${PeopleIDs[i]}">${PeopleNames[i]}</label>`;
nameFilter.appendChild(li);
li.addEventListener("change", () => {
AvailableIDs = OrigAvailableIDs.filter(idOn);
AvailableAtSlot = OrigAvailableAtSlot.map((avail) => avail.filter(idOn));
ReColorGroup();
});
}
GM_addStyle (`
.HalfPanel ul li {
text-align: left !important;
}
`)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment