X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6746dc89c47ed01b165cc1152533605f97eb8e8d..f562e4c6e5fac7bcb445985b99acbea4d706e6f0:/docs/app/controller/Classes.js diff --git a/docs/app/controller/Classes.js b/docs/app/controller/Classes.js deleted file mode 100644 index 7369f291..00000000 --- a/docs/app/controller/Classes.js +++ /dev/null @@ -1,214 +0,0 @@ -/** - * Listeners should be defined here instead of in the view classes - */ -Ext.define('Docs.controller.Classes', { - extend: 'Ext.app.Controller', - - requires: [ - 'Docs.History', - 'Docs.Syntax', - 'Docs.view.cls.Overview' - ], - - stores: [ - 'Favorites', - 'History', - 'Settings' - ], - - models: [ - 'Favorite', - 'History', - 'Setting' - ], - - refs: [ - { - ref: 'header', - selector: 'classheader' - }, - { - ref: 'tabPanel', - selector: 'classtabpanel' - }, - { - ref: 'tree', - selector: 'classtree' - } - ], - - init: function() { - this.addEvents( - /** - * @event showClass - * Fired after class shown. Used for analytics event tracking. - * @param {String} cls name of the class. - */ - "showClass", - /** - * @event showMember - * Fired after class member scrolled to view. Used for analytics event tracking. - * @param {String} cls name of the class. - * @param {String} anchor name of the member in form type-name like "method-bind". - */ - "showMember", - /** - * @event showGuide - * Fired after guide shown. Used for analytics event tracking. - * @param {String} guide name of the guide. - */ - "showGuide" - ); - - Ext.getBody().addListener('click', function(cmp, el) { - this.loadClass(el.rel); - }, this, { - preventDefault: true, - delegate: '.docClass' - }); - - this.control({ - 'classtree': { - // Can't simply assign the loadClass function as event - // handler, because an extra event options object is - // appended to the event arguments, which we don't - // want to give to the loadClass, as this would render - // the noHistory parameter to true. - classclick: function(cls) { - this.loadClass(cls); - } - }, - - 'indexcontainer': { - afterrender: function(cmp) { - cmp.el.addListener('click', function(cmp, el) { - this.showGuide(el.rel); - }, this, { - preventDefault: true, - delegate: '.guide' - }); - } - }, - - 'classoverview': { - afterrender: function(cmp) { - // Expand member when clicked - cmp.el.addListener('click', function(cmp, el) { - Ext.get(Ext.get(el).up('.member')).toggleCls('open'); - }, this, { - preventDefault: true, - delegate: '.expandable' - }); - - // Do nothing when clicking on not-expandable items - cmp.el.addListener('click', Ext.emptyFn, this, { - preventDefault: true, - delegate: '.not-expandable' - }); - } - } - }); - }, - - cache: {}, - - /** - * Loads class. - * - * @param {String} clsUrl name of the class + optionally name of the method, separated with dash. - * @param {Boolean} noHistory true to disable adding entry to browser history - */ - loadClass: function(clsUrl, noHistory) { - var cls = clsUrl; - var member; - - Ext.getCmp('container').layout.setActiveItem(1); - - // separate class and member name - var matches = clsUrl.match(/^(.*?)(?:-(.*))?$/); - if (matches) { - cls = matches[1]; - member = matches[2]; - } - - if (!noHistory) { - Docs.History.push("/api/" + clsUrl); - } - - if (this.cache[cls]) { - this.showClass(this.cache[cls], member); - } else { - if (this.getTabPanel()) { - this.getTabPanel().setLoading(true); - } - - Ext.data.JsonP.request({ - url: this.getBaseUrl() + '/output/' + cls + '.js', - callbackName: cls.replace(/\./g, '_'), - success: function(json, opts) { - this.cache[cls] = json; - this.showClass(json, member); - }, - failure : function(response, opts) { - console.log('Fail'); - }, - scope: this - }); - } - }, - - showClass: function(cls, anchor) { - var classOverview = this.getTabPanel().down('classoverview'); - - if (this.currentCls != cls) { - this.getHeader().load(cls); - - // Init overview tab if not already available - if (!classOverview) { - classOverview = Ext.create('Docs.view.cls.Overview'); - this.getTabPanel().add(classOverview); - this.getTabPanel().setActiveTab(0); - } - classOverview.load(cls); - - this.getTabPanel().setLoading(false); - - this.getTree().selectClass(cls.name); - this.fireEvent('showClass', cls.name); - } - - if (anchor) { - classOverview.scrollToEl("#" + anchor); - this.fireEvent('showMember', cls.name, anchor); - } else { - classOverview.getEl().down('.x-panel-body').scrollTo('top', 0); - } - - this.currentCls = cls; - }, - - showGuide: function(name, noHistory) { - noHistory || Docs.History.push("/guide/" + name); - - Ext.data.JsonP.request({ - url: this.getBaseUrl() + "/guides/" + name + "/README.js", - callbackName: name, - success: function(json) { - Ext.getCmp("guide").update(json.guide); - Ext.getCmp('container').layout.setActiveItem(2); - Docs.Syntax.highlight(Ext.get("guide")); - this.fireEvent('showGuide', name); - }, - scope: this - }); - }, - - /** - * Returns base URL used for making AJAX requests. - * @return {String} URL - */ - getBaseUrl: function() { - return document.location.href.replace(/#.*/, "").replace(/index.html/, ""); - } - -});