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

chosenbox problems with initially empty model

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Normal
    • 9.0.1
    • 8.6.3
    • Components
    • Security Level: Jimmy
    • ZK 9.0.1 S1

    Description

      Steps to Reproduce

      <zk>
          <zscript>
              ListModelList model = new ListModelList();
          </zscript>
          <chosenbox width="300px" creatable="true"
                     model="${model}"
                     onSearch='model.add(event.value); model.addToSelection(event.value);'
          />
      </zk>
      

      1) create a new item 'AAA'
      2) remove the item 'AAA'
      3a) add the item 'AAA' again
      3b) create the item 'AAA' again

      Current Result

      1) item added OK
      2) item removed OK
      3a) the item doesn't appear in the choices
      3b) after re-creating 'AAA' it appears twice

      Expected Result

      3a) item should be available in the model (unless removed from java code)
      3b) re-creating the same item should not be necessary/possible

      Debug Information

      trying to remove unselected items from the model leads to a JS error

      add 'AAA'
      then 'BBB'
      then remove 'BBB'

      <zk>
          <zscript>
              ListModelList model = new ListModelList();
          </zscript>
          <chosenbox width="300px" creatable="true"
                     model="${model}"
                     onSearch='model.add(event.value); model.addToSelection(event.value);'
                     onSelect='model.removeAll(event.unselectedObjects);'
          />
      </zk>
      

      -->

      zk.wpd:27427 Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'.
          at init._updateListContent (zkmax.inp.wpd:9)
          at Object.invoke (zk.wpd:28677)
          at doProcess (zk.wpd:26925)
          at doCmdsNow (zk.wpd:27025)
          at Object._doCmds (zk.wpd:27392)
          at Object.afterResponse (zk.wpd:27898)
          at XMLHttpRequest._onResponseReady (zk.wpd:27753)
      

      Adding an initial item avoids the problems from above.
      However the initial item can not be removed successfully, it always reappears in the available choices.

      <zk>
          <zscript>
              ListModelList model = new ListModelList();
              model.add("INITIAL DUMMY");
          </zscript>
          <chosenbox width="300px" creatable="true"
                     model="${model}"
                     onSearch='model.add(event.value); model.addToSelection(event.value);'
                     onSelect='model.removeAll(event.unselectedObjects);'
          />
      </zk>
      

      Workaround

      use an empty dummy item, even 'null' works, and filter it out later, or make sure there's at least 1 initially available option

      Attachments

        Issue Links

          Activity

            People

              Leon03 Leon03
              cor3000 cor3000
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 2 days
                  2d
                  Remaining:
                  Remaining Estimate - 2 days
                  2d
                  Logged:
                  Time Spent - Not Specified
                  Not Specified