Uploaded image for project: 'ZK'
  1. ZK
  2. ZK-4091

Collapsing a Groupbox with invalidate causes a JavaScript error

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Normal
    • Resolution: Fixed
    • Affects Version/s: 6.5.1, 8.6.0
    • Fix Version/s: 8.6.1
    • Component/s: Components
    • Labels:

      Description

      Steps to Reproduce

      1. collapse groupbox
        <zk>
            <groupbox title="Groupbox"
                      onOpen="self.invalidate();">
                <button label="test button" />
            </groupbox>
        </zk>
        

      Current Result

      An error in browser console

      TypeError: btn is undefined

      Expected Result

      No error in browser console

      Debug Information

      It tried to restore the focus, but the cave node is empty in collapsed groupbox.
      Button isn't aware this and use this.$n() (=null)
      https://github.com/zkoss/zk/blob/v8.6.0.1/zul/src/archive/web/js/zul/wgt/Button.js#L231

      Workaround

      Avoid calling invalidate if an animation is included in a action.
      Use <caption> instead of title attribute. (Because you clicked caption, not groupbox itself)

        Issue Links

          Activity

          Hide
          Anonymous added a comment -

          Fixed since 2018/12/27

          Show
          Anonymous added a comment - Fixed since 2018/12/27

            People

            • Assignee:
              rudyhuang rudyhuang
              Reporter:
              rudyhuang rudyhuang
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 4 hours
                4h
                Remaining:
                Time Spent - 3 hours Remaining Estimate - 1 hour
                1h
                Logged:
                Time Spent - 3 hours Remaining Estimate - 1 hour
                3h