3
* Copyright(c) 2006-2009 Ext JS, LLC
5
* http://www.extjs.com/license
11
SamplePanel = Ext.extend(Ext.DataView, {
17
tpl : new Ext.XTemplate(
18
'<div id="sample-ct">',
20
'<div><a name="{id}"></a><h2><div>{title}</div></h2>',
22
'<tpl for="samples">',
23
'<dd ext:url="{url}"><img src="shared/screens/{icon}"/>',
25
'<tpl if="this.isNew(values.status)">',
26
'<span class="new-sample"> (New)</span>',
28
'<tpl if="this.isUpdated(values.status)">',
29
'<span class="updated-sample"> (Updated)</span>',
31
'<tpl if="this.isExperimental(values.status)">',
32
'<span class="new-sample"> (Experimental)</span>',
34
'</h4><p>{desc}</p></div>',
37
'<div style="clear:left"></div></dl></div>',
40
isExperimental: function(status){
41
return status == 'experimental';
43
isNew: function(status){
44
return status == 'new';
46
isUpdated: function(status){
47
return status == 'updated';
52
onClick : function(e){
53
var group = e.getTarget('h2', 3, true);
55
group.up('div').toggleClass('collapsed');
57
var t = e.getTarget('dd', 5, true);
58
if(t && !e.getTarget('a', 2)){
59
var url = t.getAttributeNS('ext', 'url');
63
return SamplePanel.superclass.onClick.apply(this, arguments);
66
Ext.samples.SamplePanel = SamplePanel;
67
Ext.reg('samplespanel', Ext.samples.SamplePanel);
70
Ext.onReady(function(){
73
// Instantiate Ext.App instance
74
App = new Ext.App({});
76
var catalog = Ext.samples.samplesCatalog;
78
for(var i = 0, c; c = catalog[i]; i++){
82
var store = new Ext.data.JsonStore({
84
fields : ['id', 'title', 'samples'],
88
var panel = new Ext.Panel({
90
renderTo : 'all-demos',
93
items : new SamplePanel({
98
var tpl = new Ext.XTemplate(
99
'<tpl for="."><li><a href="#{id}">{title:stripTags}</a></li></tpl>'
101
tpl.overwrite('sample-menu', catalog);
103
Ext.select('#sample-spacer').remove();
105
var headerEl = Ext.get('hd'),
106
footerEl = Ext.get('ft'),
107
bodyEl = Ext.get('bd'),
108
sideBoxEl = bodyEl.child('div[class=side-box]'),
109
titleEl = bodyEl.child('h3:first-child');
111
var doResize = function() {
112
var windowHeight = Ext.getDoc().getViewSize().height;
114
var footerHeight = footerEl.getHeight() + footerEl.getMargins().top,
115
titleElHeight = titleEl.getHeight() + titleEl.getMargins().top,
116
brElHeight = bodyEl.child('br').getHeight(),
117
headerHeight = headerEl.getHeight() + titleElHeight + brElHeight;
119
var warnEl = Ext.get('fb');
120
var warnHeight = warnEl ? warnEl.getHeight() : 0;
122
var availHeight = windowHeight - ( footerHeight + headerHeight + 14) - warnHeight;
123
var sideBoxHeight = sideBoxEl.getHeight();
125
panel.setHeight((availHeight > sideBoxHeight) ? availHeight : sideBoxHeight);
129
Ext.EventManager.onWindowResize(doResize);
131
var firebugWarning = function () {
132
var cp = new Ext.state.CookieProvider();
134
if(window.console && window.console.firebug && ! cp.get('hideFBWarning')){
135
var tpl = new Ext.Template(
136
'<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>'
138
var newEl = tpl.insertFirst('all-demos');
140
Ext.fly('hideWarning').on('click', function() {
141
Ext.fly(newEl).slideOut('t',{remove:true});
142
cp.set('hideFBWarning', true);
145
Ext.fly(newEl).slideIn();
150
var hideMask = function () {
151
Ext.get('loading').remove();
152
Ext.fly('loading-mask').fadeOut({
154
callback : firebugWarning
b'\\ No newline at end of file'