Skip to content

Instantly share code, notes, and snippets.

@tifletcher
Last active June 20, 2017 08:14
Show Gist options
  • Save tifletcher/e4c67359b5190bff715da308cc84f0af to your computer and use it in GitHub Desktop.
Save tifletcher/e4c67359b5190bff715da308cc84f0af to your computer and use it in GitHub Desktop.
Fix jira dashboards -- Remove extra sprints, re-sort, remove bogus height adjustments
(function () {
const $ = jQuery
const table_selector = ".issue-table"
const row_selector = ".issuerow"
const sprint_column_selector = ".customfield_10007"
function trim_sprint_column(i, column) {
const sprints = $(column).text().split(",")
const sprint = sprints[sprints.length - 1]
$(column).text(sprint.trim())
}
function trim_sprints() {
$(sprint_column_selector).each(trim_sprint_column)
}
function by_sprint_column(rowA, rowB) {
const a = $(rowA).find(sprint_column_selector).text()
const b = $(rowB).find(sprint_column_selector).text()
return a === b ? 0 : a < b ? -1 : 1
}
function sort_rows_by_sprint_column(i, table) {
const table_body = $(table).find("tbody")
const sorted_rows = table_body.find("tr").get().sort(by_sprint_column)
$.each(sorted_rows, (i, el) => table_body.append(el))
}
function sort_tables() {
$(table_selector).each(sort_rows_by_sprint_column)
}
function unfuck_heights() {
$(table_selector).parents(".results-wrap").parent("div").css("height", "")
$(".gadget").css("height", "")
}
function color_flipper() {
let current;
function get() { return current[0] }
function reset() {
current = [ "aliceblue", "beige" ]
return get()
}
function next() {
current = [current[1], current[0]]
return get()
}
reset()
return { next: next, get: get, reset: reset }
}
function stripe_rows() {
function get_sprint(tr) {
return $(tr).find(sprint_column_selector).text()
}
function get_previous_row(tr) {
return $(tr).prev("tr")
}
const colors = color_flipper()
function set_color(i, el) {
const previous_row_sprint = get_sprint(get_previous_row(el))
const color = previous_row_sprint == "" ? colors.reset() : get_sprint(el) == previous_row_sprint ? colors.get() : colors.next()
$(el).css("background", color)
}
$(row_selector).each(set_color)
}
trim_sprints()
sort_tables()
unfuck_heights()
stripe_rows()
})()
// jscompress.com
// javascript:(function(){function c(p,q){const r=l(q).text().split(","),s=r[r.length-1];l(q).text(s.trim())}function e(p,q){const r=l(p).find(o).text(),s=l(q).find(o).text();return r===s?0:r<s?-1:1}function f(p,q){const r=l(q).find("tbody"),s=r.find("tr").get().sort(e);l.each(s,(t,u)=>r.append(u))}function j(){function p(){return s[0]}function q(){return s=["aliceblue","beige"],p()}let s;return q(),{next:function(){return s=[s[1],s[0]],p()},get:p,reset:q}}const l=jQuery,m=".issue-table",o=".customfield_10007";(function(){l(o).each(c)})(),function(){l(m).each(f)}(),function(){l(m).parents(".results-wrap").parent("div").css("height",""),l(".gadget").css("height","")}(),function(){function p(t){return l(t).find(o).text()}function q(t){return l(t).prev("tr")}const s=j();l(".issuerow").each(function(t,u){const v=p(q(u)),w=""==v?s.reset():p(u)==v?s.get():s.next();l(u).css("background",w)})}()})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment