statusbar-advanced.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. Ext.Loader.setConfig({
  2. enabled: true
  3. });
  4. Ext.Loader.setPath('Ext.ux', '../ux/');
  5. Ext.require([
  6. 'Ext.form.Panel',
  7. 'Ext.form.field.Date',
  8. 'Ext.tip.QuickTipManager',
  9. 'Ext.ux.statusbar.StatusBar',
  10. 'Ext.ux.statusbar.ValidationStatus'
  11. ]);
  12. Ext.onReady(function(){
  13. Ext.tip.QuickTipManager.init();
  14. var fp = Ext.create('Ext.FormPanel', {
  15. title: 'StatusBar with Integrated Form Validation',
  16. renderTo: Ext.getBody(),
  17. width: 350,
  18. autoHeight: true,
  19. id: 'status-form',
  20. renderTo: Ext.getBody(),
  21. labelWidth: 75,
  22. bodyPadding: 10,
  23. defaults: {
  24. anchor: '95%',
  25. allowBlank: false,
  26. selectOnFocus: true,
  27. msgTarget: 'side'
  28. },
  29. items:[{
  30. xtype: 'textfield',
  31. fieldLabel: 'Name',
  32. blankText: 'Name is required'
  33. },{
  34. xtype: 'datefield',
  35. fieldLabel: 'Birthdate',
  36. blankText: 'Birthdate is required'
  37. }],
  38. dockedItems: [{
  39. xtype: 'toolbar',
  40. dock: 'bottom',
  41. ui: 'footer',
  42. items: ['->', {
  43. text: 'Save',
  44. handler: function(){
  45. if(fp.getForm().isValid()){
  46. var sb = Ext.getCmp('form-statusbar');
  47. sb.showBusy('Saving form...');
  48. fp.getEl().mask();
  49. fp.getForm().submit({
  50. url: 'fake.php',
  51. success: function(){
  52. sb.setStatus({
  53. text:'Form saved!',
  54. iconCls:'',
  55. clear: true
  56. });
  57. fp.getEl().unmask();
  58. }
  59. });
  60. }
  61. }
  62. }]
  63. },
  64. Ext.create('Ext.ux.StatusBar', {
  65. dock: 'bottom',
  66. id: 'form-statusbar',
  67. defaultText: 'Ready',
  68. plugins: Ext.create('Ext.ux.statusbar.ValidationStatus', {form:'status-form'})
  69. })]
  70. });
  71. });