extjs-gpl
Version:
GPL licensed version of Sencha Ext JS
69 lines (67 loc) • 2.17 kB
JavaScript
Ext.require([
'Ext.form.Panel',
'Ext.form.field.Date',
'Ext.tip.QuickTipManager',
'Ext.ux.statusbar.StatusBar',
'Ext.ux.statusbar.ValidationStatus'
]);
Ext.onReady(function(){
Ext.tip.QuickTipManager.init();
var fp = Ext.create('Ext.FormPanel', {
title: 'StatusBar with Integrated Form Validation',
renderTo: Ext.getBody(),
width: 350,
autoHeight: true,
id: 'status-form',
renderTo: Ext.getBody(),
labelWidth: 75,
bodyPadding: 10,
defaults: {
anchor: '95%',
allowBlank: false,
selectOnFocus: true,
msgTarget: 'side'
},
items:[{
xtype: 'textfield',
fieldLabel: 'Name',
blankText: 'Name is required'
},{
xtype: 'datefield',
fieldLabel: 'Birthdate',
blankText: 'Birthdate is required'
}],
dockedItems: [{
xtype: 'toolbar',
dock: 'bottom',
ui: 'footer',
items: ['->', {
text: 'Save',
handler: function(){
if(fp.getForm().isValid()){
var sb = Ext.getCmp('form-statusbar');
sb.showBusy('Saving form...');
fp.getEl().mask();
fp.getForm().submit({
url: 'fake.php',
success: function(){
sb.setStatus({
text:'Form saved!',
iconCls:'',
clear: true
});
fp.getEl().unmask();
}
});
}
}
}]
},
Ext.create('Ext.ux.StatusBar', {
dock: 'bottom',
id: 'form-statusbar',
defaultText: 'Ready',
plugins: Ext.create('Ext.ux.statusbar.ValidationStatus', {form:'status-form'})
})]
});
});