Upgrade to ExtJS 4.0.0 - Released 04/26/2011
[extjs.git] / examples / forum / forum.js
diff --git a/examples/forum/forum.js b/examples/forum/forum.js
deleted file mode 100644 (file)
index 474a307..0000000
+++ /dev/null
@@ -1,406 +0,0 @@
-/*!
- * Ext JS Library 3.3.0
- * Copyright(c) 2006-2010 Ext JS, Inc.
- * licensing@extjs.com
- * http://www.extjs.com/license
- */
-var Forum = {};
-
-//////////////////////////////////////////////////////////////////////////////////////////////
-// The data store for topics
-Forum.TopicStore = function(){
-    Forum.TopicStore.superclass.constructor.call(this, {
-        remoteSort: true,
-
-        proxy: new Ext.data.ScriptTagProxy({
-            url: 'http://extjs.com/forum/topics-browse-remote.php'
-        }),
-
-        reader: new Ext.data.JsonReader({
-            root: 'topics',
-            totalProperty: 'totalCount',
-            id: 'threadid'
-        }, [
-            'title', 'forumtitle', 'forumid', 'author',
-            {name: 'replycount', type: 'int'},
-            {name: 'lastpost', mapping: 'lastpost', type: 'date', dateFormat: 'timestamp'},
-            'lastposter', 'excerpt'
-        ])
-    });
-
-    this.setDefaultSort('lastpost', 'desc');
-};
-Ext.extend(Forum.TopicStore, Ext.data.Store, {
-    loadForum : function(forumId){
-        this.baseParams = {
-            forumId: forumId
-        };
-        this.load({
-            params: {
-                start:0,
-                limit:25
-            }
-        });
-    }
-});
-
-//////////////////////////////////////////////////////////////////////////////////////////////
-
-// some renderers
-Forum.Renderers = {
-    topic : function(value, p, record){
-        return String.format(
-                '<div class="topic"><b>{0}</b><span class="author">{1}</span></div>',
-                value, record.data.author, record.id, record.data.forumid);
-    },
-
-    lastPost : function(value, p, r){
-        return String.format('<span class="post-date">{0}</span><br/>by {1}', value.dateFormat('M j, Y, g:i a'), r.data['lastposter']);
-    }
-};
-
-//////////////////////////////////////////////////////////////////////////////////////////////
-
-Forum.SearchView = function(search){
-
-    this.preview = new Ext.Panel({
-        region:'south',
-        height:250,
-        title:'View Message',
-        split:true
-    });
-
-    this.store = new Ext.data.Store({
-        remoteSort: true,
-        proxy: new Ext.data.ScriptTagProxy({
-            url: 'http://extjs.com/forum/topics-browse-remote.php'
-        }),
-        reader: new Ext.data.JsonReader({
-            root: 'topics',
-            totalProperty: 'totalCount',
-            id: 'post_id'
-        }, [
-            {name: 'postId', mapping: 'post_id'},
-            {name: 'title', mapping: 'topic_title'},
-            {name: 'topicId', mapping: 'topic_id'},
-            {name: 'author', mapping: 'author'},
-            {name: 'lastPost', mapping: 'post_time', type: 'date', dateFormat: 'timestamp'},
-            {name: 'excerpt', mapping: 'post_text'}
-        ])
-    });
-    this.store.setDefaultSort('lastpost', 'desc');
-
-
-    this.grid = new Ext.grid.GridPanel({
-        region:'center',
-
-        store: this.store,
-
-        cm: new Ext.grid.ColumnModel([{
-           id: 'topic',
-           header: "Post Title",
-           dataIndex: 'title',
-           width: 420,
-           renderer: Forum.Renderers.topic
-        },{
-           id: 'last',
-           header: "Date Posted",
-           dataIndex: 'lastpost',
-           width: 150,
-           renderer: Ext.util.Format.dateRenderer('M j, Y, g:i a')
-        }]),
-
-        sm: new Ext.grid.RowSelectionModel({
-            singleSelect:true
-        }),
-
-        trackMouseOver:false,
-
-        loadMask: {msg:'Searching...'},
-
-        viewConfig: {
-            forceFit:true,
-            enableRowBody:true,
-            showPreview:true,
-            getRowClass : function(record, rowIndex, p, ds){
-                if(this.showPreview){
-                    p.body = '<p>'+record.data.excerpt+'</p>';
-                    return 'x-grid3-row-expanded';
-                }
-                return 'x-grid3-row-collapsed';
-            }
-        },
-
-        bbar: new Ext.PagingToolbar({
-            pageSize: 25,
-            store: ds,
-            displayInfo: true,
-            displayMsg: 'Displaying results {0} - {1} of {2}',
-            emptyMsg: "No results to display"
-        })
-    });
-
-    Forum.SearchView.superclass.constructor.call(this, {
-        layout:'border',
-        title:'Search: '+Ext.util.Format.htmlEncode('"'+search+'"'),
-        items:[ this.grid, this.preview ]
-     });
-
-    this.store.baseParams = {
-        query: search
-    };
-
-    this.store.load({params:{start:0, limit: 25}});
-};
-
-Ext.extend(Forum.SearchView, Ext.Panel);
-
-
-
-Ext.onReady(function(){
-
-    Ext.QuickTips.init();
-
-    var ds = new Forum.TopicStore();
-
-    var cm = new Ext.grid.ColumnModel([{
-           id: 'topic',
-           header: "Topic",
-           dataIndex: 'title',
-           width: 420,
-           renderer: Forum.Renderers.topic
-        },{
-           header: "Author",
-           dataIndex: 'author',
-           width: 100,
-           hidden: true
-        },{
-           header: "Replies",
-           dataIndex: 'replycount',
-           width: 70,
-           align: 'right'
-        },{
-           id: 'last',
-           header: "Last Post",
-           dataIndex: 'lastpost',
-           width: 150,
-           renderer: Forum.Renderers.lastPost
-        }]);
-
-    cm.defaultSortable = true;
-
-    var viewport = new Ext.Viewport({
-        layout:'border',
-        items:[
-            new Ext.BoxComponent({ // raw
-                region:'north',
-                el: 'header',
-                height:32
-            }),
-            new Ext.tree.TreePanel({
-                id:'forum-tree',
-                region:'west',
-                title:'Forums',
-                split:true,
-                width: 325,
-                minSize: 175,
-                maxSize: 400,
-                collapsible: true,
-                margins:'0 0 5 5',
-                loader: new Forum.TreeLoader(),
-                rootVisible:false,
-                lines:false,
-                autoScroll:true,
-                root: new Ext.tree.AsyncTreeNode({
-                          text: 'Forums',
-                          expanded:true
-                      })
-            }),
-            new Ext.TabPanel({
-                id:'main-tabs',
-                activeTab:0,
-                region:'center',
-                margins:'0 5 5 0',
-                resizeTabs:true,
-                tabWidth:150,
-                items: {
-                    id:'main-view',
-                    layout:'border',
-                    title:'Loading...',
-                    items:[
-                        new Ext.grid.GridPanel({
-                            region:'center',
-                            id:'topic-grid',
-                            store: ds,
-                            cm: cm,
-                            sm:new Ext.grid.RowSelectionModel({
-                                singleSelect:true,
-                                listeners: {
-                                    selectionchange: function(sel){
-                                        var rec = sel.getSelected();
-                                        if(rec){
-                                            Ext.getCmp('preview').body.update('<b><u>' + rec.get('title') + '</u></b><br /><br />Post details here.');
-                                        }
-                                    }
-                                }
-                            }),
-                            trackMouseOver:false,
-                            loadMask: {msg:'Loading Topics...'},
-                            viewConfig: {
-                                forceFit:true,
-                                enableRowBody:true,
-                                showPreview:true,
-                                getRowClass : function(record, rowIndex, p, ds){
-                                    if(this.showPreview){
-                                        p.body = '<p>'+record.data.excerpt+'</p>';
-                                        return 'x-grid3-row-expanded';
-                                    }
-                                    return 'x-grid3-row-collapsed';
-                                }
-                            },
-                            tbar:[
-                                {
-                                    text:'New Topic',
-                                    iconCls: 'new-topic',
-                                    handler:function(){alert('Not implemented.');}
-                                },
-                                '-',
-                                {
-                                    pressed: true,
-                                    enableToggle:true,
-                                    text:'Preview Pane',
-                                    tooltip: {title:'Preview Pane',text:'Show or hide the Preview Pane'},
-                                    iconCls: 'preview',
-                                    toggleHandler: togglePreview
-                                },
-                                ' ',
-                                {
-                                    pressed: true,
-                                    enableToggle:true,
-                                    text:'Summary',
-                                    tooltip: {title:'Post Summary',text:'View a short summary of each post in the list'},
-                                    iconCls: 'summary',
-                                    toggleHandler: toggleDetails
-                                }
-                            ],
-                            bbar: new Ext.PagingToolbar({
-                                pageSize: 25,
-                                store: ds,
-                                displayInfo: true,
-                                displayMsg: 'Displaying topics {0} - {1} of {2}',
-                                emptyMsg: "No topics to display"
-                            })
-                        }), {
-                            id:'preview',
-                            region:'south',
-                            height:250,
-                            title:'View Topic',
-                            split:true,
-                            bodyStyle: 'padding: 10px; font-family: Arial; font-size: 12px;'
-                        }
-                     ]
-                 }
-              })
-         ]
-    });
-
-    var tree = Ext.getCmp('forum-tree');
-    tree.on('append', function(tree, p, node){
-       if(node.id == 40){
-           node.select.defer(100, node);
-       }
-    });
-    var sm = tree.getSelectionModel();
-    sm.on('beforeselect', function(sm, node){
-         return node.isLeaf();
-    });
-    sm.on('selectionchange', function(sm, node){
-        ds.loadForum(node.id);
-        Ext.getCmp('main-view').setTitle(node.text);
-    });
-
-
-     var searchStore = new Ext.data.Store({
-        proxy: new Ext.data.ScriptTagProxy({
-            url: 'http://extjs.com/forum/topics-browse-remote.php'
-        }),
-        reader: new Ext.data.JsonReader({
-            root: 'topics',
-            totalProperty: 'totalCount',
-            id: 'threadid'
-        }, [
-            'title', 'author',
-            {name: 'lastpost', type: 'date', dateFormat: 'timestamp'}
-        ])
-    });
-
-    // Custom rendering Template
-    var resultTpl = new Ext.XTemplate(
-        '<tpl for=".">',
-            '<div class="x-combo-list-item search-item">{title} by <b>{author}</b></div>',
-        '</tpl>'
-    );
-
-    var search = new Ext.form.ComboBox({
-        store: searchStore,
-        applyTo: 'search',
-        displayField:'title',
-        typeAhead: false,
-        loadingText: 'Searching...',
-        width: 200,
-        pageSize:10,
-        listWidth:550,
-        hideTrigger:true,
-        tpl: resultTpl,
-        minChars:3,
-        emptyText:'Quick Search',
-        onSelect: function(record){ // override default onSelect to do redirect
-            window.location =
-                String.format('http://extjs.com/forum/showthread.php?t={0}&p={1}', record.data.topicId, record.id);
-        }
-    });
-    // apply it to the exsting input element
-    //search.applyTo('search');
-
-
-
-    function toggleDetails(btn, pressed){
-        var view = Ext.getCmp('topic-grid').getView();
-        view.showPreview = pressed;
-        view.refresh();
-    }
-
-    function togglePreview(btn, pressed){
-        var preview = Ext.getCmp('preview');
-        preview[pressed ? 'show' : 'hide']();
-        preview.ownerCt.doLayout();
-    }
-});
-
-Forum.TreeLoader = function(){
-    Forum.TreeLoader.superclass.constructor.call(this);
-    this.proxy = new Ext.data.ScriptTagProxy({
-        url : this.dataUrl
-    });
-};
-Ext.extend(Forum.TreeLoader, Ext.tree.TreeLoader, {
-    dataUrl: 'http://extjs.com/forum/forums-remote.php',
-    requestData : function(node, cb){
-        this.proxy.request('read', null, {}, {
-            readRecords : function(o){
-                return o;
-            }
-        }, this.addNodes, this, {node:node, cb:cb});
-    },
-
-    addNodes : function(o, arg){
-        var node = arg.node;
-        for(var i = 0, len = o.length; i < len; i++){
-            var n = this.createNode(o[i]);
-            if(n){
-                node.appendChild(n);
-            }
-        }
-        arg.cb(this, node);
-    }
-});