您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Parse tags, create buttons for originate-from bug links and JIRA links
- // ==UserScript==
- // @name Generate Launchpad Bug Links from tags
- // @namespace http://anthonywong.net/
- // @version 1.4
- // @description Parse tags, create buttons for originate-from bug links and JIRA links
- // @match https://bugs.launchpad.net/*/+bug/*
- // @grant none
- // @license GPLv2
- // ==/UserScript==
- (function () {
- 'use strict';
- // Locate the <span id="tag-list"> element
- const tagsElement = document.querySelector('#tag-list');
- if (tagsElement) {
- // Extract the tags as text
- const tagsText = tagsElement.textContent;
- // Find all "originate-from-XXXX" patterns
- const originateMatches = tagsText.match(/originate-from-(\d+)/g);
- // Find all "jira-$JIRA_TICKET" patterns
- const jiraMatches = tagsText.match(/jira-([a-zA-Z0-9\-]+)/g);
- // Create a container for the buttons
- const buttonContainer = document.createElement("div");
- buttonContainer.style.marginTop = "10px";
- // Process originate-from tags
- if (originateMatches) {
- originateMatches.forEach((tag) => {
- const bugNumber = tag.replace("originate-from-", "");
- // Create a button
- const button = document.createElement("button");
- button.textContent = `Go to Bug ${bugNumber}`;
- button.style.marginRight = "5px";
- button.style.padding = "5px 10px";
- // Set up the button click event
- button.addEventListener("click", () => {
- const bugUrl = `https://bugs.launchpad.net/ubuntu/+bug/${bugNumber}`;
- window.open(bugUrl, "_blank");
- });
- // Add the button to the container
- buttonContainer.appendChild(button);
- });
- }
- // Process JIRA tags
- if (jiraMatches) {
- jiraMatches.forEach((tag) => {
- const jiraTicket = tag.replace("jira-", "").toUpperCase();
- // Create a button
- const button = document.createElement("button");
- button.textContent = `Go to JIRA ${jiraTicket}`;
- button.style.marginRight = "5px";
- button.style.padding = "5px 10px";
- // Set up the button click event
- button.addEventListener("click", () => {
- const jiraUrl = `https://warthogs.atlassian.net/browse/${jiraTicket}`;
- window.open(jiraUrl, "_blank");
- });
- // Add the button to the container
- buttonContainer.appendChild(button);
- });
- }
- // Append the container below the tags element
- if (buttonContainer.childNodes.length > 0) {
- tagsElement.parentNode.appendChild(buttonContainer);
- }
- }
- })();