SNAPSHOT_v9.1d_2013-10-17/PowerEdition Deployment (built 2013-10-17)
We are seeing what we think is a bug in calling canEdit() that only seems to present itself in fully deployed environments and not in development mode.
We have our own custom IpListGrid, which extends ListGrid. The instance in question has a context menu where clicking the menu items fails without returning any errors.
By tracing through the Javascript, we see that the menu items' click handlers make calls to a method that belongs to IpListGrid, which begins as follows:
You will see that in this method we make a call to canEditCell(). When I trace through the JavaScript I see that when we call canEditCell() the code goes through some hoops and ends up trying to make a call to the __canEditCell(() method on our object.
However, this method does not exist, whereas canEditCell() (i.e., without the double underscore prefix) does. Looking further, we see that the prior call to getSelectedRecords() is called in a similar fashion, but correctly omits the double underscore prefix.
I have attached an image of the Chrome debugger showing the point at which the failure occurs. In that image you will see that c.canEditCell() resolves correctly, whereas c.__canEditCell() is unresolved.
Is this enough information for you to identify whether or not there is an issue here?
Thanks,
Gary O'Donnell
We are seeing what we think is a bug in calling canEdit() that only seems to present itself in fully deployed environments and not in development mode.
We have our own custom IpListGrid, which extends ListGrid. The instance in question has a context menu where clicking the menu items fails without returning any errors.
By tracing through the Javascript, we see that the menu items' click handlers make calls to a method that belongs to IpListGrid, which begins as follows:
Code:
public void editSelectedRecords(final EditSelectedRecordsCallback callback, final Boolean skipSaveAll) { // Count the records that have at least one editable field. // Build a list of selected rows that cannot be edited so we can de-select them. RecordList rowsToDeselect = new RecordList(); int rowCountToUpdate = 0; for (int s=0; s<getSelectedRecords().length; s++) { ListGridRecord selectedRecord = getSelectedRecords()[s]; int rowNum = getRecordIndex(selectedRecord); boolean canEditRow = false; for (int colNum=0; colNum<getFields().length; colNum++) { if (canEditCell(rowNum, colNum)) { canEditRow = true; rowCountToUpdate += 1; break; } } . . . etc...
However, this method does not exist, whereas canEditCell() (i.e., without the double underscore prefix) does. Looking further, we see that the prior call to getSelectedRecords() is called in a similar fashion, but correctly omits the double underscore prefix.
I have attached an image of the Chrome debugger showing the point at which the failure occurs. In that image you will see that c.canEditCell() resolves correctly, whereas c.__canEditCell() is unresolved.
Is this enough information for you to identify whether or not there is an issue here?
Thanks,
Gary O'Donnell
Comment