| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 | Ext.ns('Ext.samples');(function() {    Ext.define('Ext.samples.SamplePanel', {        extend: 'Ext.view.View',        alias: 'widget.samplepanel',        autoHeight   : true,        frame        : false,        cls          : 'demos',        itemSelector : 'dl',        overItemCls  : 'over',        trackOver    : true,        tpl          : Ext.create('Ext.XTemplate',            '<div id="sample-ct">',                '<tpl for=".">',                '<div><a name="{id}"></a><h2><div>{title}</div></h2>',                '<dl>',                    '<tpl for="items">',                        '<dd ext:url="{url}"><img src="shared/screens/{icon}"/>',                            '<div><h4>{text}',                                '<tpl if="this.isNew(values.status)">',                                    '<span class="new-sample"> (New)</span>',                                '<tpl elseif="this.isUpdated(values.status)">',                                    '<span class="updated-sample"> (Updated)</span>',                                '<tpl elseif="this.isExperimental(values.status)">',                                    '<span class="new-sample"> (Experimental)</span>',                                '<tpl elseif="status">',                                    '<span class="status"> ({status})</span>',                                '</tpl>',                            '</h4><p>{desc}</p></div>',                        '</dd>',                    '</tpl>',                '<div style="clear:left"></div></dl></div>',                '</tpl>',            '</div>', {             isExperimental: function(status){                 return status == 'experimental';             },             isNew: function(status){                 return status == 'new';             },             isUpdated: function(status){                 return status == 'updated';             }        }),        onContainerClick: function(e) {            var group = e.getTarget('h2', 3, true);            if (group) {                group.up('div').toggleCls('collapsed');            }        },        onItemClick : function(record, item, index, e){            var t = e.getTarget('dd', 5, true);            if (t && !e.getTarget('a', 2)) {                var url = t.getAttributeNS('ext', 'url');                window.open(url);            }            return this.callParent(arguments);        }    });})();Ext.onReady(function() {    (Ext.defer(function() {        // Instantiate Ext.App instance        var App = Ext.create('Ext.App', {});        var catalog = Ext.samples.samplesCatalog;        for (var i = 0, c; c = catalog[i]; i++) {            c.id = 'sample-' + i;        }        var store = Ext.create('Ext.data.Store', {            fields     : ['id', 'title', 'items'],            data       : catalog        });        var panel = Ext.create('Ext.panel.Panel', {            frame      : false,            renderTo   : 'all-demos',            height     : 300,            autoScroll : true,            items      : Ext.create('Ext.samples.SamplePanel', {                store : store            })        });        var tpl = Ext.create('Ext.XTemplate',            '<tpl for="."><li><a href="#{id}">{title:stripTags}</a></li></tpl>'        );        tpl.overwrite('sample-menu', catalog);        Ext.get('sample-spacer').remove();        var headerEl  = Ext.get('hd'),            footerEl  = Ext.get('ft'),            bodyEl    = Ext.get('bd'),            sideBoxEl = bodyEl.down('div[class=side-box]'),            titleEl   = bodyEl.down('h1#pagetitle');        var doResize = function() {            var windowHeight = Ext.getDoc().getViewSize(false).height;            var footerHeight  = footerEl.getHeight() + footerEl.getMargin().top,                titleElHeight = titleEl.getHeight() + titleEl.getMargin().top,                headerHeight  = headerEl.getHeight() + titleElHeight;            var warnEl = Ext.get('fb');            var warnHeight = warnEl ? warnEl.getHeight() : 0;            var availHeight = windowHeight - ( footerHeight + headerHeight + 14) - warnHeight;            var sideBoxHeight = sideBoxEl.getHeight();            panel.setHeight((availHeight > sideBoxHeight) ? availHeight : sideBoxHeight);        };        // Resize on demand        Ext.EventManager.onWindowResize(doResize);        var firebugWarning = function () {            var cp = Ext.create('Ext.state.CookieProvider');            if(window.console && window.console.firebug && ! cp.get('hideFBWarning')){                var tpl = Ext.create('Ext.Template',                    '<div id="fb" style="border: 1px solid #FF0000; background-color:#FFAAAA; display:none; padding:15px; color:#000000;"><b>Warning: </b> Firebug is known to cause performance issues with Ext JS. <a href="#" id="hideWarning">[ Hide ]</a></div>'                );                var newEl = tpl.insertFirst('all-demos');                Ext.fly('hideWarning').on('click', function() {                    Ext.fly(newEl).slideOut('t',{remove:true});                    cp.set('hideFBWarning', true);                    doResize();                });                Ext.fly(newEl).slideIn();                doResize();            }        };        var hideMask = function () {            Ext.get('loading').remove();            Ext.fly('loading-mask').animate({                opacity:0,                remove:true,                callback: firebugWarning            });        };        Ext.defer(hideMask, 250);        doResize();    },500));});
 |