X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=docs%2FRoo.docs.init.js;h=62ad99092db6ee6d872830ae3488697da5c41d42;hb=37a10bf3a660fe0ebed67ac24aa1bf4121974421;hp=ec9b7457b930e674ac1044d423146630c3dade7f;hpb=93992e423e9798b79cc811bba25dcbd5a220c61c;p=roojs1 diff --git a/docs/Roo.docs.init.js b/docs/Roo.docs.init.js index ec9b7457b9..62ad99092d 100644 --- a/docs/Roo.docs.init.js +++ b/docs/Roo.docs.init.js @@ -3,8 +3,9 @@ Roo.docs.init = { classes : false, // flat version of list of classes - currentClass : '', // currently viewed class name + currentClass : '--none--', // currently viewed class name + hash : '', onReady : function() { @@ -24,9 +25,16 @@ Roo.docs.init = { Roo.XComponent.on('buildcomplete', function() { //Roo.XComponent.modules[0].el.fireEvent('render'); - this.loadTree(); + this.loadTree(); }, this); - Roo.get(document.body).on('click', this.onClick, this); + + + window.onhashchange = function() { Roo.docs.init.onHashChange(); } + + + + + //Roo.get(document.body).on('click', this.onClick, this); }, @@ -41,23 +49,42 @@ Roo.docs.init = { success : function(res, o) { var d = Roo.decode(res.responseText); - Roo.log(d); - this.classes = []; + //Roo.log(d); + this.classes = {}; // our classes witch children first.. d.forEach(function(e) { if (e.cn.length) { - this.addTreeItem(Roo.docs.navGroup, e, 'NavSidebarItem'); + this.addTreeItem(Roo.docs.navGroup, e, 'NavSidebarItem', true); } }, this); d.forEach(function(e) { if (!e.cn.length) { - this.addTreeItem(Roo.docs.navGroup, e, 'NavSidebarItem'); + this.addTreeItem(Roo.docs.navGroup, e, 'NavSidebarItem' ,true); + } + }, this); + + d.forEach(function(e) { + if (e.cn.length) { + this.addTreeItem(Roo.docs.mobileNavGroup, e, 'NavSidebarItem', false); + } }, this); + + d.forEach(function(e) { + if (!e.cn.length) { + this.addTreeItem(Roo.docs.mobileNavGroup, e, 'NavSidebarItem', false); + } + }, this); + var roo = Roo.docs.navGroup.items[1].menu; roo.show(roo.triggerEl, '?', false); + if (location.hash.length) { + this.loadHash(); + return; + } + this.loadIntro(); @@ -67,13 +94,26 @@ Roo.docs.init = { }, - addTreeItem : function(parent, e, type) { + + hideChildren : function(c) + { + if (c.node.menu) { + c.node.menu.hide(); + } + for (var i =0; i < c.cn.length; i++) { + this.hideChildren(c.cn[i]); + } + + }, + + + addTreeItem : function(parent, e, type , parent_e) { this.classes[e.name] = e; // add a node.. var node = parent.addxtypeChild(Roo.factory({ html: e.name.split('.').pop(), - id : e.name, + // id : e.name, xns : Roo.bootstrap, showArrow: false, xtype : type, @@ -86,16 +126,20 @@ Roo.docs.init = { ev.stopPropagation(); if (c.cn.length) { - Roo.log(ev); + //Roo.log(ev); if (mi.menu.el.hasClass('show')) { - mi.menu.hide(); + this.hideChildren(c); //mi.menu.hide(); + // collapse children.. + + + } else { mi.menu.show(mi.menu.triggerEl,'?', false); } } - - Roo.docs.init.loadDoc(c); + location.hash = '#' + c.name; + //Roo.docs.init.loadDoc(c); }).createDelegate(this,[e], true) @@ -119,6 +163,20 @@ Roo.docs.init = { }) })); + + // mobile nodes..? + + + + + + + if (parent_e !== false) { + e.node = node; + e.parent_menu = parent; + e.parent = parent_e == true ? null : parent_e; + } + parent.items.push(node); if (e.cn.length && type == 'NavSidebarItem') { this.topm = node.menu; @@ -130,16 +188,16 @@ Roo.docs.init = { } e.cn.forEach(function(ec) { var cn = ec.name.split('.').pop(); - Roo.log(cn); + //Roo.log(cn); if (cn == cn.toLowerCase()) { - this.addTreeItem(node.menu, ec,'MenuItem'); + this.addTreeItem(node.menu, ec,'MenuItem', parent_e !== false ? e : false); } }, this); e.cn.forEach(function(ec) { var cn = ec.name.split('.').pop(); if (cn != cn.toLowerCase()) { - this.addTreeItem(node.menu, ec,'MenuItem'); + this.addTreeItem(node.menu, ec,'MenuItem', parent_e !== false ? e : false); } }, this); @@ -147,7 +205,7 @@ Roo.docs.init = { loadClass : function(name) { - if(typeof(this.classes[name]) != 'undefined') { + if(typeof(this.classes[name]) != 'undefined' && this.classes[name].is_class ) { this.loadDoc(this.classes[name]); } @@ -178,12 +236,32 @@ Roo.docs.init = { loadDoc : function(cls) { + if (this.currentClass == cls.name) { + return; + } + //Roo.docs.mobileNavGroup.hide(); + Roo.log("loadDoc?"); Roo.docs.doc_body_content.hide(); + this.currentClass = cls.name; - if (!cls.is_class) { + if (!cls ) { Roo.docs.introBody.show(); return; } + + // expand parents.. + + var m = cls.parent_menu; + m.show(m.triggerEl,'?', false); + var mp = cls; + while ((mp = mp.parent)) { + m = mp.parent_menu; + m.show(m.triggerEl,'?', false); + } + cls.node.el.scrollIntoView(Roo.docs.sidebar.el,false); + Roo.docs.sidebar.el.select('.active').removeClass('active'); + cls.node.el.addClass('active'); + Roo.docs.introBody.hide(); Roo.docs.doc_body_content.show(); Roo.Ajax.request({ @@ -270,6 +348,24 @@ Roo.docs.init = { this.loadClass(link); }, + + onHashChange : function() + { + if (this.hash == location.hash) { + return; + } + this.loadHash(); + + }, + loadHash : function() + { + if (location.hash.length < 2) { + this.loadDoc(false); + } + this.loadClass(location.hash.substring(1)); + this.hash = location.hash; + }, + loadIntro : function() { @@ -292,6 +388,10 @@ Roo.docs.init = { // render the really simple markdown data renderIntro : function(intro) { + + Roo.docs.doc_body_content.hide(); + + var lines = intro.split("\n"); var tree = { 'name' : 'root', cn : []}; var state = [ tree ]; @@ -303,14 +403,14 @@ Roo.docs.init = { var sm = line.match(/^(\s+)(.*)/); var sml = sm ? sm[1].length: 0; - Roo.log(sml); + //Roo.log(sml); sml = sml / 4; // 4 spaces indent? var add = { name : sm ? sm[2] : line, cn : [] }; state[sml].cn.push(add); state[sml+1] = add; } - Roo.log(tree); + //Roo.log(tree); for(var i = 0; i < tree.cn.length; i++) { // make a container.. @@ -357,7 +457,7 @@ Roo.docs.init = { if (treeiii.name == 'Examples') { for (var j =0;j< treeiii.cn.length; j++) { var exs = treeiii.cn[j].name.match(/^\[([^\]]+)\](.*)$/); - footer += '
  • '+exs[2] + '
  • '; + footer += '
  • '+exs[2] + '
  • '; } continue; @@ -375,6 +475,7 @@ Roo.docs.init = { xtype : 'Link', href : '#' + ( ll ? ll[1] : treeiii.name ) , html : ll ? ll[1] : treeiii.name, + xns : Roo.bootstrap }, { @@ -392,7 +493,7 @@ Roo.docs.init = { } if (footer.length) { - Roo.log("footer:"+ footer); + //Roo.log("footer:"+ footer); ctreei.footer = '
    Examples:
    '; }