1. #21
    Ext JS Premium Member
    Join Date
    Sep 2009
    Posts
    164
    Vote Rating
    1
    michael melsen is on a distinguished road

      0  

    Default


    Hi guys,

    I'm not really making progress with the disappearing div. I did notice that in FF the variable this.field.wrap.dom.children holds 2 children for the combobox:

    [input#ext-comp-1866.x-form-text, img#ext-gen1195.x-form-trigger javascri...lt/s.gif]

    however on IE the same variable holds no children and this is the reason why the div disappears. Can someone give a hint on where to look?

    kind regards,

    Michael

  2. #22
    Ext JS Premium Member griffiti93's Avatar
    Join Date
    Mar 2007
    Location
    Owasso, OK
    Posts
    130
    Vote Rating
    0
    griffiti93 is on a distinguished road

      0  

    Default


    Hey Condor - I enjoyed your presentation at SenchaCon. I'm looking forward to using many of your components.

  3. #23
    Sencha User
    Join Date
    Oct 2008
    Posts
    25
    Vote Rating
    1
    pablitobs is on a distinguished road

      0  

    Default


    Hi, there, I tried Ext.ux.UploadDialog on 3.0 and it fails....
    just to update the not compatible list of extensions...
    see ya

  4. #24
    Ext JS Premium Member
    Join Date
    Sep 2009
    Posts
    164
    Vote Rating
    1
    michael melsen is on a distinguished road

      0  

    Default


    Quote Originally Posted by michael melsen View Post
    Hi guys,

    I'm not really making progress with the disappearing div. I did notice that in FF the variable this.field.wrap.dom.children holds 2 children for the combobox:

    [input#ext-comp-1866.x-form-text, img#ext-gen1195.x-form-trigger javascri...lt/s.gif]

    however on IE the same variable holds no children and this is the reason why the div disappears. Can someone give a hint on where to look?

    kind regards,

    Michael

    Hi guys,

    I figured out that the problem is caused by ext in combination with the filterrow. It seems that the refresh(true) is causing the headers to be refreshed which causes the divs for the combobox to vanish in IE, but not in FF. Can someone point me to the best possible way to solve this? I guess a listener would suffice, but I could not get it working one way or the other.

    cheers,

    Michael

  5. #25
    Sencha User renku's Avatar
    Join Date
    Feb 2009
    Location
    Estonia
    Posts
    437
    Vote Rating
    17
    renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold renku is a splendid one to behold

      0  

    Default


    I think the FilterRow should work now with Ext 3.3 -- See the thread for details.

  6. #26
    Sencha User bkraut's Avatar
    Join Date
    Nov 2007
    Location
    Maribor, Slovenia
    Posts
    402
    Vote Rating
    1
    bkraut is on a distinguished road

      0  

    Default


    I'm also having issues with ManagedIFrame in ExtJs 3.3.

    I posted an error in ManagedIFrame forum thread.
    Best regards,
    Bojan

  7. #27
    Ext JS Premium Member veenvliet.morion's Avatar
    Join Date
    Oct 2009
    Location
    Netherlands
    Posts
    24
    Vote Rating
    0
    veenvliet.morion is on a distinguished road

      0  

    Default


    Livegrid is fixed in a 0.5 branche!!

  8. #28
    Sencha Premium Member
    Join Date
    Apr 2009
    Posts
    104
    Vote Rating
    0
    jej2003 is on a distinguished road

      0  

    Default


    Looks like Ext.ux.grid.RowExpander is also broken. I updated mine locally as follows, basically involved removing the onDestroy listener on the grid and changing the onDestroy method to destroy and added a call to purgeListeners. Not sure if this is the most appropriate mod, so if anyone has a better solution I am all ears.

    Code:
    /*!
     * Ext JS Library 3.2.1
     * Copyright(c) 2006-2010 Ext JS, Inc.
     * licensing@extjs.com
     * http://www.extjs.com/license
     */
    Ext.ns('Ext.ux.grid');
    
    /**
     * @class Ext.ux.grid.RowExpander
     * @extends Ext.util.Observable
     * Plugin (ptype = 'rowexpander') that adds the ability to have a Column in a grid which enables
     * a second row body which expands/contracts.  The expand/contract behavior is configurable to react
     * on clicking of the column, double click of the row, and/or hitting enter while a row is selected.
     *
     * @ptype rowexpander
     */
    Ext.ux.grid.RowExpander = Ext.extend(Ext.util.Observable, {
        /**
         * @cfg {Boolean} expandOnEnter
         * <tt>true</tt> to toggle selected row(s) between expanded/collapsed when the enter
         * key is pressed (defaults to <tt>true</tt>).
         */
        expandOnEnter : true,
        /**
         * @cfg {Boolean} expandOnDblClick
         * <tt>true</tt> to toggle a row between expanded/collapsed when double clicked
         * (defaults to <tt>true</tt>).
         */
        expandOnDblClick : true,
    
        header : '',
        width : 20,
        sortable : false,
        fixed : true,
        hideable: false,
        menuDisabled : true,
        dataIndex : '',
        id : 'expander',
        lazyRender : true,
        enableCaching : true,
    
        constructor: function(config){
            Ext.apply(this, config);
            
            if(!this.scope)
                this.scope = this;
                
            this.addEvents({
                /**
                 * @event beforeexpand
                 * Fires before the row expands. Have the listener return false to prevent the row from expanding.
                 * @param {Object} this RowExpander object.
                 * @param {Object} Ext.data.Record Record for the selected row.
                 * @param {Object} body body element for the secondary row.
                 * @param {Number} rowIndex The current row index.
                 */
                beforeexpand: true,
                /**
                 * @event expand
                 * Fires after the row expands.
                 * @param {Object} this RowExpander object.
                 * @param {Object} Ext.data.Record Record for the selected row.
                 * @param {Object} body body element for the secondary row.
                 * @param {Number} rowIndex The current row index.
                 */
                expand: true,
                /**
                 * @event beforecollapse
                 * Fires before the row collapses. Have the listener return false to prevent the row from collapsing.
                 * @param {Object} this RowExpander object.
                 * @param {Object} Ext.data.Record Record for the selected row.
                 * @param {Object} body body element for the secondary row.
                 * @param {Number} rowIndex The current row index.
                 */
                beforecollapse: true,
                /**
                 * @event collapse
                 * Fires after the row collapses.
                 * @param {Object} this RowExpander object.
                 * @param {Object} Ext.data.Record Record for the selected row.
                 * @param {Object} body body element for the secondary row.
                 * @param {Number} rowIndex The current row index.
                 */
                collapse: true
            });
    
            Ext.ux.grid.RowExpander.superclass.constructor.call(this);
    
            if(this.tpl){
                if(typeof this.tpl == 'string'){
                    this.tpl = new Ext.Template(this.tpl);
                }
                this.tpl.compile();
            }
    
            this.state = {};
            this.bodyContent = {};
        },
    
        getRowClass : function(record, rowIndex, p, ds){
            p.cols = p.cols-1;
            var content = this.bodyContent[record.id];
            if(!content && !this.lazyRender){
                content = this.getBodyContent(record, rowIndex);
            }
            if(content){
                p.body = content;
            }
            return this.state[record.id] ? 'x-grid3-row-expanded' : 'x-grid3-row-collapsed';
        },
    
        init : function(grid){
            this.grid = grid;
    
            var view = grid.getView();
            view.getRowClass = this.getRowClass.createDelegate(this);
    
            view.enableRowBody = true;
    
    
            grid.on('render', this.onRender, this);
            //grid.on('destroy', this.onDestroy, this);
        },
    
        // @private
        onRender: function() {
            var grid = this.grid;
            var mainBody = grid.getView().mainBody;
            mainBody.on('mousedown', this.onMouseDown, this, {delegate: '.x-grid3-row-expander'});
            if (this.expandOnEnter) {
                this.keyNav = new Ext.KeyNav(this.grid.getGridEl(), {
                    'enter' : this.onEnter,
                    scope: this
                });
            }
            if (this.expandOnDblClick) {
                grid.on('rowdblclick', this.onRowDblClick, this);
            }
        },
        
        // @private    
        destroy: function() {
            if(this.keyNav){
                this.keyNav.disable();
                delete this.keyNav;
            }
    
            this.purgeListeners();
    
        },
        // @private
        onRowDblClick: function(grid, rowIdx, e) {
            this.toggleRow(rowIdx);
        },
    
        onEnter: function(e) {
            var g = this.grid;
            var sm = g.getSelectionModel();
            var sels = sm.getSelections();
            for (var i = 0, len = sels.length; i < len; i++) {
                var rowIdx = g.getStore().indexOf(sels[i]);
                this.toggleRow(rowIdx);
            }
        },
    
        getBodyContent : function(record, index){
            if(!this.enableCaching){
                return this.tpl.apply(record.data);
            }
            var content = this.bodyContent[record.id];
            if(!content){
                content = this.tpl.apply(record.data);
                this.bodyContent[record.id] = content;
            }
            return content;
        },
    
        onMouseDown : function(e, t){
            e.stopEvent();
            var row = e.getTarget('.x-grid3-row');
            this.toggleRow(row);
        },
    
        renderer : function(v, p, record){
            p.cellAttr = 'rowspan="2"';
            return '<div class="x-grid3-row-expander">&#160;</div>';
        },
    
        beforeExpand : function(record, body, rowIndex){
            if(this.fireEvent('beforeexpand', this, record, body, rowIndex) !== false){
                if(this.tpl && this.lazyRender){
                    body.innerHTML = this.getBodyContent(record, rowIndex);
                }
                return true;
            }else{
                return false;
            }
        },
    
        toggleRow : function(row){
            if(typeof row == 'number'){
                row = this.grid.view.getRow(row);
            }
            this[Ext.fly(row).hasClass('x-grid3-row-collapsed') ? 'expandRow' : 'collapseRow'](row);
        },
    
        expandRow : function(row){
            if(typeof row == 'number'){
                row = this.grid.view.getRow(row);
            }
            var record = this.grid.store.getAt(row.rowIndex);
            var body = Ext.DomQuery.selectNode('tr:nth(2) div.x-grid3-row-body', row);
            if(this.beforeExpand(record, body, row.rowIndex)){
                this.state[record.id] = true;
                Ext.fly(row).replaceClass('x-grid3-row-collapsed', 'x-grid3-row-expanded');
                this.fireEvent('expand', this, record, body, row.rowIndex);
            }
        },
    
        collapseRow : function(row){
            if(typeof row == 'number'){
                row = this.grid.view.getRow(row);
            }
            var record = this.grid.store.getAt(row.rowIndex);
            var body = Ext.fly(row).child('tr:nth(1) div.x-grid3-row-body', true);
            if(this.fireEvent('beforecollapse', this, record, body, row.rowIndex) !== false){
                this.state[record.id] = false;
                Ext.fly(row).replaceClass('x-grid3-row-expanded', 'x-grid3-row-collapsed');
                this.fireEvent('collapse', this, record, body, row.rowIndex);
            }
        }
    });
    
    Ext.preg('rowexpander', Ext.ux.grid.RowExpander);
    
    //backwards compat
    Ext.grid.RowExpander = Ext.ux.grid.RowExpander;

Similar Threads

  1. Plugins and extensions
    By Mycoding in forum Ext 3.x: Help & Discussion
    Replies: 25
    Last Post: 12 Oct 2010, 8:24 AM
  2. Central Ext User Extensions and Plugins Directory
    By jsakalos in forum Ext 2.x: User Extensions and Plugins
    Replies: 64
    Last Post: 12 May 2009, 9:01 AM
  3. Saki's Extensions and Plugins Documentation
    By jsakalos in forum Ext 2.x: User Extensions and Plugins
    Replies: 12
    Last Post: 16 Feb 2009, 3:49 AM
  4. Extensions vs Plugins
    By trojan in forum Ext 2.x: Help & Discussion
    Replies: 1
    Last Post: 31 Dec 2008, 3:22 AM
  5. [NOOB] Where or how to install plugins and extensions?
    By danzarinrostro in forum Ext 2.x: Help & Discussion
    Replies: 3
    Last Post: 17 Apr 2008, 8:49 AM

Thread Participants: 18