We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 54422
    • 4 Posts
    Hi folks,

    I'm trying to develop as custom Extra. I was following the guide from Modx for extras.
    As the pop-up window is too small for all my fields I'm trying to develop a page for CRUD-Operations.

    I tried to copy from the default workspace/package.
    From there I have a component as page:

    Kinderherzfuehrer.page.Praxis = function(config) {
        config = config || {};
        Ext.applyIf(config,{
            formpanel: 'kinderherzfuehrer-panel-praxis'
            ,components: [{
                xtype: 'kinderherzfuehrer-panel-praxis'
                ,id: MODx.request.id
            }]
            ,buttons: [{
                process: 'save'
                ,url: Kinderherzfuehrer.config.connectorUrl
                ,baseParams: { action: 'mgr/praxen/update' }
                ,text: _('save')
                ,id: 'modx-abtn-save'
                ,cls: 'primary-button'
                ,method: 'remote'
                //,checkDirty: true
                ,keys: [{
                    key: MODx.config.keymap_save || 's'
                    ,alt: true
                    ,ctrl: true
                }]
    
            },{
                process: 'cancel'
                ,text: _('cancel')
                ,id: 'modx-abtn-cancel'
                ,handler: function() {
                    MODx.loadPage('index', 'namespace=kinderherzfuehrer');
                }
            }]
        });
        Kinderherzfuehrer.page.Praxis.superclass.constructor.call(this,config);
    };
    Ext.extend(Kinderherzfuehrer.page.Praxis,MODx.Component);
    Ext.reg('kinderherzfuehrer-page-praxis',Kinderherzfuehrer.page.Praxis);
    


    As I understood the default action buttons are defined here.

    Secondly I have a JS-file for the panel (for here are only two fields in list...)

    Kinderherzfuehrer.panel.Praxis = function(config) {
        config = config || {};
        Ext.applyIf(config,{
            id: 'modx-panel-package'
            ,url: Kinderherzfuehrer.config.connectorUrl
            ,baseParams: { action: 'mgr/praxen/update' }
            ,cls: 'container'
            ,chunk: ''
            ,bodyStyle: ''
            ,items: [{
                html: _('package')
                ,id: 'modx-package-header'
                ,xtype: 'modx-header'
            },MODx.getPageStructure([{
                title: _('general')
                ,defaults: { border: false }
                ,layout: 'form'
                ,id: 'modx-package-form'
                ,labelWidth: 150
                ,items: [{
                    xtype: 'panel'
                    ,border: false
                    ,cls:'main-wrapper'
                    ,layout: 'form'
                    ,items: [{
                            xtype: 'hidden'
                            ,name: 'id'
                            ,value: config.id
                        },{
                        xtype: 'textfield'
                        ,fieldLabel: _('anrede')
                        ,name: 'anrede'
                        ,width: 300
                    },{
                            xtype: 'textfield'
                            ,fieldLabel: _('titel')
                            ,name: 'titel'
                            ,width: 300
                        }
                           ]
                }]
            }]
            )]
            ,listeners: {
                'setup': {fn:this.setup,scope:this}
                ,'success': {fn:this.success,scope:this}
                ,'beforeSubmit': {fn:this.beforeSubmit,scope:this}
                ,'fieldChange': {fn:this.fieldChange, scope:this}
            }
        });
        Kinderherzfuehrer.panel.Praxis.superclass.constructor.call(this,config);
    };
    Ext.extend(Kinderherzfuehrer.panel.Praxis,MODx.FormPanel,{
        initialized: false
        ,setup: function() {
            if (this.config.id === '' || this.config.id === 0 || this.initialized) {
                this.fireEvent('ready');
                return false;
            }
            MODx.Ajax.request({
                url: Kinderherzfuehrer.config.connectorUrl
                ,params: {
                    action: 'mgr/praxen/get'
                    ,id: this.config.id
                }
                ,listeners: {
                    'success': {fn:function(r) {
                            this.getForm().setValues(r.object);
                            Ext.getCmp('modx-package-header').getEl().update(_('package')+': '+r.object.id);
                            this.fireEvent('ready',r.object);
    
                            this.initialized = true;
                        },scope:this}
                }
            });
        }
        ,beforeSubmit: function(o) {
            return this.fireEvent('save',{
                values: this.getForm().getValues()
            });
        }
        ,success: function(r) {
        }
        ,fieldChange: function(c) {
            console.log(c.field);
        }
    });
    Ext.reg('kinderherzfuehrer-panel-praxis',Kinderherzfuehrer.panel.Praxis);
    
    
    


    If I press the "save"-button nothing is happening.
    Any help?

    Thanks Bernhard

    P.S.: The processor are working when using the pop-up-window...