Ext.ns("Rebul.Item"); Rebul.Item.Edit = function(config){ this.config = config || {}; this.config.intID = this.config.intID || 0; this.config.orderID = this.config.orderID || 0; this.config.tablename = this.config.tablename || 'cart'; this.config.ts = this.config.ts || {}; this.config.clientID = this.config.clientID || 0; this.config.url = this.config.tablename == 'cart' ? 'viewcart.cfm?intID=' + this.config.intID : 'viewcart_saved.cfm?intID=' + this.config.intID + '&orderID=' + this.config.orderID; if(this.config.o2) this.config.o2 = decodeURI(this.config.o2); Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side'; var cardNav = function(incr){ var p = Ext.getCmp('item-panel'); var l = p.getLayout(); var i = l.activeItem.id.split('card-')[1]; var next = parseInt(i) + incr; if (next == 2) { this.submitForm(); //this.getPricing(); //this.setPanelTitle(2); } else { this.setPanelTitle(next); l.setActiveItem(next); Ext.getCmp('btn-prev').setDisabled(next == 0); Ext.getCmp('btn-next').setDisabled(next == 2); Ext.getCmp('btn-next').setVisible(next == 0); Ext.getCmp('btn-add').setVisible(next == 1); } p.doLayout(); }; var toggleTemplate = function(e){ var el = Ext.getCmp('obj-template-container'); var val = e.getGroupValue(); if (val !== null) { if (Number(val) == 2) { el.setVisible(true); Ext.getCmp('obj-wrapping').setValue(60); } else{ el.setVisible(false); Ext.getCmp('obj-wrapping').setValue(30); } } }; var jsonReader = new Ext.data.JsonReader({ root: 'data' }, [{ name: 'TXTTITLE', type: 'string' }, { name: 'INTID', type: 'int' }, { name: 'INTORDERID', type: 'int' }, { name: 'INTCRATETYPEID', type: 'int' }, { name: 'INTCRATETEMPLATEID', type: 'int' }, { name: 'INTWRAPPING', type: 'int' }, { name: 'INTQUANTITY', type: 'int' }, { name: 'TXTOBJWEIGHT', type: 'string' }, { name: 'FLTCRATEWEIGHT', type: 'float' }, { name: 'FLTUNITPRICE', type: 'float' }, { name: 'FLTTOTALPRICE', type: 'float' }, { name: 'FLTOBJLENGTH', type: 'float' }, { name: 'FLTOBJWIDTH', type: 'float' }, { name: 'FLTOBJHEIGHT', type: 'float' }, { name: 'FLTINTLENGTH', type: 'float' }, { name: 'FLTINTWIDTH', type: 'float' }, { name: 'FLTINTHEIGHT', type: 'float' }, { name: 'FLTEXTLENGTH', type: 'float' }, { name: 'FLTEXTWIDTH', type: 'float' }, { name: 'FLTEXTHEIGHT', type: 'float' }, { name: 'FLTFLTLENGTH', type: 'float' }, { name: 'FLTFLTWIDTH', type: 'float' }, { name: 'FLTFLTHEIGHT', type: 'float' }, { name: 'INTCLIENTID', type: 'int' }, { name: 'BLNDELETED', type: 'boolean' }] ); Rebul.Item.Edit.superclass.constructor.call(this, { id: 'item-panel', title: 'Add Crate (Step 1 of 2)', layout: 'card', activeItem: 0, width: 800, height: 370, border: true, frame: true, buttonAlign: 'center', url: 'jsonPricing.cfm', method: 'post', reader: jsonReader, buttons: [{ id: 'btn-prev', text: '« Previous', handler: cardNav.createDelegate(this, [-1]), disabled: true }, { id: 'btn-next', text: 'Next »', handler: cardNav.createDelegate(this, [1]) }, { id: 'btn-add', text: 'Get Price', iconCls: 'addCart', hidden: true, tooltip: 'Save item to your shopping cart. Note: you will have the option to save your cart for later.', handler: this.submitForm.createDelegate(this) }], items: [{ ////////////////////////////////////// ////////////////////////////////////// /// Card 0, Step 1 of Wizard // ////////////////////////////////////// ////////////////////////////////////// id: 'card-0', layout: 'table', cls: 'divToCenter', defaults: { bodyStyle: 'text-align:center', border: false }, layoutConfig: { columns: 2 }, items: [{ html: ' ', cls: 'crateStandard' }, /*{ html: ' ', cls: 'crateLite' },*/ { html: ' ', cls: 'crateSpecialty' }, { items: { ////////////////////////////// // "Standard" crate type radio field ////////////////////////////// xtype: 'radio', name: 'INTCRATETYPEID', boxLabel: 'Standard Crate', inputValue: 1, checked: true, listeners: { 'check': function(){ toggleTemplate(this); } } } }, /* { items: { ////////////////////////////// // "Lite" crate type radio field ////////////////////////////// xtype: 'radio', name: 'INTCRATETYPEID', boxLabel: 'Lite Crate', inputValue: 3, listeners: { 'check': function(){ toggleTemplate(this); } } } },*/ { items: { ////////////////////////////// // "Specialty" crate type radio field ////////////////////////////// xtype: 'radio', name: 'INTCRATETYPEID', boxLabel: 'Specialty Crate', inputValue: 2, listeners: { 'check': function(){ toggleTemplate(this); } } } }] }, { ////////////////////////////////////// ////////////////////////////////////// /// Card 1, Step 2 of Wizard // ////////////////////////////////////// ////////////////////////////////////// id: 'card-1', bodyStyle: 'padding-top:20px', items: [{ xtype: 'fieldset', title: 'Object Information', cls: 'divToCenter', width:550, autoHeight: true, defaults: { layout: 'form',baseCls:'x-plain' }, items: [{ id: 'obj-template-container', height: 30, labelWidth:123, defaults:{width:356}, hidden: true, items: { ////////////////////////////// // "Specialty Crate" combo box ////////////////////////////// xtype: 'combo', listWidth: 356, fieldLabel: 'Specialty Crate', id: 'obj-template', hiddenName: 'INTCRATETEMPLATEID', store: this.config.ts, displayField: 'title', valueField: 'id', forceSelection: true, allowBlank: true, emptyText: 'Other', triggerAction: 'all', emptyValue: 0, mode: 'local', listeners: { "select": function(){ Ext.getCmp('obj-title').setValue(Ext.getDom('obj-template').value); } } } }, { height: 30, labelWidth:123, defaults:{width:373}, items: { ////////////////////////////// // "Object Description textfield ////////////////////////////// xtype: 'textfield', id: 'obj-title', fieldLabel: 'Object Description', name: 'TXTTITLE', allowBlank: false } }, { xtype:'panel', layout: 'column', defaults: {width: 128,layout:'form',baseCls:'x-plain',height: 30,labelWidth: 45}, items: [{ defaults:{width:50}, items: { ////////////////////////////// // "Object Length" numberfield ////////////////////////////// id: 'obj-length', xtype: 'numberfield', fieldLabel: 'Length', name: 'FLTOBJLENGTH', allowBlank: false } }, { defaults:{width:50}, items: { ////////////////////////////// // "Object Width" numberfield ////////////////////////////// id: 'obj-width', xtype: 'numberfield', fieldLabel: 'Width', name: 'FLTOBJWIDTH', allowBlank: false } }, { defaults:{width:50}, items: { ////////////////////////////// // "Object Height" numberfield ////////////////////////////// id: 'obj-height', xtype: 'numberfield', fieldLabel: 'Height', name: 'FLTOBJHEIGHT', allowBlank: false } }, { defaults:{width:49}, items: { ////////////////////////////// // "Units of Measurement" combobox ////////////////////////////// id: 'obj-unit', xtype: 'combo', fieldLabel: 'Units', name: 'TXTUNIT', value: 'mm', store: ['mm', 'cm'], triggerAction: 'all', editable: false, mode: 'local' } }] }, { height: 30, labelWidth:173, defaults:{width:356}, items: { ////////////////////////////// // "Wrapping" combo box ////////////////////////////// id: 'obj-wrapping', xtype: 'combo', listWidth:144, fieldLabel: 'Wrapping tolerance (mm)', name: 'INTWRAPPING', allowBlank: false, value: '30', store: ['0', '10', '20', '30', '40', '50', '60', '70', '80', '90', '100', '125', '150', '200'], editable: false, triggerAction: 'all', mode: 'local', helpText: 'The additional space allowance for wrapping and packing, on top of the provided object dimensions.', afterRender: function(){ var label = findLabel(this); var helpImage = label.createChild({ tag:'img', src:'http://img.bokkaassets.com/fam/information.png', style:'float:right;margin:-14px 4px 0 0;padding:0;', width:16, height:16 }); Ext.QuickTips.register({ target:helpImage, text:this.helpText, enabled:true }); this.setValue(30); } } },{ height: 30, labelWidth:173, defaults:{width:306}, items: { ////////////////////////////// // "Object Weight" combo box ////////////////////////////// id: 'obj-weight', xtype: 'combo', width:147, listWidth:144, fieldLabel: 'Object Weight', name: 'TXTOBJWEIGHT', allowBlank: false, value: '0-50 kg', store: ['0-50 kg', '51-100 kg', '101-200 kg', 'over 200 kg'], editable: false, triggerAction: 'all', mode: 'local' } }, { height: 30, labelWidth:173, defaults:{width:306}, items: { ////////////////////////////// // "Quantity" combo box ////////////////////////////// id: 'obj-quantity', xtype: 'combo', width:147, listWidth: 144, fieldLabel: 'Crate Quantity', name: 'INTQUANTITY', allowBlank: false, value: 1, store: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], editable: true, forceSelection: false, typeAhead: false, triggerAction: 'all', mode: 'local' } }, { id: 'obj-unitPrice', xtype: 'hidden', name: 'FLTUNITPRICE' }, { id: 'obj-totalPrice', xtype: 'hidden', name: 'FLTTOTALPRICE', value: 0 }, { xtype: 'hidden', name: 'INTID', value: 0 }, { xtype: 'hidden', name: 'INTORDERID', value: 0 }, { id: 'il', xtype: 'hidden', name: 'FLTINTLENGTH' }, { id: 'iw', xtype: 'hidden', name: 'FLTINTWIDTH' }, { id: 'ih', xtype: 'hidden', name: 'FLTINTHEIGHT' }, { id: 'el', xtype: 'hidden', name: 'FLTEXTLENGTH' }, { id: 'ew', xtype: 'hidden', name: 'FLTEXTWIDTH' }, { id: 'eh', xtype: 'hidden', name: 'FLTEXTHEIGHT' }, { id: 'fl', xtype: 'hidden', name: 'FLTFLTLENGTH' }, { id: 'fw', xtype: 'hidden', name: 'FLTFLTWIDTH' }, { id: 'fh', xtype: 'hidden', name: 'FLTFLTHEIGHT' }, { xtype: 'hidden', name: 'INTCLIENTID', value: this.config.clientID || 0 }] }] }, { ////////////////////////////////////// ////////////////////////////////////// /// Card 2, Step 3 of Wizard // ////////////////////////////////////// ////////////////////////////////////// id: 'card-2', bodyStyle: 'padding-top:20px', border: true, items: [{ xtype: 'fieldset', title: 'Summary', width: 550, cls: 'divToCenter', autoHeight: true, items: [{ items: [{ html: '' + '' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + '
Crate Type:
Object Description:
Object Dimensions (mm):
Object Weight:
Wrapping Tolerance:
Quantity:
Unit Price (excl GST):
Total Price (excl GST):
' }] }] }] }] }); }; Ext.extend(Rebul.Item.Edit, Ext.FormPanel, { afterRender: function(){ Rebul.Item.Edit.superclass.afterRender.call(this); if (this.config.intID) { this.form.load({ url: 'jsonGateway.cfm?tablename=' + this.config.tablename + '&intID=' + this.config.intID, waitMsg: 'Loading Item' }); } }, setPanelTitle: function(v){ this.setTitle('Add Crate (Step ' + (v + 1) + ' of 2)'); }, getPricing: function(){ if (this.form.isValid()) { this.form.submit({ url: this.url, method: 'post', scope: this, waitMsg: 'Retrieving Price...', failure: function(form, action){ Ext.MessageBox.alert('Error', 'The price could not be retrieved as planned.'); }, success: function(form, action){ var cardNext = Ext.getCmp('btn-next'); var add2Cart = Ext.getCmp('btn-add'); var crateType = Number(this.getForm().findField('INTCRATETYPEID').getGroupValue()); var crateText = ''; this.getForm().setValues(action.result.data); if (crateType == 1) { crateText = 'Standard'; } else if (crateType == 3) { crateText = 'Lite'; } else if (crateType == 2) { crateText = 'Specialty (' + Ext.fly('obj-template').getValue() + ')'; }; Ext.getDom('txtObjCrateType').innerHTML = crateText; Ext.getDom('txtObjDescription').innerHTML = Ext.fly('obj-title').getValue(); Ext.getDom('txtObjDimensions').innerHTML = 'Length: ' + Ext.fly('obj-length').getValue() + ' | Width: ' + Ext.fly('obj-width').getValue() + ' | Height: ' + Ext.fly('obj-height').getValue(); Ext.getDom('txtObjWeight').innerHTML = Ext.fly('obj-weight').getValue(); Ext.getDom('txtObjWrapping').innerHTML = Ext.fly('obj-wrapping').getValue(); Ext.getDom('txtObjQuantity').innerHTML = Ext.fly('obj-quantity').getValue(); Ext.getDom('txtObjUnitPrice').innerHTML = Ext.util.Format.usMoney(Ext.fly('obj-unitPrice').getValue()); Ext.getDom('txtObjTotalPrice').innerHTML = Ext.util.Format.usMoney(Ext.fly('obj-totalPrice').getValue()); //Ext.getDom('intDim').innerHTML = Ext.fly('il').getValue() + ' x ' + Ext.fly('iw').getValue() + ' x ' + Ext.fly('ih').getValue(); //Ext.getDom('extDim').innerHTML = Ext.fly('el').getValue() + ' x ' + Ext.fly('ew').getValue() + ' x ' + Ext.fly('eh').getValue(); //Ext.getDom('fltDim').innerHTML = Ext.fly('fl').getValue() + ' x ' + Ext.fly('fw').getValue() + ' x ' + Ext.fly('fh').getValue(); cardNext.setDisabled(true); add2Cart.setVisible(true); this.getLayout().setActiveItem(2); } }); } else{ Ext.MessageBox.alert('Sorry', 'There are fields on the form that still required your attention.'); } }, submitForm: function(){ if (this.form.isValid()) { this.standardSubmit = true; if (this.getForm().findField('INTORDERID').getValue() == 0) { this.getForm().findField('INTORDERID').setValue(this.config.orderID); } this.getForm().getEl().dom.action = this.config.url; this.getForm().getEl().dom.submit(); } else { Ext.MessageBox.alert('Sorry', 'There are fields on the form that still required your attention.'); } } }); Rebul.Item.List = function(config){ this.myPageSize = 8; this.config = config || {}; this.config.orderID = this.config.orderID || 0; this.config.tablename = this.config.tablename || 'cart'; this.config.url = this.config.tablename == 'cart' ? 'viewcart.cfm' : 'viewcart_saved.cfm'; var selectBoxModel = new Ext.grid.CheckboxSelectionModel(); selectBoxModel.on('selectionchange', function(sm){ if (sm.getSelections().length > 0) { Ext.getCmp('item-delete-button').enable(); if (sm.getSelections().length == 1) { Ext.getCmp('item-edit-button').enable(); } else { Ext.getCmp('item-edit-button').disable(); } } else { Ext.getCmp('item-delete-button').disable(); Ext.getCmp('item-edit-button').disable(); } }, this); var menubar = [{ id: 'item-add-button', text: 'Add Crate', tooltip: 'Add Crate', iconCls: 'addItem', config: this.config, handler: function(){ location.href = 'additem.cfm?tablename=' + this.config.tablename + '&orderID=' + this.config.orderID; } }, '-', { id: 'item-edit-button', text: 'Edit Crate', tooltip: 'Edit the selected item', iconCls: 'editItem', config: this.config, disabled: true, handler: function(){ var record = Ext.getCmp('item-grid').getSelectionModel().getSelected(); location.href = 'additem.cfm?tablename=' + this.config.tablename + '&orderID=' + this.config.orderID + '&intID=' + record.id; } }, '-', { id: 'item-delete-button', text: 'Delete Crate', tooltip: 'Delete the selected item', iconCls: 'remove', config: this.config, disabled: true, handler: function(){ var record = Ext.getCmp('item-grid').getSelectionModel().getSelected(); location.href = this.config.url + '?deleteID=' + record.id; } }]; this.dataStore = new Rebul.Store({ url: 'jsonGateway.cfm?tablename=' + config.tablename + '&orderID=' + config.orderID, fields: [{ name: 'INTID', type: 'int' }, { name: 'INTORDERID', type: 'int' }, { name: 'INTCLIENTID', type: 'int' }, { name: 'INTCRATETYPEID', type: 'int' }, { name: 'INTCRATETEMPLATEID', type: 'int' }, { name: 'INTWRAPPING', type: 'int' }, { name: 'INTQUANTITY', type: 'int' }, { name: 'INTORDERQUANTITY', type: 'int' }, { name: 'TXTTITLE', type: 'string' }, { name: 'TXTOBJWEIGHT', type: 'string' }, { name: 'FLTORDERPRICE', type: 'float' }, { name: 'FLTCRATEWEIGHT', type: 'float' }, { name: 'FLTUNITPRICE', type: 'float' }, { name: 'FLTTOTALPRICE', type: 'float' }, { name: 'FLTOBJLENGTH', type: 'float' }, { name: 'FLTOBJWIDTH', type: 'float' }, { name: 'FLTOBJHEIGHT', type: 'float' }, { name: 'FLTINTLENGTH', type: 'float' }, { name: 'FLTINTWIDTH', type: 'float' }, { name: 'FLTINTHEIGHT', type: 'float' }, { name: 'FLTEXTLENGTH', type: 'float' }, { name: 'FLTEXTWIDTH', type: 'float' }, { name: 'FLTEXTHEIGHT', type: 'float' }, { name: 'FLTFLTLENGTH', type: 'float' }, { name: 'FLTFLTWIDTH', type: 'float' }, { name: 'FLTFLTHEIGHT', type: 'float' }] }); this.dataStore.load({ loadMask: { msg: 'Loading Items' } }); this.dataStore.on('load',function(){ if(this.getTotalCount()){ if(Ext.getCmp('btnSave')){ Ext.getCmp('btnSave').enable(); } if(Ext.getCmp('btnOrder')){ Ext.getCmp('btnOrder').enable(); } } }); Rebul.Item.List.superclass.constructor.call(this, { id: 'item-grid', width: 800, autoHeight: true, title: 'My Cart', ds: this.dataStore, sm: selectBoxModel, waitMsg: 'Loading items', tbar: menubar, bbar: new Ext.Toolbar({ autoHeight: true, items: ['->', { xtype: 'tbtext', text: '
$0
' }] }), enableColumnHide: false, stripeRows: true, columns: [{ id: 'id', header: 'Identify', dataIndex: 'INTID', hidden: true }, { header: 'Crate Info', dataIndex: 'INFO', width:58, sortable:false, align:'center', renderer:this.infoRenderer.createDelegate(this) }, { header: 'Object Description', dataIndex: 'TXTTITLE', width: 179, sortable: true }, { header: 'Object Length (mm)', dataIndex: 'FLTOBJLENGTH', width: 104, sortable: true, align: 'right' }, { header: 'Object Width (mm)', dataIndex: 'FLTOBJWIDTH', width: 99, sortable: true, align: 'right' }, { header: 'Object Height (mm)', dataIndex: 'FLTOBJHEIGHT', width: 102, sortable: true, align: 'right' }, { header: 'Wrapping (mm)', dataIndex: 'INTWRAPPING', width: 86, sortable: true, align: 'right' }, { header: 'Quantity', dataIndex: 'INTQUANTITY', width: 52, sortable: true, align: 'right' }, { header: 'Unit Price (excl GST)', dataIndex: 'FLTUNITPRICE', width: 115, sortable: false, renderer: 'usMoney', align: 'right' }] }); this.on('rowdblclick', function(gridPanel, rowIndex, e){ var selectedId = this.dataStore.data.items[rowIndex].id; location.href = 'additem.cfm?tablename=' + this.config.tablename + '&orderID=' + this.config.orderID + '&intID=' + selectedId; }); this.on('beforerender', this.beforeRenderTasks); this.getView().on('beforerefresh',this.setTotal); }; Ext.extend(Rebul.Item.List, Ext.grid.GridPanel, { beforeRenderTasks: function(){ this.setTotal(); if (this.config.tablename !== 'cart') { Ext.getCmp('item-grid').setTitle('Viewing Cart: ' + this.config.reference); } }, setTotal: function(){ var el = Ext.getCmp('item-grid'); if (el.store.getAt(0) !== undefined) { var totalVal = el.store.getAt(0).get('FLTORDERPRICE') || 0; Ext.getDom('bbarText').innerHTML = 'Total Price (excl GST): ' + Ext.util.Format.usMoney(totalVal); } }, saveCart: function(config){ config = config || {}; new Rebul.Item.Window(config); }, placeOrder:function(config){ config = config || {}; config.status = 'order'; new Rebul.Item.Window(config); }, infoRenderer: function(val, cell, record){ var data = record.data; var qtip = this.qtipTpl.apply(data); return '
 
'; }, qtipTpl:new Ext.XTemplate( '

                               Crate Dimensions (mm):

', '
', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '
 LengthWidthHeight
Internal{FLTINTLENGTH}{FLTINTWIDTH}{FLTINTHEIGHT}
External{FLTEXTLENGTH}{FLTEXTWIDTH}{FLTEXTHEIGHT}
Flatpack{FLTFLTLENGTH}{FLTFLTWIDTH}{FLTFLTHEIGHT}
', '
' ) }); Rebul.Item.Window = function(config){ var currentDate = new Date(); currentDate = addWorkingDays(currentDate,3); this.config = config || {}; this.config.status = this.config.status || 'quote'; this.config.orderID = this.config.orderID || 0; this.config.url = this.config.status == 'quote' ? 'savedcarts.cfm?orderID=' + this.config.orderID : 'orderhistory.cfm?orderID=' + this.config.orderID; Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side'; var formPanel = new Ext.form.FormPanel({ id: 'formPanel', config: this.config, labelWidth:150, baseCls: 'x-plain', bodyStyle:'padding:10px 0 10px 10px', frame:true, autoHeight:true, autoWidth: true, standardSubmit:true, defaults: { width: 140, layout: 'form', anchor: '94%' }, items: [{ xtype: 'textfield', id: 'quote-field1', fieldLabel: 'Reference Number', name: 'TXTREFERENCE', allowBlank: false, value:this.config.q1 || undefined }, new Ext.ux.form.XDateField({ name:'DTREQUESTED', id: 'quote-field2', fieldLabel:'Expected Delivery Date', submitFormat:'Y-m-d', format:'d/m/Y', minValue:currentDate, disabledDays:[0,6], readOnly:true, showToday:false, allowBlank:false, value:this.config.q2 || undefined }), { id: 'order-requirements', baseCls: 'x-plain', hidden:this.config.status=='quote', autoWidth:true, defaults:{width:140,layout:'form',anchor:'94%'}, items:[{ xtype: 'textfield', id: 'order-field1', fieldLabel: 'Purchase Order', name: 'TXTPURCHASEORDER', allowBlank:true, value:this.config.o1 || undefined },{ xtype: 'textarea', id: 'order-field2', fieldLabel: 'Delivery Address', name: 'TXTSHIPPINGADDRESS', height:50, allowBlank:true, value:this.config.o2 || undefined }] }] }); formPanel.submitForm = function() { if (formPanel.form.isValid()) { formPanel.form.getEl().dom.action = formPanel.config.url; formPanel.form.getEl().dom.submit(); } else{ Ext.MessageBox.alert('Errors', 'Please fix the errors noted.'); } }; Rebul.Item.Window.superclass.constructor.call(this, { id:'confirm-save', title:'Save cart for later', width:360, autoHeight:true, minWidth:350, minHeight:250, layout:'fit', bodyStyle:'padding:5px', buttonAlign:'right', modal:true, items: formPanel, buttons: [{ id:'saveBtn', text: 'Save/Close', iconCls:'saveItem', handler: formPanel.submitForm },{ text: 'Cancel', iconCls:'cancelItem', handler: function(){ Ext.getCmp('confirm-save').close(); } }] }); this.on('beforerender',function(){ if(this.config.status=='order'){ this.setTitle('Place crate order'); Ext.getCmp('order-field1').allowBlank = false; Ext.getCmp('order-field2').allowBlank = false; var saveBtn = Ext.getCmp('saveBtn'); saveBtn.setText('Place Order'); saveBtn.setIconClass('placeOrder'); } }); this.show(); }; Ext.extend(Rebul.Item.Window, Ext.Window, {});