// ==UserScript== // @name ADO Collapse All Button // @namespace net.englard.shmuelie // @version 1.0.1 // @description Adds a collapse all button to ADO PR Reviews // @author Shmuelie // @match https://*.visualstudio.com/U*/_git/*/pullrequest/* // @grant none // @website https://github.com/shmuelie/user-scripts/blob/main/src/AdoCollapseAll.user.js // @updateURL https://raw.githubusercontent.com/shmuelie/user-scripts/main/src/AdoCollapseAll.user.js // @supportURL https://github.com/shmuelie/user-scripts/issues // ==/UserScript== (function() { 'use strict'; function addCollapseAllButton() { setTimeout(function () { var toolbar = document.querySelector("div.repos-compare-toolbar").firstElementChild let collapseAllIcon = document.createElement("span"); collapseAllIcon.ariaHidden = true; collapseAllIcon.classList.add("left-icon", "medium", "flex-noshrink", "fabric-icon", "ms-Icon--DoubleChevronDown"); let collapseAllButton = document.createElement("button"); collapseAllButton.ariaLabel = "Collapse All"; collapseAllButton.ariaRoleDescription="button"; collapseAllButton.classList.add("bolt-header-command-item-button", "bolt-button", "bolt-icon-button", "enabled", "subtle", "icon-only", "bolt-focus-treatment"); collapseAllButton.dataset.focuszone = "focuszone-60"; collapseAllButton.dataset.isFocusable = "true"; collapseAllButton.id = "__bolt-collapseAll"; collapseAllButton.role = "menuitem"; collapseAllButton.tabInde= 0; collapseAllButton.type = "button"; collapseAllButton.appendChild(collapseAllIcon); collapseAllButton.addEventListener("click", function() { document.querySelectorAll("button[aria-label=Collapse]").forEach(function (e) { e.click(); }); }); let collapseAllButtonWrapper = document.createElement("div"); collapseAllButtonWrapper.classList.add("repos-compare-header-commandbar", "flex-row", "flex-center", "flex-grow", "scroll-hidden", "rhythm-horizontal-8"); collapseAllButtonWrapper.appendChild(collapseAllButton); collapseAllButtonWrapper.appendChild(document.createElement("div")); let collapseAllMenubar = document.createElement("div"); collapseAllMenubar.role = "menubar"; collapseAllMenubar.classList.add("bolt-header-commandbar", "bolt-button-group", "flex-row"); collapseAllMenubar.appendChild(collapseAllButtonWrapper); toolbar.appendChild(collapseAllMenubar); }, 0); } document.querySelector("a#__bolt-tab-files").addEventListener("click", addCollapseAllButton); if (document.location.search.indexOf("_a=files") != -1) { addCollapseAllButton(); } })();