Results 1 to 8 of 8

Thread: standard selection issues with 2 grid drag and drop example

    You found a bug! We've classified it as EXTJS-5848 . We encourage you to continue the discussion and to find an acceptable workaround while we work on a permanent fix.
  1. #1
    Ext JS Premium Member
    Join Date
    Mar 2009
    Posts
    201

    Default standard selection issues with 2 grid drag and drop example

    REQUIRED INFORMATIONExt version tested:
    • Ext 4.1 RC2 and prior (all the way to 4.0.2)
    Browser versions tested against:
    • FF11
    Description:
    • After selection of multiple rows and clicking one of the selected rows, the clicked row is not being selected (and the other rows are not deselected) when using the drag and drop plugin (ptype: 'gridviewdragdrop').
    Steps to reproduce the problem:
    • select several rows (either by shift select or control/command collect)
    • release the shift, control, or command (whatever you were using )
    • ?select one of the already selected rows
    The result that was expected:
    • the single row clicked would be selected and all the others would be deselected
    The result that occurs instead:
    • there is no change even though the user clicks the row. it seems the itemmousedown event fails to fire for the plugin
    Test Case:
    this is the dnd_grid_to_grid example
    Code:
     
    Ext.require([
        'Ext.grid.*',
        'Ext.data.*',
        'Ext.dd.*'
    ]);
    
    
    Ext.define('DataObject', {
        extend: 'Ext.data.Model',
        fields: ['name', 'column1', 'column2']
    });
    
    
    Ext.onReady(function(){
    
    
        var myData = [
            { name : "Rec 0", column1 : "0", column2 : "0" },
            { name : "Rec 1", column1 : "1", column2 : "1" },
            { name : "Rec 2", column1 : "2", column2 : "2" },
            { name : "Rec 3", column1 : "3", column2 : "3" },
            { name : "Rec 4", column1 : "4", column2 : "4" },
            { name : "Rec 5", column1 : "5", column2 : "5" },
            { name : "Rec 6", column1 : "6", column2 : "6" },
            { name : "Rec 7", column1 : "7", column2 : "7" },
            { name : "Rec 8", column1 : "8", column2 : "8" },
            { name : "Rec 9", column1 : "9", column2 : "9" }
        ];
    
    
        // create the data store
        var firstGridStore = Ext.create('Ext.data.Store', {
            model: 'DataObject',
            data: myData
        });
    
    
    
    
        // Column Model shortcut array
        var columns = [
            {text: "Record Name", flex: 1, sortable: true, dataIndex: 'name'},
            {text: "column1", width: 70, sortable: true, dataIndex: 'column1'},
            {text: "column2", width: 70, sortable: true, dataIndex: 'column2'}
        ];
    
    
        // declare the source Grid
        var firstGrid = Ext.create('Ext.grid.Panel', {
            multiSelect: true,
            viewConfig: {
                plugins: {
                    ptype: 'gridviewdragdrop',
                    dragGroup: 'firstGridDDGroup',
                    dropGroup: 'secondGridDDGroup'
                },
                listeners: {
                    drop: function(node, data, dropRec, dropPosition) {
                        var dropOn = dropRec ? ' ' + dropPosition + ' ' + dropRec.get('name') : ' on empty view';
                        Ext.example.msg("Drag from right to left", 'Dropped ' + data.records[0].get('name') + dropOn);
                    }
                }
            },
            store            : firstGridStore,
            columns          : columns,
            stripeRows       : true,
            title            : 'First Grid',
            margins          : '0 2 0 0'
        });
    
    
        var secondGridStore = Ext.create('Ext.data.Store', {
            model: 'DataObject'
        });
    
    
        // create the destination Grid
        var secondGrid = Ext.create('Ext.grid.Panel', {
            viewConfig: {
                plugins: {
                    ptype: 'gridviewdragdrop',
                    dragGroup: 'secondGridDDGroup',
                    dropGroup: 'firstGridDDGroup'
                },
                listeners: {
                    drop: function(node, data, dropRec, dropPosition) {
                        var dropOn = dropRec ? ' ' + dropPosition + ' ' + dropRec.get('name') : ' on empty view';
                        Ext.example.msg("Drag from left to right", 'Dropped ' + data.records[0].get('name') + dropOn);
                    }
                }
            },
            store            : secondGridStore,
            columns          : columns,
            stripeRows       : true,
            title            : 'Second Grid',
            margins          : '0 0 0 3'
        });
    
    
        //Simple 'border layout' panel to house both grids
        var displayPanel = Ext.create('Ext.Panel', {
            width        : 650,
            height       : 300,
            layout       : {
                type: 'hbox',
                align: 'stretch',
                padding: 5
            },
            renderTo     : 'panel',
            defaults     : { flex : 1 }, //auto stretch
            items        : [
                firstGrid,
                secondGrid
            ],
            dockedItems: {
                xtype: 'toolbar',
                dock: 'bottom',
                items: ['->', // Fill
                {
                    text: 'Reset both grids',
                    handler: function(){
                        //refresh source grid
                        firstGridStore.loadData(myData);
    
    
                        //purge destination grid
                        secondGridStore.removeAll();
                    }
                }]
            }
        });
    });

  2. #2
    Sencha Premium User mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    40,448

    Default

    Thanks for the report. Also happening in Chrome 18
    Mitchell Simoens @LikelyMitch

    Check out my GitHub:
    https://github.com/mitchellsimoens

    Posts are my own, not any current, past or future employer's.

  3. #3
    Ext JS Premium Member
    Join Date
    Mar 2009
    Posts
    201

    Default

    any override suggestions on this one since it is not reported as fixed in the 4.1 release notes?

  4. #4
    Sencha Premium User mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    40,448

    Default

    Quote Originally Posted by rspaeth View Post
    any override suggestions on this one since it is not reported as fixed in the 4.1 release notes?
    This thread is still marked as open so the bug report is open
    Mitchell Simoens @LikelyMitch

    Check out my GitHub:
    https://github.com/mitchellsimoens

    Posts are my own, not any current, past or future employer's.

  5. #5
    Ext JS Premium Member
    Join Date
    Mar 2009
    Posts
    201

    Default

    yes, thank you for opening it. I was trying to find an acceptable workaround as the top of the bug recommends.

    "You found a bug! We've classified it as EXTJSIV-5848 . We encourage you to continue the discussion and to find an acceptable workaround while we work on a permanent fix."

  6. #6
    Ext JS Premium Member anton.dimitrov's Avatar
    Join Date
    Nov 2011
    Location
    The Netherlands
    Posts
    134

    Default

    Did you manage to find a suitable workaround for this bug ?

    @mitchellsimoens

    Could you please give us some more info for the status of the bug? When is it scheduled to be fixed?

  7. #7
    Ext JS Premium Member
    Join Date
    Mar 2009
    Posts
    201

    Default

    Quote Originally Posted by anton.dimitrov View Post
    Did you manage to find a suitable workaround for this bug ?

    @mitchellsimoens

    Could you please give us some more info for the status of the bug? When is it scheduled to be fixed?
    I have not attempted yet. Let me know if you come up with something

  8. #8
    Ext JS Premium Member anton.dimitrov's Avatar
    Join Date
    Nov 2011
    Location
    The Netherlands
    Posts
    134

    Default

    This is a lazy work-around , forcing the user to select the record with double click if the selected records are more than one. however it is unacceptable to use it as a long term solution.

    Code:
    grid.on('beforeitemdblclick',function(view,record){
            if(view.getSelectionModel().getSelection().length > 1){
                view.select(record);
            }
        });

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •