Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    filterEditor problem when using showIf on a field

    SmartClient Version: v11.1p_2017-10-04/AllModules Development Only (built 2017-10-04)
    and
    SmartClient Version: SNAPSHOT_v12.0d_2017-10-04/AllModules Development Only (built 2017-10-04)

    Chrome and Safari on OSX

    Hello, please modify the #databoundDependentSelects sample like this:

    Code:
    isc.ListGrid.create({
        width: 500,
        height:200,
        canEdit:true,
        autoDraw: true,
        ID:"orderList",
        fields: [
            {name:"quantity", title:"Qty", type:"integer", width:50},
            {name:"categoryName", title:"Category", editorType:"SelectItem", 
             // setEditValue() explicitly to null, to override any existing value in the record that was from another category
             changed:"this.grid.setEditValue(this.rowNum, 'itemName', null);",
             editorProperties : { optionDataSource:"supplyCategory" }
            },
            {name: "itemName", title:"Item", editorType: "SelectItem", 
               editorProperties:{
                   optionDataSource:"supplyItem", 
                   getPickListFilterCriteria : function () {
                      var category = this.grid.getEditedCell(this.rowNum, "categoryName");
                      return {category:category};
                   },
    
                   pickListProperties: {
                      showFilterEditor: true
                   }
               },
               pickListWidth: 500,
               pickListFields: [
                    {name: "itemID", showIf: "return false"},
                    {name: "itemName"},
                    {name: "nextShipment"}
               ]
            }
        ]
    });
    
    isc.IButton.create({
        top: 220,
        autoFit: true,
        title:"Order New Item",
        click:"orderList.startEditingNew({quantity:1})"
    });
    note the showIf:"false" on itemID field of the picklist. That's what creates the problem.

    Then click 'Order New Item'. When you open the itemName picklist, you'll see that the 'nextShipment' field lacks the date picker in the filter editor.
    Then if you close (by clicking outside) and re-open the picklist, you'll see that only the filter button is visible, in the filter editor:

    Click image for larger version

Name:	2017-10-05 10.20.42.jpg
Views:	249
Size:	17.1 KB
ID:	249481

    There aren't errors or warnings in the developer console.

    I've tested some older builds, and I can say that
    - this build works: SmartClient_v111p_2017-09-03_Enterprise
    - but this build doesn't work: SmartClient_v111p_2017-09-21_Enterprise

    Also, if I use the header context menu to show the itemID field, I got this error in the developer console.

    Code:
    10:13:30.977:MUP7:WARN:Log:TypeError: Cannot read property 'name' of null
    Stack from error.stack:
        Canvas._addDependentUserFields(<no args: exited>) on [PickListMenu ID:isc_PickListMenu_1] @ ISC_Core.js:4022:192
        ListGrid.calculateRecordSummaries(<no args: exited>) on [PickListMenu ID:isc_PickListMenu_1] @ ISC_Grids.js:1739:1103
        ListGrid.recalculateSummaries(<no args: exited>) on [PickListMenu ID:isc_PickListMenu_1] @ ISC_Grids.js:1704:125
        ListGrid.showField(<no args: exited>) on [PickListMenu ID:isc_PickListMenu_1] @ ISC_Grids.js:1018:68
        click(<no args: exited>) @ ISC_Grids.js:2635:118
        Menu.selectMenuItem(<no args: exited>) on [Menu ID:isc_Menu_0] @ ISC_Grids.js:3264:46
        Menu.rowClick(<no args: exited>) on [Menu ID:isc_Menu_0] @ ISC_Grids.js:3250:286
        _3.eval(<no args: exited>) on [GridBody ID:isc_Menu_0_body] @ [no file]:4:115
        GridRenderer._rowClick(<no args: exited>) on [GridBody ID:isc_Menu_0_body] @ ISC_Grids.js:546:183
        [c]Class.invokeSuper(<no args: exited>) on [GridBody ID:isc_Menu_0_body] @ ISC_Core.js:291:93
        [c]Class.Super(<no args: exited>) on [GridBody ID:isc_Menu_0_body] @ ISC_Core.js:283:170
        GridBody._rowClick(<no args: exited>) on [GridBody ID:isc_Menu_0_body] @ ISC_Grids.js:615:76
        GridRenderer.click(<no args: exited>) on [GridBody ID:isc_Menu_0_body] @ ISC_Grids.js:544:167
        Canvas.handleClick(<no args: exited>) on [GridBody ID:isc_Menu_0_body] @ ISC_Core.js:3371:400
        [c]EventHandler.bubbleEvent(<no args: exited>) on [Class EventHandler] @ ISC_Core.js:2037:89
        [c]EventHandler.handleClick(<no args: exited>) on [Class EventHandler] @ ISC_Core.js:1893:50
        EventHandler._handleMouseUp(<no args: exited>) on [Class EventHandler] @ ISC_Core.js:1878:11
        [c]EventHandler.handleMouseUp(<no args: exited>) on [Class EventHandler] @ ISC_Core.js:1869:57
        [c]EventHandler.dispatch(_1=>[c]EventHandler.handleMouseUp(), _2=>[object MouseEvent]) on [Class EventHandler] @ ISC_Core.js:2123:108
        HTMLDocument.eval(event=>[object MouseEvent]) @ [no file]:3:123

    #2
    We are seeing the same thing, have identified the cause and are working on the solution.

    Comment


      #3
      This issue should be fixed with the next build on Oct 7.

      Comment


        #4
        SmartClient Version: v11.1p_2017-10-11/Enterprise Development Only (built 2017-10-11)

        Hello, I can confirm it's fixed, thank you very much.

        Comment

        Working...
        X