2 * Manages the loading of class documentation.
4 Ext.define("Docs.ClassLoader", {
11 * @param {String} clsUrl name of the class + optionally name of the method, separated with dash.
12 * @param {Boolean} noHistory true to disable adding entry to browser history
14 load: function(clsUrl, noHistory) {
18 // separate class and member name
19 var matches = clsUrl.match(/^(.*?)(?:-(.*))?$/);
26 Docs.History.push("/api/" + clsUrl);
29 Docs.App.setClassMode();
30 var docTabPanel = Ext.getCmp('docTabPanel');
32 Ext.getCmp('docTabPanel').setActiveTab(0);
35 if (this.cache[cls]) {
36 this.showClass(this.cache[cls], member);
39 Ext.getCmp('doc-overview').setLoading(true);
42 Ext.data.JsonP.request({
43 url: Docs.App.getBaseUrl() + '/output/' + cls + '.js',
44 callbackName: cls.replace(/\./g, '_'),
45 success: function(json, opts) {
46 this.cache[cls] = json;
47 this.showClass(json, member);
49 failure : function(response, opts) {
57 showClass: function(cls, anchor) {
58 var docTabPanel = Ext.getCmp('docTabPanel');
60 Ext.create('Docs.ClassPanel');
63 Ext.get('docTabPanel').show();
64 var pageContent = Ext.get('pageContent');
66 pageContent.setVisibilityMode(Ext.core.Element.DISPLAY).hide();
69 Ext.getCmp('treePanelCmp').selectClass(cls.name);
70 Docs.PageHeader.load(cls);
72 var docOverviewTab = Ext.getCmp('doc-overview');
73 docOverviewTab.load(cls);
74 docOverviewTab.setLoading(false);
77 Ext.getCmp('doc-overview').scrollToEl("#" + anchor);
79 var docContent = Ext.get(Ext.query('#doc-overview .x-panel-body')[0]);
80 docContent.scrollTo('top', 0);