One of Intermesh's customers reported bug in Billing module when you use multiline description for quoted items.

In this case problem is in celleditor which have incorrectly set multiple options:

  • width: 500 - This is probably required option. Author wanted wide textarea.
  • height: 150 - Author does not count with flexible rows

However when you take a look at source code you will see one big issue - textarea element inside ComboBox:

this.descriptionField = new GO.form.ComboBox({
    width : 500,
    height :150,
    displayField : 'name',
    valueField : 'name',
    defaultAutoCreate : {
        tag : "textarea",
        autocomplete : "off",
        rows : 5
    },
    hideTrigger : true,
    minChars : 3,
    triggerAction : 'all',
    allowBlank :true,
    store : new GO.data.JsonStore({
        url : GO.url("billing/product/store"),
        fields : ['id', 'name']
    }),
    fieldLabel : GO.lang.strDescription
}),{
    autoSize : false,
    completeOnEnter : false // <- enter will stop editing if not set
})

This nice feature dont allow flexible height so author simply set rows to 5. I played with this code for a while and found tricky solution:

...
autoSize: true, //this will expand celleditor to whole cell so if you need wider editor you need resize the column
completeOnEnter: false // <- enter will stop editing if not set
,grid: this
,listeners: {
    beforeshow: function(editor) {
        //get row height
        var rowHeight = Ext.fly(editor.grid.getView().getRow(editor.row)).getHeight();
        //check if height isnt too small - similar to rows 5
        if (rowHeight < 100) {
            rowHeight = 100;
        }
        //set height to textarea element
        editor.field.el.setHeight(rowHeight);
    }
}
...