🏠 Home 

Jenkins助手

过滤健康程度低、不经常更新的jenkins插件

  1. // ==UserScript==
  2. // @name Jenkins助手
  3. // @author airbash
  4. // @version 0.0.2
  5. // @namespace airbash/JenkinsAssistant
  6. // @homepageURL https://github.com/AirBashX/UserScript
  7. // @description 过滤健康程度低、不经常更新的jenkins插件
  8. // @match *://plugins.jenkins.io/ui/search*
  9. // @grant GM_addStyle
  10. // @grant GM_getValue
  11. // @grant GM_setValue
  12. // @icon https://www.jenkins.io/favicon.ico
  13. // @run-at document-end
  14. // @license GPL-3.0
  15. // ==/UserScript==
  16. ///<reference path="./tampermonkey-reference.d.ts" />
  17. (function () {
  18. "use strict";
  19. let inter = setInterval(() => {
  20. let CategoryList = document.querySelector(".CategoryList");
  21. if (CategoryList) {
  22. let li = document.createElement("li");
  23. li.className = "Other";
  24. //<label class="exclude"><input type="checkbox" name="Other" value="Other" /><span>健康度</span></label><ul><li><label class="exclude"><input type="checkbox" name="health" value="health" /><span>优秀</span></label></li></ul>
  25. li.innerHTML = '<ul><li><label class="exclude"><input type="checkbox" name="health" value="health" /><span>优秀</span></label></li></ul>';
  26. CategoryList.prepend(li);
  27. let health = document.querySelector("[name=health]");
  28. let display = GM_getValue("display", false);
  29. health.checked = display;
  30. saerchHandler(health)
  31. checkedHandler(health);
  32. health.addEventListener("change", function () {
  33. checkedHandler(health);
  34. });
  35. clearInterval(inter);
  36. }
  37. }, 10000);
  38. function saerchHandler(health) {
  39. let button = document.querySelectorAll(".btn-primary");
  40. button[1].onclick = function () {
  41. health.checked=false;
  42. GM_setValue("display", false);
  43. };
  44. let items = document.querySelectorAll(".headerContainer label:not(.exclude),[name=showAll]");
  45. for (let item of items) {
  46. item.onclick=function(){
  47. health.checked=false;
  48. GM_setValue("display", false);
  49. }
  50. }
  51. }
  52. function checkedHandler(health) {
  53. let items = document.querySelectorAll(".SearchR###lts--ItemBox");
  54. if (health.checked) {
  55. for (let item of items) {
  56. if (item.querySelector(".bg-warning,.bg-danger")) {
  57. GM_setValue("display", true);
  58. item.style.display = "none";
  59. }
  60. }
  61. } else {
  62. for (let item of items) {
  63. GM_setValue("display", false);
  64. item.style.display = "unset";
  65. }
  66. }
  67. }
  68. })();