{ initComponent: function(){ // calling superclass's initComponent this.callParent(); //due to Netzke bug, :min_chars attribute doesn't work var min_char_columns = ["bike__shop_id"] Ext.each(min_char_columns, function(column, index) { Ext.ComponentManager.get(column).editor.minChars = 1; }); this.getView().on('itemclick', function(view, record){ // The beauty of using Ext.Direct: calling 3 endpoints in a row, which results in a single call to the server! this.selectCustomer({customer_id: record.get('id'), customer_type: 'User'}); }, this); }, onResetPassword: function(record){ user = record.data; Ext.Msg.confirm( "Reset Password", "Are you sure you want to reset "+user.first_name+" "+user.last_name+"'s password?", function(butt_id){ if( butt_id === "yes" ){ $.ajax({ type: 'POST', url: '/api/v1/reset', dataType: 'json', contentType: 'application/json', processData: false, data: JSON.stringify({"user_id": user.id}), complete: function() { }, success: function(data) { Ext.Msg.alert("Success", "New Password: "+data.password); }, error: function(data,textStatus) { Ext.Msg.alert( "Error", JSON.parse(data.responseText)["errors"][0]); } }); } }); } }