Skip to content

Instantly share code, notes, and snippets.

@dgoguerra
Last active October 10, 2016 10:14
Show Gist options
  • Save dgoguerra/b762ef32a240aef1b41e9724b2d38b64 to your computer and use it in GitHub Desktop.
Save dgoguerra/b762ef32a240aef1b41e9724b2d38b64 to your computer and use it in GitHub Desktop.
Collapse / expand all user stories at once in Taiga's sprint view

To use, go to Taiga's sprint view and paste this code into it. The "User Story" header will be clickable, and will expand or collapse all user stories.

(function() {
function hasClass(elem, className) {
return (' '+elem.className+' ').indexOf(' '+className+' ') > -1;
}
function getButtons(folded) {
var rows = document.getElementsByClassName('task-row'),
btnClass = folded ? 'vunfold' : 'vfold',
found = [];
for (var i = 0; i < rows.length; i++) {
var btn = rows[i].getElementsByClassName(btnClass)[0];
if (!hasClass(btn, 'hidden')) {
found.push(btn);
}
}
return found;
}
function fireEvent(elem, evtType) {
if (elem.fireEvent) {
elem.fireEvent('on' + evtType);
} else {
var evObj = document.createEvent('Events');
evObj.initEvent(evtType, true, false);
elem.dispatchEvent(evObj);
}
}
var tblHeader = document.querySelector('.taskboard-table-inner h2');
tblHeader.style.cursor = 'pointer';
tblHeader.addEventListener('click', function() {
var buttons = getButtons(false);
if (!buttons.length) {
buttons = getButtons(true);
}
buttons.forEach(function(btn) {
fireEvent(btn, 'click');
});
});
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment