Sort by progress the issues in an epic

9/12/2023, 4:48:29 PM

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        Sort by progress the issues in an epic
// @namespace   Violentmonkey Scripts
// @match       https://jira.atl.workiva.net/browse/*
// @grant       none
// @version     1.1
// @author      -
// @description 9/12/2023, 4:48:29 PM
// @license     MIT
// ==/UserScript==
let issues = document.querySelector("#ghx-issues-in-epic-table").children[0]

let newIssues = []
let readyForDev = []
let inProgress = []
let reworking = []
let codeReview = []
let otherIssues = []
let closed = []
let qaReview = []
let resolved = []

for (let i = issues.children.length; i --> 0; ) {
  let issue = issues.children[i]
  let status = issue.querySelector('.status > span').textContent
  issue.remove()

  console.log(status)
  switch(status) {
    case 'New':
      newIssues.push(issue)
      break
    case 'Ready for Dev':
      readyForDev.push(issue)
      break
    case 'In Progress':
      inProgress.push(issue)
      break
    case 'Reworking':
      reworking.push(issue)
      break
    case 'Code Review':
      codeReview.push(issue)
      break
    case 'QA Review':
      qaReview.push(issue)
      break
    case 'Resolved':
      resolved.push(issue)
      break
    case 'Closed':
      closed.push(issue)
      break
    default:
      otherIssues.push(issue)
  }
}

issues.append(...newIssues)
issues.append(...readyForDev)
issues.append(...inProgress)
issues.append(...reworking)
issues.append(...codeReview)
issues.append(...qaReview)
issues.append(...otherIssues)
issues.append(...resolved)
issues.append(...closed)