diff --git a/docs/TreeViewTemplate.html b/docs/TreeViewTemplate.html new file mode 100644 index 0000000000000000000000000000000000000000..0433a1f2e9c58584a459d58b5d071adbd6e22a82 --- /dev/null +++ b/docs/TreeViewTemplate.html @@ -0,0 +1,48 @@ +<html> + +<head> + <title></title> + <link rel="stylesheet" href="tree/screen.css"> + <link rel="stylesheet" href="tree/jquery.treeview.css"> + <script src="tree/jquery.js" type="text/javascript"></script> + <script src="tree/jquery.cookie.js" type="text/javascript"></script> + <script src="tree/jquery.treeview.js" type="text/javascript"></script> + <script> + $(document).ready(function(){ + $("#browser").treeview({ + control: "#tree_control_", + collapsed: true, + animated: 100 + }); + }); + </script> + <style> + body{margin:4px 8px;} + a { text-decoration: none;} + a:link, a:visited {color: blue;} + a:hover {color: red;} + </style> +</head> + +<body> +<table border="0" cellspacing="0" style="font-size: 11px;"> +<tr> +<td> +<div id="tree_control_" style="padding:5px"> + <a title="Collapse the entire tree below" href="#"> Collapse All</a> + <a title="Expand the entire tree below" href="#"> Expand All</a> +</div> +</td> +<!-- <td><a target="_blank" href="" id="twiki" style="vertical-align: middle;"><img src="tree/twiki.gif" /></a></td> --> +</tr> +</table> + +<!-- Tree --> +<ul id="browser" class="filetree treeview"> +%s + +</ul> +<!-- Tree --> + +</body> +</html> diff --git a/docs/createGrid.py b/docs/createGrid.py new file mode 100644 index 0000000000000000000000000000000000000000..a0d2cd1b55633512916a3673464bb4be0edd5071 --- /dev/null +++ b/docs/createGrid.py @@ -0,0 +1,215 @@ +import os +indexfile = "html/index.html" +docsfile = "html/doxygen.css" + +rootdir = os.path.abspath('./') +rootdir+='/' +print rootdir + +path = rootdir + '/docs/' + +def ReadFile(fileName, pathFlag = True): +# """This method reads file directly or from path.""" + if pathFlag: + print("Read:", path+fileName) + f = open(path+fileName) + else: + f = open(path+fileName) + print("Read:", path+fileName) + data = f.read() + f.close() + return data + + +def HTMLTreeBegin( title, links = {}): + html = '\n<li>\n<div class="hitarea expandable-hitarea"></div>\n' + html = html + '<span class="folder">%s\n' % title + for i in links.keys(): + html = html + '<a target="_blank" href="%s">[%s]</a> \n' % (links[i], i) + html = html + '</span>\n' + html = html + '<ul style="display: block;">\n' + return html + +def WriteFile( fileName, data): +# This method writes data + print("Write:", path + fileName) + f = open(path + fileName, "w") + f.write(data) + f.close() + +def HTMLTreeEnd(): + return '</li></ul>\n\n' + +def Fixcssfile( filename ): + addition = """/** atlas insert **/ +.doxyTable{ + border-collapse:collapse; + border:1px solid lightBlue; + width: 70%; + margin:0 auto; +} + +.doxyTable tr:not(:first-child) { + background: #eeeeff; + border-spacing: 0px; + padding: 0px; + border-bottom: 1px solid #c1c1dc; +} + +.doxyTable tr:hover { + background: #cde4ec; +} + +.doxyTable td { + padding:8px; + cursor:pointer; +} + +.accordion { + display: none; + width: 100%; +} + +div.content {} + +div.content h1, h2 { + text-align: center; +} +""" + text = ReadFile(filename) + if("/** atlas insert **/" in text): + print "Skipping rewriting css" + return + text += addition + WriteFile(filename, text) + +def __NewTreePage( domain, package): + content = '' + content += HTMLTreeBegin(domain) + for i in package[domain]: + content += HTMLTreeAddItem(i, 'https://gitlab.cern.ch/atlas/athena/tree/master/' + domain + '/'+ i, folder = True) + content += HTMLTreeEnd() + + temp = treePageTamplate % (content) + WriteFile("html/iframes/%s.html" % domain.lower().replace(' ', '_'), temp) + +def CreateNewMainPage(outputFileName, packagemap): + contents = """ +<script>function changeState(item) { + item.slideToggle("slow"); +} + +$( document ).ready(function() { + $(".doxyTable > tbody > tr").each(function(){ + var row = $(this); + // skip first row (header), you dont need to assing it accordion + // trigger function. it is also the same for rows which doesn't have + // id attribute. if a row doesn't have id attr, that means it is + // accordion row + if(row.attr('id') == 'header' || !row.attr('id')) return; + + // if it has id attribute, assign trigger function + row.click(function(){ + $('div#'+row.attr('id')).slideToggle(256); + // we dont want to load whole iframes before they are showed + var iframe = $('div#'+row.attr('id')).find('iframe'); + // no need to set the source again again if already set + if(iframe.attr('src')) return; + + iframe.attr('src', iframe.attr('data-src')); + }); + }); +});</script> + + <table class="doxyTable" border="0" cellpadding="0" cellspacing="0"> + <tr class="top" valign="top"> + <th class="domain">Domain</th> + </tr> + """ + keysI = sorted(packagemap.keys()) + + + for i in keysI: + if i=='': continue +# contents = contents + '\n<tr class="DCRow">\n' ######### TAG: TR1 +# contents = contents + """<td width="50%%" style="padding:8px;cursor:pointer" onclick="toggleHoba('hoba_%s', 'iframes/%s.html')" id="hoba_%s"><a>%s</a></td>\n""" % (i.replace(' ', '_'), i.lower().replace(' ', '_'), i.replace(' ', '_'), i) +# contents = contents + '</td>\n' +# contents = contents + '</tr>\n\n' ######### TAG: TR1 +# contents = contents + """<tr><td colspan="2" style="background:#d7dbe3"> +# <div style="display:none;" id="hoba_%s_div"><iframe width="100%%" frameborder="0"></iframe></div> +# </td></tr>""" % (i.replace(' ', '_')) + tagsafe = i.replace(' ', '_') + tagsafelc = i.lower().replace(' ', '_') + + basic = """<tr id="{0}"><td width="50%">{0}</td></tr><tr style="padding:0"><td colspan="2" style="padding:0"> +<div class="accordion" id="{0}"> +<iframe width="100%" height="250px" frameborder="0" data-src="iframes/{1}.html"> </iframe> +</div></td></tr>""" + basic = basic.format(tagsafe, tagsafelc) + contents += basic + + contents += "</table>" + stamp = "</div></div><!-- contents -->" + contents += stamp + mainPageTemplate = ReadFile(indexfile) +# print mainPageTemplate + WriteFile(outputFileName, mainPageTemplate.replace(stamp, contents)) + +def HTMLTreeAddItem( title, links = None, endNode = False, folder = False): + if endNode: html = '\t<li class="last">' + else: html = '\t<li>' + + if isinstance(links, str) or isinstance(links, type(u'')): + if folder: + html = html + '\t<a href="%s" target="_blank" class=""><span class="emptyFolder">%s</span></a>\n' % (links, title) + else: + html = html + '\t<a href="%s" target="_blank" class=""><span class="file">%s</span></a>\n' % (links, title) + elif isinstance(links, dict): + if folder: + html = html + '<span class="emptyFolder">%s ' % title + else: + html = html + '<span class="file">%s ' % title + for i in links.keys(): + html = html + '<a target="_blank" href="%s">[%s]</a> \n' % (links[i], i) + html = html + '</span>' + else: + html = html + '\t<span class="file">%s</span>\n' % title + return html + '\t</li>\n' + + + + + +#packagelist=[] +packagemap ={} + +for subdir, dirs, files in os.walk(rootdir): + if 'CMakeLists.txt' in files : +# packagelist.append(subdir); + package = subdir[len(rootdir):] + i = package.find('/') + if i<0 : i=0 + category = package[0: i ] + if category in packagemap: + packagemap[category].append(package[i+1:]) + else: + packagemap[category] = [package[i+1:]] +# print package + +#for st in packagelist: +# print st; +#print packagemap +#print treePageTamplate +framesdir = path+ 'html/iframes' +if not os.path.exists(framesdir): + os.makedirs(framesdir) +#category = +treePageTamplate=ReadFile("TreeViewTemplate.html", pathFlag = True) +for k in packagemap.keys(): + __NewTreePage(str(k), packagemap); + + + +CreateNewMainPage(indexfile, packagemap) +Fixcssfile(docsfile) +