Jenkins Artive Choices Plugin. 動態(tài)隱藏/顯示參數(shù)

本文根據(jù)Jenkins-2.272版本進行測試, 不保證一直有效!!!

由于項目使用參數(shù)化構(gòu)建, 而且參數(shù)比較多, 一屏幕都放不下了..... 所以尋求方法來只顯示重要參數(shù).

需求

模擬一個需求(如圖1,圖2):

  • 當(dāng)value1選中時, value2可輸入, value3不可輸入
  • 當(dāng)value1未選中時, value2可不輸入, value3可輸入


    圖1

    圖2

現(xiàn)在想要優(yōu)化一下這個需求:

  • 當(dāng)value1選中時, value2可輸入, value3不可輸入并且value3隱藏
  • 當(dāng)value1未選中時, value3可輸入, value2可不輸入并且value3隱藏

解決方案

首先來看一下jenkins參數(shù)頁的HTML是什么樣子的

圖3

Artive Choices 插件其實是把每一個參數(shù)整體包裝成<div class="tr form-group">...</div>

那我們就在配置項里嘗試獲取一下這個div, 在VALUE2Groovy Script中寫入一下代碼, 給input定義一個id

return """
  <input name="value" id="VALUE2"  value="VALUE2">
"""

先嘗試添加<script>看能否執(zhí)行.

return """
  <input name="value" id="VALUE2"  value="VALUE2">
  <script>
  console.log("執(zhí)行~~")
  </script>
"""

看到控制臺并沒有打印, 知道內(nèi)部應(yīng)該是吧腳本返回的字符串 賦值給了innerHTML,

嘗試其他方法繞過innerHTML限制

return """
  <input name="value" id="VALUE2"  value="VALUE2">
  <img src="error/image/url" style="display: none;" onerror="console.log('可以執(zhí)行')">
"""

改成上面代碼之后重新加載參數(shù)頁, 控制臺成功看到了打印結(jié)果, 證明此方法可行.

最終修改代碼:

VALUE2改為:

if (VALUE1) {
    return """
  <input name="value" id="VALUE2"  value="VALUE2">
  <img src="error/image/url" style="display: none;" onerror='document.getElementById("VALUE2").closest(".form-group").style.display=""'>
"""  
} else {
  return """
  <input name="value" id="VALUE2"  value="VALUE2">
  <img src="error/image/url" style="display: none;" onerror='document.getElementById("VALUE2").closest(".form-group").style.display="none"'>
""" 
}

VALUE3改為:

if (VALUE1) {
    return """
  <input name="value" id="VALUE3"  value="VALUE3">
  <img src="error/image/url" style="display: none;" onerror='document.getElementById("VALUE3").closest(".form-group").style.display="none"'>
"""  
} else {
  return """
  <input name="value" id="VALUE3"  value="VALUE3">
  <img src="error/image/url" style="display: none;" onerror='document.getElementById("VALUE3").closest(".form-group").style.display=""'>
""" 
}

最終運行結(jié)果如下圖:

result.gif

更多復(fù)雜功能按照這個方式可以繼續(xù)拓展

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容