1. 23 8月, 2012 3 次提交
  2. 22 8月, 2012 6 次提交
  3. 04 8月, 2012 2 次提交
    • J
      [JENKINS-14495] Refined fix - needed to pull uniqueness check out of apply()... · f39fbdb3
      Jesse Glick 提交于
      [JENKINS-14495] Refined fix - needed to pull uniqueness check out of apply() fn in case we were being passed an Array of nodes.
      Fixes test failures introduced by  dbb100da, and adds a test for it now that I know it can be done.
      f39fbdb3
    • J
      [FIXED JENKINS-14495] Hetero lists not working correctly after adding elements. · dbb100da
      Jesse Glick 提交于
      Unlike [JENKINS-14514] this is a true fix rather than a workaround (now removed), and is more general.
      cjo9900 discovered that behaviors were being redundantly registered (as of 1.474 the monolithic JS is broken up);
      this caused some behaviors to be run repeatedly on the same elements, breaking reasonable expectations of some behaviors.
      The ideal fix would be to change Behavior.register to be idempotent: for example, key it by selector, then maintain a set of distinct behavior functions for each.
      Unfortunately some adjuncts directly call Behavior.list.unshift, bypassing register(...), which would be tricky to intercept (would need to make a mock of Array).
      The known one cases are in core, but it is possible plugin adjuncts do this too, in which case it would be incompatible to (say) change the Array<Map<String,Behavior>> to a Map<String,Array<Behavior>>.
      Instead, permitting redundant registrations as before, and just silently skipping all but the first at runtime when applying behaviors.
      Beware that since adjuncts are loaded from multiple places, different JS function objects are registered each time, so a naive set of behavior functions does not work;
      have to identify functions by their toString in order to ensure that each is run only once.
      (Currently once _per selector_, conceivably >1x per element; could if necessary be refined to make sure a given behavior is only run once on a given element during one call to applySubtree even if the element matches multiple selectors.)
      dbb100da
  4. 31 7月, 2012 2 次提交
  5. 28 7月, 2012 1 次提交
  6. 30 6月, 2012 1 次提交
  7. 29 6月, 2012 1 次提交
    • K
      splitting JavaScript into smaller fragments for better maintainability. · 96442cd9
      Kohsuke Kawaguchi 提交于
      One of the problems with the current way Jenkins puts JavaScripts is that most everything is in a single file. It doesn't highlight the relationship between those fragments and their corresponding tag files.
      
      So I'm experimenting with moving out these fragments into individual JavaScript files co-located with the tag file. They then get loaded into the page via <st:adjunct>. Each script is served with unique URL such that the browser will not even have to try conditional GET when loading different pages, so this should prevent the performance problem caused by the fact that there are now lots of <script> tags in the page.
      
       If for some reason even this turns out to be a problem, we can always add additional build steps to concatenate them all.
      96442cd9
  8. 23 6月, 2012 4 次提交
  9. 22 6月, 2012 1 次提交
  10. 06 6月, 2012 2 次提交
    • K
      supported more complex relative path · 17317bb4
      Kohsuke Kawaguchi 提交于
      17317bb4
    • K
      fixed a bug in the neighbor field discovery. · d72a9a2b
      Kohsuke Kawaguchi 提交于
      Previously, the code was "find the nearby element of the expected @name,
      then make sure it has gotten the right parent."
      
      So if the structure is like:
      
        {/* outer object */
            name: "parent-name",  /* A */
      
            child1: {/* inner object */
              name: "child-name" /* B */
            },
      
            child2: {/* inner object */
              name: "child-name" /* C */
            }
        }
      
      ... and if we are looking for "../name", it finds B, and it gets
      rejected, so we won't be able to find A, which is what we are supposed
      to find.
      
      With this change, we keep trying until we find the right one,
      so the above case will correctly return A.
      d72a9a2b
  11. 31 5月, 2012 1 次提交
  12. 25 4月, 2012 1 次提交
  13. 19 4月, 2012 9 次提交
  14. 06 3月, 2012 2 次提交
  15. 02 3月, 2012 4 次提交