如何传递自定义HTML+;Jenkins输入步骤页面的js代码?

如何传递自定义HTML+;Jenkins输入步骤页面的js代码?,jenkins,input,groovy,jenkins-pipeline,Jenkins,Input,Groovy,Jenkins Pipeline,我正试图从管道库中实现Jenkins“Input step”中的灵活UI,目前我正在使用Extended choice parameters plugin(),它构建在Json编辑器库()之上,用于提供各种HTML输入元素(从Json模式创建)并生成Json输出 除了“扩展选择参数”提供的输入表单外,“输入步骤”是否可以接受一些html模板代码来填充在构建期间收集的数据,并使用一些自定义html元素和js绑定将其打印在“输入步骤”页面上 现在,我通过groovy共享库脚本生成动态下拉列表,但无法

我正试图从管道库中实现Jenkins“Input step”中的灵活UI,目前我正在使用Extended choice parameters plugin(),它构建在Json编辑器库()之上,用于提供各种HTML输入元素(从Json模式创建)并生成Json输出

除了“扩展选择参数”提供的输入表单外,“输入步骤”是否可以接受一些html模板代码来填充在构建期间收集的数据,并使用一些自定义html元素和js绑定将其打印在“输入步骤”页面上

现在,我通过groovy共享库脚本生成动态下拉列表,但无法将其打印在“Input step page”非输入元素上


一切都很简单,ExtendedChoiceParameterDefinition有参数“String javascript”,可以接受任何js字符串,它不仅可以为JSON编辑器返回JSON字符串,还可以修改输入页面本身

示例管道:

stage('UserInput'){
        steps {
            script {
                    //...groovy script is omitted, it need only return json in valid form
                    def jsString = '''
                    var bodyElement = document.createElement('div');
                    bodyElement.innerHTML = '<h1 id="title">Some Title</h1><span style="display:inline-block; width=100px;">Some arbitrary text</span>';
                    document.getElementsByTagName('body')[0].appendChild(bodyElement);'''
                    def jsonParams = new ExtendedChoiceParameterDefinition(
                        'Cookbooks', //String name,
                        'PT_JSON', //String type,
                        null, //String value,
                        null, //String projectName,
                        null, //String propertyFile,
                        jsonGroovyScript, //String groovyScript (that returns JSON for generating Json-Input forms),
                        null, //String groovyScriptFile,
                        "jsonText=$jsonText", //String bindings,
                        '', //String groovyClasspath,
                        null, //String propertyKey,
                        null, //String defaultValue,
                        null, //String defaultPropertyFile,
                        null, //String defaultGroovyScript,
                        null, //String defaultGroovyScriptFile,
                        null, //String defaultBindings,
                        null, //String defaultGroovyClasspath,
                        null, //String defaultPropertyKey,
                        null, //String descriptionPropertyValue,
                        null, //String descriptionPropertyFile,
                        null, //String descriptionGroovyScript,
                        null, //String descriptionGroovyScriptFile,
                        null, //String descriptionBindings,
                        null, //String descriptionGroovyClasspath,
                        null, //String descriptionPropertyKey,
                        null, //String javascriptFile,
                        jsString, //String javascript (js code that modify input page itself),
                        false, //boolean saveJSONParameterToFile,
                        false, //boolean quoteValue,
                        10, //int visibleItemCount,
                        '', //String description,
                        ',' //String multiSelectDelimiter
                    ))
                    parameterList << jsonParams
                    def form = input(
                        id: 'form', message: 'input parameters', parameters: parameterList
                    ) // generating input page step and store it in "form" var
                    env.FORM = form
                }
              }
            }
stage('UserInput'){
台阶{
剧本{
//…省略groovy脚本,它只需要以有效形式返回json
def jsString=''
var bodyElement=document.createElement('div');
bodyElement.innerHTML='Some TitleSome任意文本';
document.getElementsByTagName('body')[0]。appendChild(bodyElement);“”
def jsonParams=新的ExtendedChoiceParameterDefinition(
“Cookbooks”,//字符串名称,
'PT_JSON',//字符串类型,
null,//字符串值,
null,//字符串projectName,
null,//字符串propertyFile,
jsonGroovyScript,//字符串groovyScript(返回JSON以生成JSON输入表单),
null,//字符串GroovyScript文件,
“jsonText=$jsonText”,//字符串绑定,
'',//字符串groovyClasspath,
null,//字符串propertyKey,
null,//字符串defaultValue,
null,//字符串defaultPropertyFile,
null,//字符串defaultGroovyScript,
null,//字符串defaultGroovyScript文件,
null,//字符串defaultBindings,
null,//字符串defaultGroovyClasspath,
null,//字符串defaultPropertyKey,
null,//字符串descriptionPropertyValue,
null,//字符串descriptionPropertyFile,
null,//字符串descriptionRoovyScript,
null,//字符串descriptionRoovyScript文件,
null,//字符串描述绑定,
null,//字符串descriptionRoovyclasspath,
null,//字符串descriptionPropertyKey,
null,//字符串javascriptFile,
jsString,//字符串javascript(修改输入页面本身的js代码),
false,//布尔saveJSONParameterToFile,
false,//布尔quoteValue,
10,//int visibleItemCount,
'',//字符串描述,
“,”//字符串多选定界符
))

parameterList Hi@commander asdasd,您能演示如何创建指向网页的链接吗?如果需要,如何使用
jsonGroovyScript
jsonText
?如果我没弄错的话,简单如下:
def link=”https://google.com"
-将数据传递给var,并通过变量扩展将其插入插件将要执行的js字符串
bodyElement.innerHTML='${link}';