| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- MODx.Wizard = function(config) {
- config = config || {};
- Ext.applyIf(config,{
- layout: 'card'
- ,layoutConfig: {
- layoutOnCardChange: true
- ,deferredRender: false
- }
- ,activeItem: 0
- ,closeAction: 'hide'
- ,resizable: true
- ,collapsible: true
- ,maximizable: true
- ,autoHeight: true
- ,anchor: '90%'
- ,width: '90%'
- ,defaults: { border: false }
- ,modal: Ext.isIE ? false : true
- ,hideMode: 'offsets'
- ,cls: 'modx-window'
- ,bbar: [{
- itemId: 'btn-back'
- ,text: _('back')
- ,handler: function() { this.fireEvent('backward'); }
- ,scope: this
- ,disabled: true
- },{
- itemId: 'btn-next'
- ,text: _('next')
- ,handler: function() { this.fireEvent('forward'); }
- ,scope: this
- }]
- ,firstPanel: ''
- ,lastPanel: ''
- ,showFirstPanel: true
- });
- MODx.Wizard.superclass.constructor.call(this,config);
- this.lastActiveItem = config.firstPanel;
- this.config = config;
- this.addEvents({
- 'forward': true
- ,'backward': true
- ,'proceed': true
- ,'finish': true
- ,'ready': true
- });
-
- this.on('show',this.onShow,this);
- this.on('forward',this.onForward,this);
- this.on('backward',this.onBackward,this);
- this.on('proceed',this.proceed,this);
- };
- Ext.extend(MODx.Wizard,Ext.Window,{
- windows: {}
-
- ,onForward: function() {
- this.navHandler(1);
- }
- ,onBackward: function() {
- this.navHandler(-1);
- }
-
- ,onShow: function() {
- if (this.config.showFirstPanel) {
- this.getBottomToolbar().getComponent('btn-next').setText(_('next'));
- }
- if (this.config.showFirstPanel) {
- if (this.fireEvent('proceed',this.config.firstPanel)) {
- this.fireEvent('ready');
- }
- } else {
- this.fireEvent('ready');
- }
- }
-
- ,navHandler: function(dir) {
- this.doLayout();
- var a = this.getLayout().activeItem;
- if (dir === -1) {
- this.fireEvent('proceed',a.config.back || a.config.id);
- } else {
- a.submit();
- }
- }
-
- ,proceed: function(panel) {
- var tb = this.getBottomToolbar();
- if (!tb) return false;
-
- this.getLayout().setActiveItem(panel);
-
- if (panel == this.config.firstPanel) {
- tb.getComponent('btn-back').setDisabled(true);
- } else if (panel == this.config.lastPanel) {
- tb.getComponent('btn-next').setText(_('finish'));
- } else {
- tb.getComponent('btn-back').setDisabled(false);
- tb.getComponent('btn-next').setText(_('next'));
- }
- var s = Ext.getCmp(panel).fireEvent('fetch');
- if (s) {
- if (!Ext.isIE) {
- this.syncSize();
- this.center();
- }
- }
- return true;
- }
- });
- Ext.reg('modx-wizard',MODx.Wizard);
- MODx.panel.WizardPanel = function(config) {
- config = config || {};
- Ext.applyIf(config,{
- autoHeight: true
- ,bodyStyle: 'padding: 20px'
- });
- MODx.panel.WizardPanel.superclass.constructor.call(this,config);
- this.config = config;
- this.addEvents({ 'fetch': true });
- this.on('fetch',this.fetch,this);
- };
- Ext.extend(MODx.panel.WizardPanel,Ext.FormPanel,{
- fetch: function() { return true; }
- ,submit: function() { return true; }
- });
- Ext.reg('panel-wizard-panel',MODx.panel.WizardPanel);
|