├── webapp ├── __init__.py ├── cron │ ├── crontab │ └── crontab.example ├── modules │ └── __init__.py ├── static │ ├── 403.html │ ├── 404.html │ ├── 500.html │ ├── favicon.ico │ ├── images │ │ ├── logo.png │ │ ├── Github.png │ │ ├── gitter.png │ │ ├── spinner.gif │ │ ├── twitter.png │ │ ├── facebook.png │ │ ├── gplus-32.png │ │ ├── banner-dev.gif │ │ ├── banner-staging.gif │ │ ├── tree-view-tips.png │ │ ├── phylopic-vignette.png │ │ ├── Logo_Google_groups.png │ │ ├── mini-opentree-logo.png │ │ ├── tree-view-ancestors.png │ │ ├── tree-view-edge-info.png │ │ ├── tree-view-node-info.png │ │ ├── tree-view-node-jump.png │ │ ├── glyphicons-halflings.png │ │ ├── tree-view-dotted-paths.png │ │ ├── tree-view-node-sizes.png │ │ ├── tree-view-solid-paths.png │ │ └── glyphicons-halflings-white.png │ ├── img │ │ ├── glyphicons-halflings.png │ │ └── glyphicons-halflings-white.png │ ├── js │ │ ├── argus │ │ │ ├── browser.html │ │ │ ├── nameresults.html │ │ │ ├── format.css │ │ │ └── index.html │ │ ├── web2py_bootstrap.js │ │ ├── bootstrap-transition.js │ │ ├── html5shiv.js │ │ ├── share.js │ │ └── bootstrap-alert.js │ ├── robots.txt │ ├── css │ │ ├── jquery.splitter.css │ │ └── calendar.css │ └── statistics │ │ └── ott.json ├── views │ ├── __init__.py │ ├── generic.json │ ├── generic.xml │ ├── plugin_localcomments │ │ └── grid.html │ ├── generic.pdf │ ├── default │ │ ├── about.html │ │ ├── user.html │ │ └── error.html │ ├── generic.rss │ ├── plugin_tagging │ │ └── index.html │ ├── about │ │ ├── credits.html │ │ ├── materials_and_methods.html │ │ ├── developer_resources.html │ │ ├── the_synthetic_tree.html │ │ └── the_source_tree_manager.html │ ├── generic.html │ ├── generic.jsonp │ ├── generic.ics │ ├── study │ │ └── index.html │ ├── web2py_ajax.html │ ├── generic.load │ ├── synthview │ │ └── index.html │ └── treeview │ │ └── index.html ├── models │ ├── db_wizard.py │ ├── db_wizard_populate.py │ ├── menu.py │ ├── plugin_comments.py │ ├── 0.py │ └── plugin_tagging.py ├── .gitignore ├── controllers │ ├── subtrees.py │ ├── synthview.py │ ├── treeview.py │ ├── contact.py │ └── plugin_tagging.py ├── ABOUT ├── languages │ ├── plural-en.py │ ├── plural-ru.py │ ├── plural-uk.py │ └── plural-cs.py ├── web2py.routes.example.py ├── LICENSE └── routes.py ├── curator ├── __init__.py ├── cron │ ├── crontab │ └── crontab.example ├── modules │ └── __init__.py ├── static │ ├── 403.html │ ├── 404.html │ ├── 500.html │ ├── js │ │ ├── tnrs │ │ │ ├── .gitignore │ │ │ ├── package.json │ │ │ └── README.md │ │ ├── web2py_bootstrap.js │ │ ├── bootstrap-transition.js │ │ ├── html5shiv.js │ │ ├── knockout-bootstrap.min.js │ │ ├── share.js │ │ └── bootstrap-alert.js │ ├── jQuery-File-Upload-9.5.2 │ │ ├── .gitignore │ │ ├── server │ │ │ ├── node │ │ │ │ ├── .gitignore │ │ │ │ ├── public │ │ │ │ │ └── files │ │ │ │ │ │ └── .gitignore │ │ │ │ └── package.json │ │ │ ├── gae-go │ │ │ │ ├── static │ │ │ │ │ ├── robots.txt │ │ │ │ │ └── favicon.ico │ │ │ │ └── app.yaml │ │ │ ├── gae-python │ │ │ │ ├── static │ │ │ │ │ ├── robots.txt │ │ │ │ │ └── favicon.ico │ │ │ │ └── app.yaml │ │ │ └── php │ │ │ │ ├── files │ │ │ │ ├── .gitignore │ │ │ │ └── .htaccess │ │ │ │ └── index.php │ │ ├── img │ │ │ ├── loading.gif │ │ │ └── progressbar.gif │ │ ├── css │ │ │ ├── style.css │ │ │ ├── jquery.fileupload-ui-noscript.css │ │ │ ├── demo-ie8.css │ │ │ ├── jquery.fileupload-noscript.css │ │ │ ├── jquery.fileupload.css │ │ │ ├── jquery.fileupload-ui.css │ │ │ └── demo.css │ │ ├── cors │ │ │ ├── result.html │ │ │ └── postmessage.html │ │ ├── Gruntfile.js │ │ ├── blueimp-file-upload.jquery.json │ │ ├── package.json │ │ ├── bower.json │ │ ├── CONTRIBUTING.md │ │ └── js │ │ │ └── main.js │ ├── images │ │ ├── cc-zero.png │ │ ├── facebook.png │ │ ├── favicon.ico │ │ ├── favicon.png │ │ ├── gplus-32.png │ │ ├── twitter.png │ │ ├── GitHub-Mark-32px.png │ │ ├── tools │ │ │ ├── miapa-icon.png │ │ │ ├── miapa-icon.xcf │ │ │ ├── treemachine-icon.png │ │ │ └── treemachine-icon.xcf │ │ ├── glyphicons-halflings.png │ │ ├── glyphicons-halflings-white.png │ │ ├── tree-viewer-legend-ingroup.png │ │ ├── tree-viewer-legend-layers.xcf │ │ ├── study-status-under-revision.png │ │ ├── tree-viewer-legend-outgroup.png │ │ ├── tree-viewer-legend-tips-layers.xcf │ │ ├── tree-viewer-legend-tips-normal.png │ │ ├── tree-viewer-legend-tips-duplicate.png │ │ ├── tree-viewer-legend-tips-exemplar.png │ │ ├── tree-viewer-legend-tips-unmapped.png │ │ ├── tree-viewer-legend-conflict-resolves.png │ │ ├── tree-viewer-legend-internal-normal.png │ │ ├── tree-viewer-legend-tips-non-exemplar.png │ │ ├── tree-viewer-legend-internal-ambiguous.png │ │ ├── tree-viewer-legend-conflict-supported-by.png │ │ ├── tree-viewer-legend-conflict-undetermined.png │ │ └── tree-viewer-legend-conflict-conflicts-with.png │ ├── img │ │ ├── glyphicons-halflings.png │ │ └── glyphicons-halflings-white.png │ └── css │ │ ├── dialog-polyfill.css │ │ ├── bootstrap-tagsinput.css │ │ └── calendar.css ├── views │ ├── __init__.py │ ├── generic.json │ ├── generic.xml │ ├── generic.pdf │ ├── generic.rss │ ├── generic.html │ ├── generic.ics │ ├── web2py_ajax.html │ ├── default │ │ ├── user.html │ │ ├── error.html │ │ └── dashboard.html │ └── generic.load ├── test │ ├── .gitignore │ ├── testMerge.py │ ├── test2nexml.py │ ├── testString2nexml.py │ ├── testNoTreesString2nexml.py │ └── test.sh ├── progress.log ├── ABOUT ├── .gitignore ├── languages │ ├── plural-en.py │ ├── plural-ru.py │ ├── plural-uk.py │ └── plural-cs.py ├── controllers │ ├── tnrs.py │ └── supporting_files.py ├── install-ncl.sh ├── LICENSE └── routes.example.py ├── .gitattributes ├── less ├── custom-responsive.less ├── bootstrap │ ├── img │ │ ├── glyphicons-halflings.png │ │ └── glyphicons-halflings-white.png │ ├── js │ │ ├── .jshintrc │ │ ├── tests │ │ │ ├── server.js │ │ │ ├── unit │ │ │ │ ├── bootstrap-transition.js │ │ │ │ ├── bootstrap-phantom.js │ │ │ │ ├── bootstrap-affix.js │ │ │ │ ├── bootstrap-scrollspy.js │ │ │ │ └── bootstrap-alert.js │ │ │ ├── index.html │ │ │ └── phantom.js │ │ ├── bootstrap-transition.js │ │ └── bootstrap-alert.js │ └── less │ │ ├── layouts.less │ │ ├── component-animations.less │ │ ├── utilities.less │ │ ├── grid.less │ │ ├── breadcrumbs.less │ │ ├── responsive-768px-979px.less │ │ ├── hero-unit.less │ │ ├── wells.less │ │ ├── responsive-1200px-min.less │ │ ├── close.less │ │ ├── accordion.less │ │ ├── pager.less │ │ ├── media.less │ │ ├── scaffolding.less │ │ ├── responsive.less │ │ ├── thumbnails.less │ │ ├── code.less │ │ ├── alerts.less │ │ ├── bootstrap.less │ │ ├── responsive-utilities.less │ │ ├── tooltip.less │ │ ├── labels-badges.less │ │ ├── modals.less │ │ └── tests │ │ └── forms-responsive.html ├── twitter-bootstrap-v2.3.2-0-gd9b502d.zip ├── custom-bootstrap.less └── custom-other.less ├── requirements.txt ├── .gitignore ├── taxonomy └── cgi-bin │ └── Makefile ├── TESTS.md ├── mirror-files.opentreeoflife.org.sh ├── LICENSE.txt ├── mirror-supporting-files.sh ├── argus-json-notes.txt └── SITE.routes.py /webapp/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /curator/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /curator/cron/crontab: -------------------------------------------------------------------------------- 1 | #crontab -------------------------------------------------------------------------------- /webapp/cron/crontab: -------------------------------------------------------------------------------- 1 | #crontab -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.jar binary 2 | -------------------------------------------------------------------------------- /curator/modules/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /curator/static/403.html: -------------------------------------------------------------------------------- 1 | 403 2 | -------------------------------------------------------------------------------- /curator/static/404.html: -------------------------------------------------------------------------------- 1 | 404 2 | -------------------------------------------------------------------------------- /curator/static/500.html: -------------------------------------------------------------------------------- 1 | 500 2 | -------------------------------------------------------------------------------- /curator/views/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /webapp/modules/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /webapp/static/403.html: -------------------------------------------------------------------------------- 1 | 403 2 | -------------------------------------------------------------------------------- /webapp/static/404.html: -------------------------------------------------------------------------------- 1 | 404 2 | -------------------------------------------------------------------------------- /webapp/static/500.html: -------------------------------------------------------------------------------- 1 | 500 2 | -------------------------------------------------------------------------------- /webapp/views/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /curator/cron/crontab.example: -------------------------------------------------------------------------------- 1 | #crontab -------------------------------------------------------------------------------- /curator/test/.gitignore: -------------------------------------------------------------------------------- 1 | .out.* 2 | -------------------------------------------------------------------------------- /webapp/cron/crontab.example: -------------------------------------------------------------------------------- 1 | #crontab -------------------------------------------------------------------------------- /curator/progress.log: -------------------------------------------------------------------------------- 1 | [2013-10-02 16:18:27] START 2 | -------------------------------------------------------------------------------- /curator/static/js/tnrs/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /curator/ABOUT: -------------------------------------------------------------------------------- 1 | Write something about this app. 2 | Developed with web2py. 3 | -------------------------------------------------------------------------------- /curator/static/jQuery-File-Upload-9.5.2/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.pyc 3 | node_modules 4 | -------------------------------------------------------------------------------- /curator/static/jQuery-File-Upload-9.5.2/server/node/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | -------------------------------------------------------------------------------- /curator/static/jQuery-File-Upload-9.5.2/server/node/public/files/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /webapp/views/generic.json: -------------------------------------------------------------------------------- 1 | {{from gluon.serializers import json}}{{=XML(json(response._vars))}} 2 | -------------------------------------------------------------------------------- /curator/static/jQuery-File-Upload-9.5.2/server/gae-go/static/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /curator/views/generic.json: -------------------------------------------------------------------------------- 1 | {{from gluon.serializers import json}}{{=XML(json(response._vars))}} 2 | -------------------------------------------------------------------------------- /curator/static/jQuery-File-Upload-9.5.2/server/gae-python/static/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /curator/static/jQuery-File-Upload-9.5.2/server/php/files/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | !.htaccess 4 | -------------------------------------------------------------------------------- /curator/views/generic.xml: -------------------------------------------------------------------------------- 1 | {{from gluon.serializers import xml}}{{=XML(xml(response._vars,quote=False))}} 2 | -------------------------------------------------------------------------------- /webapp/models/db_wizard.py: -------------------------------------------------------------------------------- 1 | ### we prepend t_ to tablenames and f_ to fieldnames for disambiguity 2 | 3 | -------------------------------------------------------------------------------- /webapp/views/generic.xml: -------------------------------------------------------------------------------- 1 | {{from gluon.serializers import xml}}{{=XML(xml(response._vars,quote=False))}} 2 | -------------------------------------------------------------------------------- /less/custom-responsive.less: -------------------------------------------------------------------------------- 1 | @import "bootstrap/less/responsive.less"; 2 | @import "custom-variables.less"; 3 | -------------------------------------------------------------------------------- /webapp/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/webapp/static/favicon.ico -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | requests 2 | python-dateutil==2.2 3 | locket==0.1.1 4 | bleach 5 | jwcrypto==0.9.1 6 | python_jwt 7 | -------------------------------------------------------------------------------- /webapp/static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/webapp/static/images/logo.png -------------------------------------------------------------------------------- /webapp/static/images/Github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/webapp/static/images/Github.png -------------------------------------------------------------------------------- /webapp/static/images/gitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/webapp/static/images/gitter.png -------------------------------------------------------------------------------- /webapp/static/images/spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/webapp/static/images/spinner.gif -------------------------------------------------------------------------------- /webapp/static/images/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/webapp/static/images/twitter.png -------------------------------------------------------------------------------- /curator/static/images/cc-zero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/curator/static/images/cc-zero.png -------------------------------------------------------------------------------- /curator/static/images/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/curator/static/images/facebook.png -------------------------------------------------------------------------------- /curator/static/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/curator/static/images/favicon.ico -------------------------------------------------------------------------------- /curator/static/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/curator/static/images/favicon.png -------------------------------------------------------------------------------- /curator/static/images/gplus-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/curator/static/images/gplus-32.png -------------------------------------------------------------------------------- /curator/static/images/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/curator/static/images/twitter.png -------------------------------------------------------------------------------- /webapp/.gitignore: -------------------------------------------------------------------------------- 1 | private/janrain.key 2 | config 3 | databases 4 | cache 5 | sessions 6 | errors 7 | sessions 8 | uploads 9 | -------------------------------------------------------------------------------- /webapp/static/images/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/webapp/static/images/facebook.png -------------------------------------------------------------------------------- /webapp/static/images/gplus-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/webapp/static/images/gplus-32.png -------------------------------------------------------------------------------- /webapp/static/images/banner-dev.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OpenTreeOfLife/opentree/HEAD/webapp/static/images/banner-dev.gif -------------------------------------------------------------------------------- /webapp/views/plugin_localcomments/grid.html: -------------------------------------------------------------------------------- 1 | {{extend 'layout.html'}} 2 | 3 |
6 | Where the source trees came from. 7 | 8 |
9 | Where the taxonomies came from. 10 | 11 |
12 | Method for combining the taxonomies. 13 | 14 |
15 | Explanation of algorithm for synthesizing the tree. 16 | 17 |
| {{=A(el['study_id'], _href=el['status_link'])}} | 5 | {{if not el['has_status']:}} 6 |{{=el['message']}} 7 | {{try: 8 | mll = el['message_link_list'] 9 | except: 10 | mll = [] 11 | pass 12 | if mll: 13 | for linkname, link in mll:}} 14 | {{=A(linkname, _href=link)}} 15 | {{pass}} 16 | {{pass}} 17 | | 18 | {{else:}} 19 |{{=el['message']}} | 20 | {{pass}} 21 | {{pass}} 22 |
13 | TODO: What else goes here? Lorem ipsum dolor sit amet, 14 | consectetur adipiscing elit. In bibendum, magna et viverra 15 | tincidunt, nisi leo dapibus massa, sit amet fermentum dui magna a 16 | nunc. Maecenas a ligula libero. Cras id tempus dui. 17 |
18 |19 | Nam at vehicula augue. Vestibulum varius ligula ante, sit amet 20 | gravida mi semper non. Nunc ornare bibendum ultrices. Ut nec 21 | porttitor enim. Vivamus luctus semper risus, ac imperdiet ante 22 | pulvinar in. 23 |
24 |25 | Vivamus urna lectus, rutrum nec odio ac, ullamcorper sagittis 26 | dolor. Sed lacinia dolor a mauris mollis cursus. Fusce tristique 27 | dictum luctus. Vestibulum ante ipsum primis in faucibus orci 28 | luctus et ultrices posuere cubilia Curae; Nam arcu nisi, pharetra 29 | at felis et, condimentum bibendum tellus. In vitae ante ut elit 30 | mollis auctor sed a tortor. 31 |
32 |Search all open tree of life sites
10 |
21 |
9 | TODO: What else goes here? Lorem ipsum dolor sit amet, 10 | consectetur adipiscing elit. In bibendum, magna et viverra 11 | tincidunt, nisi leo dapibus massa, sit amet fermentum dui magna a 12 | nunc. Maecenas a ligula libero. Cras id tempus dui. 13 |
14 |15 | Vivamus urna lectus, rutrum nec odio ac, ullamcorper sagittis 16 | dolor. Sed lacinia dolor a mauris mollis cursus. Fusce tristique 17 | dictum luctus. Vestibulum ante ipsum primis in faucibus orci 18 | luctus et ultrices posuere cubilia Curae; Nam arcu nisi, pharetra 19 | at felis et, condimentum bibendum tellus. In vitae ante ut elit 20 | mollis auctor sed a tortor. 21 |
22 |23 | Ut magna dolor, ultricies nec leo sed, tempor iaculis orci. 24 | Integer dignissim odio nec odio imperdiet, ac ultrices sapien 25 | tristique. In a urna ut eros hendrerit fringilla nec ut ligula. 26 | Sed pulvinar sem vel turpis dapibus mattis. Etiam pretium nibh 27 | quis turpis vulputate suscipit. Suspendisse consequat, dolor 28 | vitae aliquet rhoncus, ipsum nisi tincidunt odio, non pretium 29 | felis erat nec elit. Nullam quis mi lobortis orci volutpat 30 | commodo in iaculis nulla. Mauris sit amet ante quis lectus 31 | vestibulum varius sed vel nisi. 32 |
33 |34 | Nam at vehicula augue. Vestibulum varius ligula ante, sit amet 35 | gravida mi semper non. Nunc ornare bibendum ultrices. Ut nec 36 | porttitor enim. Vivamus luctus semper risus, ac imperdiet ante 37 | pulvinar in. 38 |
39 |9 | TODO: What else goes here? Lorem ipsum dolor sit amet, 10 | consectetur adipiscing elit. In bibendum, magna et viverra 11 | tincidunt, nisi leo dapibus massa, sit amet fermentum dui magna a 12 | nunc. Maecenas a ligula libero. Cras id tempus dui. 13 |
14 |15 | Vivamus urna lectus, rutrum nec odio ac, ullamcorper sagittis 16 | dolor. Sed lacinia dolor a mauris mollis cursus. Fusce tristique 17 | dictum luctus. Vestibulum ante ipsum primis in faucibus orci 18 | luctus et ultrices posuere cubilia Curae; Nam arcu nisi, pharetra 19 | at felis et, condimentum bibendum tellus. In vitae ante ut elit 20 | mollis auctor sed a tortor. 21 |
22 |23 | Ut magna dolor, ultricies nec leo sed, tempor iaculis orci. 24 | Integer dignissim odio nec odio imperdiet, ac ultrices sapien 25 | tristique. In a urna ut eros hendrerit fringilla nec ut ligula. 26 | Sed pulvinar sem vel turpis dapibus mattis. Etiam pretium nibh 27 | quis turpis vulputate suscipit. Suspendisse consequat, dolor 28 | vitae aliquet rhoncus, ipsum nisi tincidunt odio, non pretium 29 | felis erat nec elit. Nullam quis mi lobortis orci volutpat 30 | commodo in iaculis nulla. Mauris sit amet ante quis lectus 31 | vestibulum varius sed vel nisi. 32 |
33 |34 | Nam at vehicula augue. Vestibulum varius ligula ante, sit amet 35 | gravida mi semper non. Nunc ornare bibendum ultrices. Ut nec 36 | porttitor enim. Vivamus luctus semper risus, ac imperdiet ante 37 | pulvinar in. 38 |
39 |Pre DB p element
4 | 5 |Post DB p element
6 | 7 |Pre vars dump
3 |{{=default_apis}}
4 |Post vars dump
5 | 6 |Pre DB p element
7 | 8 |Post DB p element
9 | 10 |