Search code examples
javamavenjenkinsjenkins-pluginsjelly

values not persisting in dropdown of optional block - jelly/jenkins


I have the following in config.jelly:

<f:block>
    <table style="width:100%" id="rpmParameters-generic">
        <j:set var="rpmParameters" value="${instance.rpmParameters}" />
        <f:optionalBlock name="rpmParameters" checked="${rpmParameters != null}"
            title="Mandatory parameter for rpm/msi/zip artifacts only" help="/plugin/artifactory/help/common/help-rpmParameters.html">
            <input type="hidden" name="stapler-class" value="org.jfrog.hudson.util.RpmParameters" />
            <f:entry title="Operating System">
                <select class="setting-input" name="operatingSystem"
                    value="${rpmParameters.operatingSystem}">
                    <option value="rhel5">rhel5</option>
                    <option value="linux">linux</option>
                    <option value="solaris">solaris</option>
                    <option value="windows">windows</option>
                </select>
            </f:entry>
            <f:entry title="Architecture">
                <select class="setting-input" name="architecture"
                    value="${rpmParameters.architecture}">
                    <option value="i386">i386</option>
                    <option value="x86_64">x86_64</option>
                    <option value="no arch">no arch</option>
                </select>
            </f:entry>
        </f:optionalBlock>
    </table>
</f:block>

The problem is that the checkbox for optional block persist when I hit save but for some reason the dropdown values of operating system and architecture don't persist in the UI after I save and reopen configuration.

Any idea why ?


Solution

  • Well turns out I was doing most things right. The issue was having a

    <f:options
    

    for every option in dropdown. Something like this worked.

    <select class="setting-input" name="artifactKey" id="genericArtifactKeys-${s.url}">
                                                    <f:option value="nuget" selected="${instance.artifactoryKey =='nuget'}">nuget</f:option>
                                                    <f:option value="zip" selected="${instance.artifactoryKey =='zip'}">zip</f:option>
                                                    <f:option value="msi" selected="${instance.artifactoryKey =='msi'}">msi</f:option>
                                                    <f:option value="rpm" selected="${instance.artifactoryKey =='rpm'}">rpm</f:option>
                                </select>