In Ext.grid.column.Action#updater the call to #defaultRenderer is missing some arguments.

At line 312 in Action.js:


Code:



updater: function(cell, value) {
var cellValues = {};
cell.firstChild.innerHTML = Ext.grid.column.Action.prototype.defaultRenderer.call(this, value, cellValues);
Ext.fly(cell).addCls(cellValues.tdCls);
},

The call to defaultRenderer only passes 2 arguments, while defaultRenderer takes 7: value, cellValues, record, rowIdx, colIdx, store and view. See line 273 in the same class:


Code:



defaultRenderer: function(v, cellValues, record, rowIdx, colIdx, store, view){ ...

This can cause an exception when defaultRenderer passes its arguments to the isDisabled function where operations on view, item or record could be taking place.

Fiddle: http://ift.tt/1lOuy3w


Issue that could also be related to this: http://ift.tt/1q8Ogrr


Ext version tested:



  • Ext 5.0.0 rev 970 (fails)

  • Ext 5.0.0 rev 736 (works)




Browser versions tested against:

Chrome version 35.0.1916.153 m

Description:

Assuming an Ext.grid.Panel has:



  • a store with autoSync = true;

  • an actioncolumn with an isDisabled function;

  • that isDisabled function check the record for certain data,


when i edit a cell in the grid:

  • the grid store is updated immediately, because autoSync = true;

  • the grid's table view starts handling the update;

  • the table view calls the actioncolumn updater function;

  • the updater function only passes the value and cellValues arguments to the actioncolumn's defaultRenderer function;

  • the defaultRenderer calls the actioncolumn item isDisabled function with many argument values being undefined

  • the isDisabled function, expecting a record, calls record.get and throws an exception




Steps to reproduce the problem:

The result that was expected:

No exceptions


The result that occurs instead:

'Uncaught TypeError: Cannot read property 'get' of undefined' @ isDisabled