The doCheckArtifact() method returns a FormValidation which gets rendered
as a HTML response that gets injected into the page in the validation
area...

https://www.youtube.com/watch?v=tNXpnufLVkc

On 4 November 2015 at 20:56, Kirill <yam...@gmail.com> wrote:

> Hi Stephen,
>
> Thanks for suggestion "*enable and disable* some of the second descriptors
> via Javascript from a doCheckArtifact method's response?"! But can you
> please explain how to do some actions on the page on this method response?
> doCheckArtifact() will be run on server, how is it possible to customize
> its effect on the config page (e.g. - to disable an entry in another
> dropdown)?
>
> Also, can you tell more about the wrappers you mentioned, perhaps share a
> link?
>
> P.S. Another thing regarding dropdown selection change.
> http://javadoc.jenkins-ci.org/hudson/util/ListBoxModel.html says that one
> can use " "updateListBox" function, defined in hudson-behavior.js". This
> function doesn't seem to be there (
> https://github.com/jenkinsci/jenkins/blob/master/war/src/main/webapp/scripts/hudson-behavior.js?source=cc).
> Looks like the Javadoc is wrong?
>
> Regards,
> Kirill.
>
> среда, 28 октября 2015 г., 2:14:34 UTC+2 пользователь Stephen Connolly
> написал:
>>
>> It cannot, as you have rendered the whole page before the user can
>> select anything and the tag was not written to support list filtering.
>>
>> The way to handle this would be to use a "wrapper" for the first drop
>> down and then render the second drop down within the wrapper always...
>> that means you will have NxM of the second drop down instances, but
>> only ever one active at any point in time...
>>
>> But that would be an ugly hack...
>>
>> Are you sure you cannot think of another way to achieve this?
>>
>> (e.g. could you *enable and disable* some of the second descriptors
>> via Javascript from a doCheckArtifact method's response? It would seem
>> reasonable to show the full list and grey out the ones that are not
>> valid for the artifact selection)
>>
>> On 27 October 2015 at 15:34, Kirill <yam...@gmail.com> wrote:
>> > Hi noble Jenkins developers!
>> >
>> > It's quite easy to update one simple select (<f:select />) when another
>> is
>> > changed (see DynamicDropDownListBox from Jenkins UI Samples plugin).
>> But
>> > what about case when there are two <f:dropdownList/> elements?
>> >
>> > I have used DropdownList from UI Samples as a sample to create these:
>> >
>> >     <f:block>
>> >         <table>
>> >             <j:set var="currentArtifactDefinition"
>> > value="${instance.artifacts}"/>
>> >             <f:dropdownList name="artifacts" title="Artifact">
>> >                 <j:forEach var="desc"
>> > items="${descriptor.artifactDescriptors}" varStatus="loop">
>> >                     <j:set var="artifactDescription"
>> > value="${desc.class.name==currentArtifactDefinition.artifactsClassName?currentArtifactDefinition:null}"/>
>>
>> >                     <f:dropdownListBlock title="${desc.displayName}"
>> > value="${loop.index}" selected="${artifactDescription!=null}"
>> > staplerClass="${desc.entityClass.name}">
>> >                         <st:include page="${desc.configPage}"
>> > from="${desc}"/>
>> >                     </f:dropdownListBlock>
>> >                 </j:forEach>
>> >             </f:dropdownList>
>> >         </table>
>> >     </f:block>
>> >
>> >     <f:block>
>> >         <table>
>> >             <j:set var="currentScheduleDefinition"
>> > value="${instance.schedule}"/>
>> >             <f:dropdownList name="schedule" title="Schedule">
>> >                 <j:forEach var="desc"
>> > items="${descriptor.scheduleDescriptors}" varStatus="loop">
>> >                     <j:set var="scheduleDescription"
>> > value="${desc.class.name==currentScheduleDefinition.scheduleClassName?currentScheduleDefinition:null}"/>
>>
>> >                     <f:dropdownListBlock title="${desc.displayName}"
>> > value="${loop.index}" selected="${scheduleDescription!=null}"
>> > staplerClass="${desc.entityClass.name}">
>> >                         <st:include page="${desc.configPage}"
>> > from="${desc}"/>
>> >                     </f:dropdownListBlock>
>> >                 </j:forEach>
>> >             </f:dropdownList>
>> >         </table>
>> >     </f:block>
>> >
>> > There are two methods in Descriptor of the build step that has this
>> > config.jelly, they provide the data for both dropdowns:
>> >
>> >     public DescriptorExtensionList<MyBuildStep.ScheduleDefinition,
>> > Descriptor<MyBuildStep.ScheduleDefinition>> getScheduleDescriptors() {
>> >         return
>> >
>> Jenkins.getInstance().getDescriptorList(MyBuildStep.ScheduleDefinition.class);
>>
>> >     }
>> >
>> >     public DescriptorExtensionList<MyBuildStep.ArtifactDefinition,
>> > Descriptor<MyBuildStep.ArtifactDefinition>> getArtifactDescriptors() {
>> >         return
>> >
>> Jenkins.getInstance().getDescriptorList(MyBuildStep.ArtifactDefinition.class);
>>
>> >     }
>> >
>> > But how can I handle the change event in the first one to customize the
>> > selection in the second one?
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> Groups
>> > "Jenkins Developers" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> an
>> > email to jenkinsci-de...@googlegroups.com.
>> > To view this discussion on the web visit
>> >
>> https://groups.google.com/d/msgid/jenkinsci-dev/3744b377-beb9-4614-b6ec-8ac791b5e0a0%40googlegroups.com.
>>
>> > For more options, visit https://groups.google.com/d/optout.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to jenkinsci-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-dev/389541f0-69a8-440f-81ce-db907b3710d1%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-dev/389541f0-69a8-440f-81ce-db907b3710d1%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CA%2BnPnMw4sUo%3DkUHunSxNCd0stqNMsXXoHv-5%2BG4jpo9O7N-S%2Bg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to