Partial Fix #5654 - roojspacker - get it working as a doc tool...
[roojs1] / docs2 / Roo.docs.init.js
1
2
3 Roo.docs.init = {
4     
5     onReady : function()
6     {
7        
8         //if (typeof(pagedata) == 'undefined') {
9         //    Site.onReady.defer(100, Roo.docs.init);
10         //    return;
11         //}
12         //Roo.debug = 1;
13         
14         Roo.XComponent.hideProgress = true;
15         Roo.XComponent.build();
16         
17         
18         
19         
20         Roo.XComponent.on('buildcomplete', function() {
21             
22             //Roo.XComponent.modules[0].el.fireEvent('render');
23              this.loadTree();
24         }, this);
25         
26       
27         
28     },
29     
30     loadTree: function()
31     {
32         Roo.docs.doc_body_content.hide();
33         
34         Roo.Ajax.request({
35             url : 'tree.json',
36             method : 'GET',
37             success : function(res, o)
38             {
39                 var d = Roo.decode(res.responseText);
40                 Roo.log(d);
41                 d.forEach(function(e) {
42                     if (e.cn.length) {
43                         this.addTreeItem(Roo.docs.navGroup, e, 'NavSidebarItem');
44                     }
45                 }, this);
46                 d.forEach(function(e) {
47                     if (!e.cn.length) {
48                         this.addTreeItem(Roo.docs.navGroup, e, 'NavSidebarItem');
49                     }
50                 }, this);
51                 var roo = Roo.docs.navGroup.items[1].menu;
52                 roo.show(roo.triggerEl, '?', false);
53                 
54             },
55             scope : this
56         });
57         
58         
59     },
60     addTreeItem : function(parent, e, type) {
61         // add a node..
62         var node = parent.addxtypeChild(Roo.factory({
63             html: e.name.split('.').pop(),
64             id : e.name,
65             xns : Roo.bootstrap,
66             showArrow: false,
67             xtype : type,
68             preventDefault : true,
69           //  cls : type == 'NavSidebarItem' ? 'open' : '',
70             listeners : {
71                 click : (function(mi,ev,c)
72                 {
73                     
74                     ev.stopPropagation();
75                      
76                     if (c.cn.length) {
77                         Roo.log(ev);
78                         if (mi.menu.el.hasClass('show')) {
79                             mi.menu.hide();
80                         } else {
81                             mi.menu.show(mi.menu.triggerEl,'?', false);
82                         }
83                         
84                     }
85                     
86                     Roo.docs.init.loadDoc(c);
87                     
88                 }).createDelegate(this,[e], true)
89                 
90             },
91             fa :  e.cn.length  ? 'chevron-right' : '',
92             menu : !e.cn.length ? false  : Roo.factory({
93                 type : 'treeview',
94                 xns: Roo.bootstrap,
95                 xtype : 'Menu',
96                 listeners : {
97                     beforehide : (function(mi,c)
98                     {
99                         if (c.name.split('.').length < 2) {
100                             return false;
101                         }
102                         return true;
103                         
104                     }).createDelegate(this,[e], true)
105                     
106                 }
107                 
108             })
109         }));
110         parent.items.push(node);
111         if (e.cn.length  && type == 'NavSidebarItem') {
112             this.topm = node.menu;
113         }
114         
115         
116         if (!e.cn.length) {
117             return;
118         }
119         e.cn.forEach(function(ec) {
120             var cn = ec.name.split('.').pop();
121             Roo.log(cn);
122             if (cn == cn.toLowerCase()) {
123                 this.addTreeItem(node.menu, ec,'MenuItem');
124             }
125             
126         }, this);
127         e.cn.forEach(function(ec) {
128             var cn = ec.name.split('.').pop();
129             if (cn != cn.toLowerCase()) {
130                 this.addTreeItem(node.menu, ec,'MenuItem');
131             }
132         }, this);
133         
134     },
135     loadDoc : function(cls)
136     {
137         Roo.docs.doc_body_content.hide();
138         this.currentClass = cls.name;
139         if (!cls.is_class) {
140             return;
141         }
142         Roo.docs.doc_body_content.show();
143         Roo.Ajax.request({
144             url : 'symbols/' + cls.name + '.json',
145             method : 'GET',
146             success : function(res, o)
147             {
148                 var d = Roo.decode(res.responseText);
149                 this.fillDoc(d);
150                 
151             },
152             scope : this
153         });
154         
155         
156     },
157     fillDoc : function(d)
158     {
159         /*{
160             "name" : "Roo.bootstrap.Progress",
161             "augments" : [
162               "Roo.bootstrap.Component",
163               "Roo.Component",
164               "Roo.util.Observable"
165             ],
166             "desc" : "Bootstrap Progress class",
167             "config" : [
168               {
169         */
170         document.body.scrollTop  = 0;
171         for (var k in d) {
172             if (typeof(Roo.docs['doc_' + k])  !=  'undefined') {
173                 Roo.docs['doc_' + k].el.dom.innerHTML = d[k].split("\n").join("<br/>");
174             }
175         }
176         Roo.docs.doc_extends.hide();
177         Roo.docs.doc_extends_sep.hide();
178         if (d.augments.length) {
179             Roo.docs.doc_extends.show();
180             Roo.docs.doc_extends_sep.show();
181             Roo.docs.doc_extends.el.dom.innerHTML = d.augments[0];
182         }
183         Roo.docs.doc_source.el.dom.innerHTML = d.name.replace(/\./g,"/") + ".js";
184         
185         if (d.augments.length) {
186             Roo.docs.augments.show();
187             Roo.docs.augments.bodyEl().dom.innerHTML = Roo.docs.template.augments(d);
188         } else {
189             Roo.docs.augments.hide();
190         }
191         
192         
193         
194         Roo.docs.configTableContainer.hide();
195         Roo.docs.methodsTableContainer.hide();
196         Roo.docs.eventsTableContainer.hide();
197         if (d.config.length) {
198             Roo.docs.configTableContainer.show();
199             Roo.docs.configTable.store.load( { params : { data : d.config.sort(Roo.docs.template.makeSortby("name")) }});
200         } 
201         
202         if (d.methods.length) {
203             Roo.docs.methodsTable.store.load( { params : { data : Roo.docs.template.methodsSort(d) }});
204             Roo.docs.methodsTableContainer.show();
205         }
206         if (d.events.length) {
207             Roo.docs.eventsTable.store.load( { params : { data : d.events.sort(Roo.docs.template.makeSortby("name")) }});
208             Roo.docs.eventsTableContainer.show();
209         }
210         
211         
212     }
213     
214     
215     
216     
217 };
218
219
220 Roo.onReady(Roo.docs.init.onReady, Roo.docs.init);
221     
222