Announcement

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

  • canEditCriterion infinite loop error in 12.0p_2019-01-23

    Hi Isomorphic,

    I know that you did some changes to canEditCriterion here.
    Now I'm getting this loop-stack-error in my application at a different place. Does this mean something to you? Using Chromium72.0.3626.81.

    Code:
    ISC_Core.js?isc_version=12.0p_2019-01-23.js:1252 *17:30:22.322:MUP7[E0]:WARN:Log:RangeError: Maximum call stack size exceeded
    Stack from error.stack:
        _3.canEditCriterion(<no args: exited>) on [TextItem ID:isc_DynamicForm_0_TextItem_isc_OID_40 name:STATUS_RESELLER_ID] @ ISC_Grids.js:1:1
        _3.canEditCriterion(<no args: exited>) on [TextItem ID:isc_DynamicForm_0_TextItem_isc_OID_40 name:STATUS_RESELLER_ID] @ ISC_Grids.js:1883:451
        _3.canEditCriterion(<no args: exited>) on [TextItem ID:isc_DynamicForm_0_TextItem_isc_OID_40 name:STATUS_RESELLER_ID] @ ISC_Grids.js:1883:451
        _3.canEditCriterion(<no args: exited>) on [TextItem ID:isc_DynamicForm_0_TextItem_isc_OID_40 name:STATUS_RESELLER_ID] @ ISC_Grids.js:1883:451
        _3.canEditCriterion(<no args: exited>) on [TextItem ID:isc_DynamicForm_0_TextItem_isc_OID_40 name:STATUS_RESELLER_ID] @ ISC_Grids.js:1883:451
        _3.canEditCriterion(<no args: exited>) on [TextItem ID:isc_DynamicForm_0_TextItem_isc_OID_40 name:STATUS_RESELLER_ID] @ ISC_Grids.js:1883:451
        _3.canEditCriterion(<no args: exited>) on [TextItem ID:isc_DynamicForm_0_TextItem_isc_OID_40 name:STATUS_RESELLER_ID] @ ISC_Grids.js:1883:451
        MANY
        MANY
        MANY of these
        _3.canEditCriterion(<no args: exited>) on [TextItem ID:isc_DynamicForm_0_TextItem_isc_OID_40 name:STATUS_RESELLER_ID] @ ISC_Grids.js:1883:451
        _3.canEditCriterion(<no args: exited>) on [TextItem ID:isc_DynamicForm_0_TextItem_isc_OID_40 name:STATUS_RESELLER_ID] @ ISC_Grids.js:1883:451
        _3.canEditCriterion(<no args: exited>) on [TextItem ID:isc_DynamicForm_0_TextItem_isc_OID_40 name:STATUS_RESELLER_ID] @ ISC_Grids.js:1883:451
        _3.canEditCriterion(<no args: exited>) on [TextItem ID:isc_DynamicForm_0_TextItem_isc_OID_40 name:STATUS_RESELLER_ID] @ ISC_Grids.js:1883:451
        _3.canEditCriterion(<no args: exited>) on [TextItem ID:isc_DynamicForm_0_TextItem_isc_OID_40 name:STATUS_RESELLER_ID] @ ISC_Grids.js:1883:451
        _3.canEditCriterion(<no args: exited>) on [TextItem ID:isc_DynamicForm_0_TextItem_isc_OID_40 name:STATUS_RESELLER_ID] @ ISC_Grids.js:1883:451
        _3.canEditCriterion(<no args: exited>) on [TextItem ID:isc_DynamicForm_0_TextItem_isc_OID_40 name:STATUS_RESELLER_ID] @ ISC_Grids.js:1883:451
        DynamicForm.setItemValues(<no args: exited>) on [DynamicForm ID:isc_DynamicForm_0] @ ISC_Forms.js:421:68
        DynamicForm._addItems(<no args: exited>) on [DynamicForm ID:isc_DynamicForm_0] @ ISC_Forms.js:286:47
        DynamicForm._setItems(<no args: exited>) on [DynamicForm ID:isc_DynamicForm_0] @ ISC_Forms.js:275:6
        DynamicForm.setItems(<no args: exited>) on [DynamicForm ID:isc_DynamicForm_0] @ ISC_Forms.js:274:90
        GridBody.draw(<no args: exited>) on [FilterEditorBody ID:LeadlistManagement_export$31t_body] @ ISC_Grids.js:780:80
        Layout.layoutChildren(<no args: exited>) on [RecordEditor ID:LeadlistManagement_export$31t] @ ISC_Foundation.js:355:264
        ListGrid.layoutChildren(<no args: exited>) on [RecordEditor ID:LeadlistManagement_export$31t] @ ISC_Grids.js:1280:32
        [c]Class.invokeSuper(<no args: exited>) on [RecordEditor ID:LeadlistManagement_export$31t] @ ISC_Core.js:313:93
        [c]Class.Super(<no args: exited>) on [RecordEditor ID:LeadlistManagement_export$31t] @ ISC_Core.js:305:170
        RecordEditor.layoutChildren(<no args: exited>) on [RecordEditor ID:LeadlistManagement_export$31t] @ ISC_Grids.js:3411:205
        Layout.drawChildren(<no args: exited>) on [RecordEditor ID:LeadlistManagement_export$31t] @ ISC_Foundation.js:264:640
        Canvas.draw(<no args: exited>) on [RecordEditor ID:LeadlistManagement_export$31t] @ ISC_Core.js:2626:253
        [c]Class.invokeSuper(<no args: exited>) on [RecordEditor ID:LeadlistManagement_export$31t] @ ISC_Core.js:313:162
        ListGrid.draw(<no args: exited>) on [RecordEditor ID:LeadlistManagement_export$31t] @ ISC_Grids.js:1362:621
        [c]Class.invokeSuper(<no args: exited>) on [RecordEditor ID:LeadlistManagement_export$31t] @ ISC_Core.js:313:93
        [c]Class.Super(<no args: exited>) on [RecordEditor ID:LeadlistManagement_export$31t] @ ISC_Core.js:305:170
        RecordEditor.draw(<no args: exited>) on [RecordEditor ID:LeadlistManagement_export$31t] @ ISC_Grids.js:3375:6
        Layout.layoutChildren(<no args: exited>) on[ListGrid ID:LeadlistManagement_export] @ ISC_Foundation.js:355:264
        ListGrid.layoutChildren(<no args: exited>) on[ListGrid ID:LeadlistManagement_export] @ ISC_Grids.js:1280:32
        Layout.drawChildren(<no args: exited>) on[ListGrid ID:LeadlistManagement_export] @ ISC_Foundation.js:264:640
        Canvas.draw(<no args: exited>) on[ListGrid ID:LeadlistManagement_export] @ ISC_Core.js:2626:253
        [c]Class.invokeSuper(<no args: exited>) on[ListGrid ID:LeadlistManagement_export] @ ISC_Core.js:313:162
        ListGrid.draw(<no args: exited>) on[ListGrid ID:LeadlistManagement_export] @ ISC_Grids.js:1362:621
        Layout.layoutChildren(<no args: exited>) on [VLayout ID:isc_LMSSectionStackSection_2_3] @ ISC_Foundation.js:355:264
        Layout.drawChildren(<no args: exited>) on [VLayout ID:isc_LMSSectionStackSection_2_3] @ ISC_Foundation.js:264:640
        Canvas.draw(<no args: exited>) on [VLayout ID:isc_LMSSectionStackSection_2_3] @ ISC_Core.js:2626:253
        Layout.layoutChildren(<no args: exited>) on [SectionStack ID:isc_LeadExportVLayout_2_0] @ ISC_Foundation.js:353:205
        Layout.drawChildren(<no args: exited>) on [SectionStack ID:isc_LeadExportVLayout_2_0] @ ISC_Foundation.js:264:640
        Canvas.draw(<no args: exited>) on [SectionStack ID:isc_LeadExportVLayout_2_0] @ ISC_Core.js:2626:253
        Layout.layoutChildren(<no args: exited>) on [VLayout ID:isc_LeadExportVLayout_0] @ ISC_Foundation.js:355:264
        Layout.drawChildren(<no args: exited>) on [VLayout ID:isc_LeadExportVLayout_0] @ ISC_Foundation.js:264:640
        Canvas.draw(<no args: exited>) on [VLayout ID:isc_LeadExportVLayout_0] @ ISC_Core.js:2626:253
        Layout.layoutChildren(<no args: exited>) on [VLayout ID:isc_MainArea_0] @ ISC_Foundation.js:353:205
        Layout.reflowNow(<no args: exited>) on [VLayout ID:isc_MainArea_0] @ ISC_Foundation.js:387:568
        [c]Layout.clearReflowQueue(<no args: exited>) on [Class Layout] @ ISC_Foundation.js:250:447
        <anonymous>(<no args: exited>) @ ISC_Foundation.js:250:82
        [c]EventHandler.runTeas(<no args: exited>) on [Class EventHandler] @ ISC_Core.js:2231:106
        EventHandler._clearThread(<no args: exited>) on [Class EventHandler] @ ISC_Core.js:2228:136
        [c]EventHandler.dispatch(<no args: exited>) on [Class EventHandler] @ ISC_Core.js:2233:6
        HTMLDocument.eval(<no args: exited>) @ [no file]:3:123
    
    isc.B.push.isc.A.addToMasterLog @ ISC_Core.js?isc_version=12.0p_2019-01-23.js:1252
    
    
    Uncaught RangeError: Maximum call stack size exceeded
        at _3.canEditCriterion [as custom_canEditCriterion] (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:1)
        at _3.canEditCriterion [as custom_canEditCriterion] (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:1883)
        at _3.canEditCriterion [as custom_canEditCriterion] (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:1883)
        MANY
        MANY
        MANY of these
        at _3.canEditCriterion [as custom_canEditCriterion] (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:1883)
        at _3.canEditCriterion [as custom_canEditCriterion] (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:1883)
        at _3.canEditCriterion [as custom_canEditCriterion] (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:1883)
        at _3.canEditCriterion [as custom_canEditCriterion] (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:1883)
        at _3.canEditCriterion (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:1883)
        at _3.isc_DynamicForm_setItemValues [as setItemValues] (ISC_Forms.js?isc_version=12.0p_2019-01-23.js:421)
        at _3.isc_DynamicForm__addItems [as $10l] (ISC_Forms.js?isc_version=12.0p_2019-01-23.js:286)
        at _3.isc_DynamicForm__setItems [as $143m] (ISC_Forms.js?isc_version=12.0p_2019-01-23.js:275)
        at _3.isc_DynamicForm_setItems [as setItems] (ISC_Forms.js?isc_version=12.0p_2019-01-23.js:274)
        at _3.isc_GridBody_draw [as draw] (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:780)
        at _3.isc_Layout_layoutChildren [as layoutChildren] (ISC_Foundation.js?isc_version=12.0p_2019-01-23.js:355)
        at _3.isc_ListGrid_layoutChildren [as layoutChildren] (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:1280)
        at _3.isc_c_Class_invokeSuper [as invokeSuper] (ISC_Core.js?isc_version=12.0p_2019-01-23.js:313)
        at _3.isc_c_Class_Super [as Super] (ISC_Core.js?isc_version=12.0p_2019-01-23.js:305)
        at _3.isc_RecordEditor_layoutChildren [as layoutChildren] (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:3411)
        at _3.isc_Layout_drawChildren [as drawChildren] (ISC_Foundation.js?isc_version=12.0p_2019-01-23.js:264)
        at _3.isc_Canvas_draw [as draw] (ISC_Core.js?isc_version=12.0p_2019-01-23.js:2626)
        at _3.isc_c_Class_invokeSuper [as invokeSuper] (ISC_Core.js?isc_version=12.0p_2019-01-23.js:313)
        at _3.isc_ListGrid_draw [as draw] (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:1362)
        at _3.isc_c_Class_invokeSuper [as invokeSuper] (ISC_Core.js?isc_version=12.0p_2019-01-23.js:313)
        at _3.isc_c_Class_Super [as Super] (ISC_Core.js?isc_version=12.0p_2019-01-23.js:305)
        at _3.isc_RecordEditor_draw [as draw] (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:3375)
        at _3.isc_Layout_layoutChildren [as layoutChildren] (ISC_Foundation.js?isc_version=12.0p_2019-01-23.js:355)
        at _3.isc_ListGrid_layoutChildren [as layoutChildren] (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:1280)
        at _3.isc_Layout_drawChildren [as drawChildren] (ISC_Foundation.js?isc_version=12.0p_2019-01-23.js:264)
        at _3.isc_Canvas_draw [as draw] (ISC_Core.js?isc_version=12.0p_2019-01-23.js:2626)
        at _3.isc_c_Class_invokeSuper [as invokeSuper] (ISC_Core.js?isc_version=12.0p_2019-01-23.js:313)
        at _3.isc_ListGrid_draw [as draw] (ISC_Grids.js?isc_version=12.0p_2019-01-23.js:1362)
        at _3.isc_Layout_layoutChildren [as layoutChildren] (ISC_Foundation.js?isc_version=12.0p_2019-01-23.js:355)
        at _3.isc_Layout_drawChildren [as drawChildren] (ISC_Foundation.js?isc_version=12.0p_2019-01-23.js:264)
        at _3.isc_Canvas_draw [as draw] (ISC_Core.js?isc_version=12.0p_2019-01-23.js:2626)
        at _3.isc_Layout_layoutChildren [as layoutChildren] (ISC_Foundation.js?isc_version=12.0p_2019-01-23.js:353)
        at _3.isc_Layout_drawChildren [as drawChildren] (ISC_Foundation.js?isc_version=12.0p_2019-01-23.js:264)
        at _3.isc_Canvas_draw [as draw] (ISC_Core.js?isc_version=12.0p_2019-01-23.js:2626)
        at _3.isc_Layout_layoutChildren [as layoutChildren] (ISC_Foundation.js?isc_version=12.0p_2019-01-23.js:355)
        at _3.isc_Layout_drawChildren [as drawChildren] (ISC_Foundation.js?isc_version=12.0p_2019-01-23.js:264)
        at _3.isc_Canvas_draw [as draw] (ISC_Core.js?isc_version=12.0p_2019-01-23.js:2626)
        at _3.isc_Layout_layoutChildren [as layoutChildren] (ISC_Foundation.js?isc_version=12.0p_2019-01-23.js:353)
        at _3.isc_Layout_reflowNow [as reflowNow] (ISC_Foundation.js?isc_version=12.0p_2019-01-23.js:387)
        at Object.isc_c_Layout_clearReflowQueue [as clearReflowQueue] (ISC_Foundation.js?isc_version=12.0p_2019-01-23.js:250)
        at ISC_Foundation.js?isc_version=12.0p_2019-01-23.js:250
        at _3.isc_c_EventHandler_runTeas [as runTeas] (ISC_Core.js?isc_version=12.0p_2019-01-23.js:2231)
        at _3.isc_c_EventHandler__clearThread [as $h2] (ISC_Core.js?isc_version=12.0p_2019-01-23.js:2228)
        at _3.isc_c_EventHandler_dispatch [as dispatch] (ISC_Core.js?isc_version=12.0p_2019-01-23.js:2233)
        at HTMLDocument.eval (eval at isc__makeFunction (ISC_Core.js?isc_version=12.0p_2019-01-23.js:83), <anonymous>:3:123)
    Best regards
    Blama

  • Blama
    replied
    Hi Isomorphic,

    this is solved in the showcase for me using v12.0p_2019-02-09. I'll retest my application as well.

    Best regards
    Blama

    Leave a comment:


  • Isomorphic
    replied
    Thanks - this is addressed by the same change, which has been made today and will appear in builds dated February 9 and later (apologies, we accidentally referenced January 9 in our previous reply).

    Leave a comment:


  • Blama
    replied
    Hi Isomorphic,

    here is a SmartClient sample based testcase (v12.0p_2019-02-07).
    As written in #1 I do think the issue was introduced in beginning/mid of January.
    Both AdvancedCriteria and browserSpellCheck: false seem to be necessary to trigger the issue.

    Code:
    isc.VStack.create({
        membersMargin: 30,
        width: "100%",
        height: "100%",
        members: [
            isc.IButton.create({
                title: "Filter",
                click: function() {
                    dsListGrid.setShowFilterEditor(!dsListGrid.showFilterEditor);
                }
            }),
            isc.ListGrid.create({
                ID: "dsListGrid",
                width: "100%",
                height: "70%",
                autoFetchData: true,
                autoDraw: true,
                dataSource: "supplyItem",
                groupByField: "category",
                // Necessary            
                initialCriteria: {
                    _constructor: "AdvancedCriteria",
                    operator: "and",
                    criteria: [{
                        fieldName: "SKU",
                        operator: "startsWith",
                        value: "1"
                    }]
                },
                fields: [{
                        name: "itemID"
                    },
                    {
                        name: "itemName",
                        // Necessary            
                        filterEditorProperties: {
                            browserSpellCheck: false
                        }
                    },
                    {
                        name: "SKU"
                    },
                    {
                        name: "description"
                    },
                    {
                        name: "category"
                    },
                    {
                        name: "units"
                    },
                    {
                        name: "unitCost"
                    },
                    {
                        name: "inStock"
                    },
                    {
                        name: "nextShipment"
                    },
                    {
                        name: "buttonField",
                        title: "Info",
                        align: "center"
                    },
                    {
                        name: "iconField",
                        title: "Comments/Stats",
                        width: 110
                    }
                ]
            })
        ]
    });
    Best regards
    Blama

    Leave a comment:


  • Isomorphic
    replied
    Thanks for the report - this has been fixed for builds dated February 9 and later.
    Last edited by Isomorphic; 8th Feb 2019, 03:30.

    Leave a comment:


  • pavo123
    replied
    Hi Isomorphic,

    please take a look at this case.
    After I open the filter and close it, then try to open it again, an error appears.

    Click image for larger version

Name:	filter_bug.gif
Views:	1
Size:	150.8 KB
ID:	256792

    Code:
    package com.smartgwt.sample.client;
    
    import com.google.gwt.core.client.EntryPoint;
    import com.google.gwt.core.client.GWT;
    import com.smartgwt.client.Version;
    import com.smartgwt.client.bean.BeanFactory;
    import com.smartgwt.client.core.KeyIdentifier;
    import com.smartgwt.client.data.AdvancedCriteria;
    import com.smartgwt.client.data.Criterion;
    import com.smartgwt.client.types.OperatorId;
    import com.smartgwt.client.util.Page;
    import com.smartgwt.client.util.PageKeyHandler;
    import com.smartgwt.client.util.SC;
    import com.smartgwt.client.widgets.Button;
    import com.smartgwt.client.widgets.IButton;
    import com.smartgwt.client.widgets.Window;
    import com.smartgwt.client.widgets.events.ClickEvent;
    import com.smartgwt.client.widgets.events.ClickHandler;
    import com.smartgwt.client.widgets.form.fields.TextItem;
    import com.smartgwt.client.widgets.grid.ListGrid;
    import com.smartgwt.client.widgets.grid.ListGridField;
    import com.smartgwt.client.widgets.layout.VLayout;
    
    public class BuiltInDS extends VLayout implements EntryPoint {
        private IButton recreateBtn;
    
        public void onModuleLoad() {
            GWT.create(BeanFactory.FormItemMetaFactory.class);
    
            KeyIdentifier debugKey = new KeyIdentifier();
            debugKey.setCtrlKey(true);
            debugKey.setKeyName("D");
    
            Page.registerKey(debugKey, new PageKeyHandler() {
                public void execute(String keyName) {
                    SC.showConsole();
                }
            });
    
            setWidth100();
            setHeight100();
    
            recreateBtn = new IButton("Recreate");
            recreateBtn.addClickHandler(new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    new MyWindow().show();
                }
            });
            addMember(recreateBtn);
            new MyWindow().show();
            draw();
        }
    
        private class MyWindow extends Window {
            public MyWindow() {
                setWidth(600);
                setHeight(300);
                setMembersMargin(0);
                setModalMaskOpacity(70);
                setTitle(" (" + Version.getVersion() + "/" + Version.getSCVersionNumber() + ")");
                setShowMinimizeButton(false);
                setIsModal(true);
                setShowModalMask(true);
                centerInPage();
    
                ListGridField commonNameLGF = new ListGridField("commonName");
                commonNameLGF.setFilterEditorProperties(new TextItem() {
                    {
                        setBrowserSpellCheck(false);
                    }
                });
    
                final ListGrid lg = new ListGrid();
                lg.setDataSource("animals");
    
                lg.setFields(commonNameLGF);
                AdvancedCriteria tmp = new AdvancedCriteria(new Criterion("commonName", OperatorId.STARTS_WITH, "A"));
                AdvancedCriteria managementClientAdvancedCriteria = new AdvancedCriteria(new Criterion("commonName", OperatorId.STARTS_WITH, "A"));
                tmp.addCriteria(managementClientAdvancedCriteria);
                lg.fetchData(tmp);
    
                Button openFilterButton = new Button("Open Filter");
                openFilterButton.addClickHandler(new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent event) {
                        if (lg.getShowFilterEditor())
                            lg.setShowFilterEditor(false);
                        else
                            lg.setShowFilterEditor(true);
                    }
                });
    
                addItem(openFilterButton);
                addItem(lg);
            }
        }
    }
    Best regards
    Pavo

    Leave a comment:


  • Blama
    replied
    Hi Isomorphic,

    there definitely is something wrong. I do have a similar error (Maximum call stack size exceeded) in the same version and same complied code in a grouped ListGrid with recordComponents (mentioning it, as it perhaps this will already ring some bell), when I show and hide and show again the filterRow. 1st time showing, everything is good, 2nd time showing, it displays broken below of the ListGrid (see video).
    I do get this error in the client console:
    Code:
    18:42:38.358:MUP3:WARN:Log:com.google.gwt.core.client.JavaScriptException: (RangeError) : Maximum call stack size exceeded
        at t0(lms-0.js)
        at Jd(lms-0.js)
        at Cd(lms-0.js)
        at Z2(lms-0.js)
        at d3(lms-0.js)
        at eval(lms-0.js)
        at lc(lms-0.js)
        at oc(lms-0.js)
        at eval(lms-0.js)
        at C6.d.click(lms-0.js)
        at isc_StatefulCanvas_handleActivate(https://test.leadtributor.com/test/lms/sc/modules/ISC_Foundation.js?isc_version=12.0p_2019-01-23.js)
        at isc_StatefulCanvas_handleClick(https://test.leadtributor.com/test/lms/sc/modules/ISC_Foundation.js?isc_version=12.0p_2019-01-23.js)
        at isc_c_EventHandler_bubbleEvent(https://test.leadtributor.com/test/lms/sc/modules/ISC_Core.js?isc_version=12.0p_2019-01-23.js)
        at isc_c_EventHandler_handleClick(https://test.leadtributor.com/test/lms/sc/modules/ISC_Core.js?isc_version=12.0p_2019-01-23.js)
        at isc_c_EventHandler__handleMouseUp(https://test.leadtributor.com/test/lms/sc/modules/ISC_Core.js?isc_version=12.0p_2019-01-23.js)
        at isc_c_EventHandler_handleMouseUp(https://test.leadtributor.com/test/lms/sc/modules/ISC_Core.js?isc_version=12.0p_2019-01-23.js)
        at isc_c_EventHandler_dispatch(https://test.leadtributor.com/test/lms/sc/modules/ISC_Core.js?isc_version=12.0p_2019-01-23.js)
        at eval(eval at isc__makeFunction (https://test.leadtributor.com/test/lms/sc/modules/ISC_Core.js?isc_version=12.0p_2019-01-23.js)
    On my way to a testcase (not showing the issue, yet), I have this:
    Code:
    isc.VStack.create({
        membersMargin: 30,
        width: "100%",
        height: "100%",
        members: [
            isc.IButton.create({
                title: "Filter",
                click: function() {
                    dsListGrid.setShowFilterEditor(!dsListGrid.showFilterEditor);
                }
            }),
            isc.ListGrid.create({
                ID: "dsListGrid",
                width: "100%",
                height: "70%",
                autoFetchData: true,
                autoDraw: true,
                dataSource: "supplyItem",
                canResizeFields: true,
                virtualScrolling: false,
                showRecordComponents: true,
                showRecordComponentsByCell: true,
                canRemoveRecords: true,
                recordComponentPoolingMode: "recycle",
                groupByField: "category",
                initialCriteria: {
                    _constructor: "AdvancedCriteria",
                    operator: "and",
                    criteria: [{
                        fieldName: "SKU",
                        operator: "startsWith",
                        value: "1"
                    }]
                },
                fields: [{
                        name: "itemID"
                    },
                    {
                        name: "itemName"
                    },
                    {
                        name: "SKU"
                    },
                    {
                        name: "description"
                    },
                    {
                        name: "category"
                    },
                    {
                        name: "units"
                    },
                    {
                        name: "unitCost"
                    },
                    {
                        name: "inStock"
                    },
                    {
                        name: "nextShipment"
                    },
                    {
                        name: "buttonField",
                        title: "Info",
                        align: "center"
                    },
                    {
                        name: "iconField",
                        title: "Comments/Stats",
                        width: 110
                    }
                ]
            })
        ],
        createRecordComponent: function(record, colNum) {
            var fieldName = this.getFieldName(colNum);
    
            if (fieldName == "iconField") {
                var recordCanvas = isc.HLayout.create({
                    height: 22,
                    width: "100%",
                    align: "center"
                });
    
                var editImg = isc.ImgButton.create({
                    showDown: false,
                    showRollOver: false,
                    layoutAlign: "center",
                    src: "icons/16/comment_edit.png",
                    prompt: "Edit Comments",
                    height: 16,
                    width: 16,
                    grid: this,
                    click: function() {
                        isc.say("Edit Comment Icon Clicked for country : " + record["countryName"]);
                    }
                });
    
                var chartImg = isc.ImgButton.create({
                    showDown: false,
                    showRollOver: false,
                    layoutAlign: "center",
                    src: "icons/16/chart_bar.png",
                    prompt: "View Chart",
                    height: 16,
                    width: 16,
                    grid: this,
                    click: function() {
                        isc.say("Chart Icon Clicked for country : " + record["countryName"]);
                    }
                });
    
                recordCanvas.addMember(editImg);
                recordCanvas.addMember(chartImg);
                return recordCanvas;
            } else if (fieldName == "buttonField") {
                var button = isc.IButton.create({
                    height: 26,
                    width: 65,
                    layoutAlign: "center",
                    icon: "flags/16/" + record["countryCode"] + ".png",
                    title: "Info",
                    click: function() {
                        isc.say(record["countryName"] + " info button clicked.");
                    }
                });
                return button;
            } else {
                return null;
            }
        },
    
        updateRecordComponent: function(record, colNum, component, recordChanged) {
            var fieldName = this.getFieldName(colNum);
            if (fieldName == "iconField") {
                var membersArray = component.getMembers();
                for (i = 0; i < membersArray.size; i++) {
                    if (i == 0) {
                        membersArray[i].addProperties({
                            click: function() {
                                isc.say("Edit Comment Icon Clicked for country : " + record["countryName"]);
                            }
                        });
                    } else {
                        membersArray[i].addProperties({
                            click: function() {
                                isc.say("Chart Icon Clicked for country : " + record["countryName"]);
                            }
                        });
                    }
                }
            } else if (fieldName == "buttonField") {
                component.addProperties({
                    icon: "flags/16/" + record["countryCode"] + ".png",
                    click: function() {
                        isc.say(record["countryName"] + " info button clicked.");
                    }
                });
            } else {
                return null;
            }
            return component;
        }
    
    });
    Click image for larger version  Name:	Broken filterRow at bottom.gif Views:	1 Size:	82.5 KB ID:	256786

    Best regards
    Blama

    Leave a comment:


  • Isomorphic
    replied
    We're not reproducing this - does your code install a custom canEditCriterion() into field.filterEditorProperties?

    If you can show the config for the grid in question, or at least the field properties for the failing field, and perhaps describe which steps reproduce the issue, we'll take another look.

    Leave a comment:

Working...
X