Announcement

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

    bug with implicitCriteria and treeGrid.refreshData()

    SmartClient Version: v13.0p_2023-08-04/AllModules Development Only (built 2023-08-04)

    Chrome on MacOS

    Hello, I didn't noticed it at first, but similarly to this bug:
    https://forums.smartclient.com/forum...ata#post269101

    if you call employeeTree.refreshData() you'll see a fetch which doesn't include the implicitCriteria:

    Code:
    isc.TreeGrid.create({
        ID: "employeeTree",
        width: 500,
        height: 400,
        dataSource: "employees",
        autoFetchData: true,
        nodeIcon:"icons/16/person.png",
        folderIcon:"icons/16/person.png",
        showOpenIcons:false,
        showDropIcons:false,
        closedIconSuffix:"",
        showSelectedIcons:true,
        implicitCriteria: {
            _constructor: "AdvancedCriteria",
            operator: "and",
            criteria: [
                {
                    fieldName: "Salary",
                    operator: "greaterThan",
                    value: 9999
                }
            ]
        },
        fields: [
            {name: "Name"},
            {name: "Job"},
            {name: "Salary", formatCellValue: "isc.NumberUtil.format(value, '\u00A4,0.00')"}
        ]
    });
    ie:

    Code:
    {
        dataSource:"employees",
        operationType:"fetch",
        componentId:"employeeTree",
        data:{
            ReportsTo:"1"
        },
        textMatchStyle:"exact",
        resultTree:[ResultTree ID:isc_ResultTree_1 (dataSource: employees, created by: employeeTree)],
        willHandleError:true,
        showPrompt:false,
        prompt:"Finding Records that match your criteria...",
        oldValues:{
            ReportsTo:"1"
        },
        requestId:"employees$62718",
        internalClientContext:{
            fetchCount:2,
            parentPath:"/",
            relationship:{
                childDS:[DataSource ID:employees],
                parentDS:[DataSource ID:employees],
                parentIdField:"ReportsTo",
                idField:"EmployeeId",
                rootValue:"1"
            },
            parentNode:{
                EmployeeId:"1",
                isFolder:true,
                children:Array[1]
            }
        },
        fallbackToEval:false,
        dataFetchMode:"basic",
        lastClientEventThreadCode:"MUP6",
        bypassCache:true,
        dataProtocol:"getParams"
    }
    while a call to invalidateCache includes it:

    Code:
    {
        dataSource:"employees",
        operationType:"fetch",
        componentId:"employeeTree",
        data:{
            operator:"and",
            criteria:[
                {
                    fieldName:"ReportsTo",
                    operator:"equals",
                    value:"1"
                },
                {
                    fieldName:"Salary",
                    operator:"greaterThan",
                    value:9999
                }
            ]
        },
        textMatchStyle:"exact",
        resultTree:[ResultTree ID:isc_ResultTree_0 (dataSource: employees, created by: employeeTree)],
        callback:{
            caller:[ResultTree ID:isc_ResultTree_0 (dataSource: employees, created by: employeeTree)],
            methodName:"loadChildrenReply"
        },
        willHandleError:true,
        showPrompt:true,
        prompt:"Finding Records that match your criteria...",
        oldValues:{
            operator:"and",
            criteria:[
                {
                    fieldName:"ReportsTo",
                    operator:"equals",
                    value:"1"
                },
                {
                    fieldName:"Salary",
                    operator:"greaterThan",
                    value:9999
                }
            ]
        },
        requestId:"employees$62719",
        internalClientContext:{
            parentNodeLocator:{
            },
            parentNode:{
                EmployeeId:"1",
                children:Array[1],
                isFolder:true
            },
            relationship:{
                childDS:[DataSource ID:employees],
                parentDS:[DataSource ID:employees],
                parentIdField:"ReportsTo",
                idField:"EmployeeId",
                rootValue:"1"
            },
            fetchCount:1
        },
        fallbackToEval:false,
        progressiveLoading:false,
        lastClientEventThreadCode:"MUP6",
        bypassCache:true,
        dataProtocol:"getParams"
    }

    #2
    We've made a change that should address missing implicitCriteria from TreeGrid.refreshData().

    Please retest with a build dated August 8 or later.

    Comment


      #3
      SmartClient Version: v13.0p_2023-08-18/AllModules Development Only (built 2023-08-18)

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

      Comment

      Working...
      X