Skip to content

Instantly share code, notes, and snippets.

@AndrwM
Last active October 26, 2022 16:58
Show Gist options
  • Save AndrwM/673de95da971ebb5618024eb003e3ce9 to your computer and use it in GitHub Desktop.
Save AndrwM/673de95da971ebb5618024eb003e3ce9 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name [JIRA] Child Issue Filtering Userscript
// @version 0.1
// @description Yolo overflow
// @author Andrew McIntee
// @match https://kajabi.atlassian.net/browse/*
// ==/UserScript==
(function() {
'use strict';
console.log('[JIRA USER SCRIPT]');
function attempt(func1 = () => {}, func2 = () => {}, func3 = () => {}) {
setTimeout(
() => {
try {
func1();
attempt(func2, func3);
} catch (error) {
console.error('[JIRA USER SCRIPT] Error:', error);
}
},
100
);
}
function toggleSortBtn() {
document.querySelector('[data-testid="issue.views.common.child-issues-panel.heading.sort-by-menu.trigger-button"]').click()
}
const container = document.createElement("div");
container.setAttribute('style','z-index: 99999999999; position: fixed; bottom: 10px; right: 10px;');
const doneBtn = document.createElement("button");
doneBtn.innerHTML = "Toggle Done";
doneBtn.addEventListener('click', () => {
attempt(
() => document.querySelector('[data-testid="issue.views.common.child-issues-panel.heading.meatballs.dropdown.trigger-button"]').querySelector('button').click(),
() => document.querySelector('#hideDone').click(),
() => document.querySelector('[data-testid="issue.views.common.child-issues-panel.heading.meatballs.dropdown.trigger-button"]').querySelector('button').click(), // Close the dropdown
);
});
container.appendChild(doneBtn);
const sortPriorityBtn = document.createElement("button");
sortPriorityBtn.innerHTML = "Sort Priority";
sortPriorityBtn.addEventListener('click', () => {
attempt(
toggleSortBtn,
() => document.querySelector('[data-testid="issue.views.common.child-issues-panel.heading.sort-by-menu.option-priority"]').click(),
);
});
container.appendChild(sortPriorityBtn);
const sortAssigneeBtn = document.createElement("button");
sortAssigneeBtn.innerHTML = "Sort Assignee";
sortAssigneeBtn.addEventListener('click', () => {
attempt(
toggleSortBtn,
() => document.querySelector('[data-testid="issue.views.common.child-issues-panel.heading.sort-by-menu.option-assignee"]').click(),
);
});
container.appendChild(sortAssigneeBtn);
const sortStatusBtn = document.createElement("button");
sortStatusBtn.innerHTML = "Sort Status";
sortStatusBtn.addEventListener('click', () => {
attempt(
toggleSortBtn,
() => document.querySelector('[data-testid="issue.views.common.child-issues-panel.heading.sort-by-menu.option-status"]').click(),
);
});
container.appendChild(sortStatusBtn);
document.body.appendChild(container);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment