Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-37207

INPUT.validated behavior happening before TR.row-set-end

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • core

      I noticed that when using radioBlock (and I would guess there is the same problem with optionalBlock), the INPUT.validated behavior is happening before the TR.row-set-end one. This is an issue if we are using validators with relativepath based on the ref/nameRef created by the TR.row-set-end behavior, which links the block to its main controller (checkbox/radio/...).

      The behavior INPUT.validated is calling a first time targetUrl to ask for a delay check, but the targetUrl already needs the ref/nameRef to resolve correctly and that causes a JavaScript error, failing the loading of the page completely. This is happening when calling e.targetUrl() here:

      registerValidator (hudson-behavior.js:434)
      (anonymous function) (behavior.js:111)
      (anonymous function) (behavior.js:107)
      applySubtree (behavior.js:93)
      apply (behavior.js:76)
      (anonymous function) (behavior.js:71)
      window.onload (behavior.js:125)
      

      Priority is 26 for INPUT.validated, and 43 for TR.row-set-end. I also ask on the dev mailing list.

      If when debugging the JavaScript I switch the priority from 26 to 44 or higher, everything works fine. Not sure if moving forward the TR.row-set-end or backward INPUT.validated can cause any regression but that fixes this issue.

      As soon as the TR.row-set-end rule kicks in, the relative paths work fine.

            Unassigned Unassigned
            gdelory Guillaume DELORY
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: