PageRenderTime 49ms CodeModel.GetById 20ms RepoModel.GetById 1ms app.codeStats 0ms

/index.php

https://github.com/marthlab/iseqtools-portal
PHP | 570 lines | 514 code | 56 blank | 0 comment | 42 complexity | ec51888a3b3b162e1a7658f010bcc35b MD5 | raw file
  1. <?php
  2. switch ($_SERVER['SERVER_NAME']) {
  3. case 'localhost':
  4. $base_route = '';
  5. $base_url = 'http://localhost:8081' . $base_route;
  6. break;
  7. case 'bioinformatics.bc.edu':
  8. $base_route = '/marthlab/iseqtools-portal';
  9. $base_url = 'http://bioinformatics.bc.edu' . $base_route;
  10. break;
  11. case 'iseqtools.org':
  12. $base_route = '';
  13. $base_url = 'http://iseqtools.org' . $base_route;
  14. break;
  15. }
  16. ?>
  17. <!DOCTYPE html>
  18. <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
  19. <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
  20. <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
  21. <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
  22. <head>
  23. <meta charset="utf-8">
  24. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  25. <title></title>
  26. <meta name="description" content="">
  27. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  28. <link href='http://fonts.googleapis.com/css?family=Quicksand:300,400' rel='stylesheet' type='text/css'>
  29. <link href="<?php echo $base_url; ?>/css/bootstrap.css" rel="stylesheet">
  30. <link href="<?php echo $base_url; ?>/css/bootstrap-responsive.css" rel="stylesheet">
  31. <link href="<?php echo $base_url; ?>/css/main.css" rel="stylesheet">
  32. <script src="<?php echo $base_url; ?>/js/vendor/modernizr-2.6.2.min.js"></script>
  33. </head>
  34. <body>
  35. <div id="navbar" class="navbar navbar-inverse navbar-fixed-top">
  36. <div class="navbar-inner">
  37. <div class="container">
  38. <button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
  39. <span class="icon-bar"></span>
  40. <span class="icon-bar"></span>
  41. <span class="icon-bar"></span>
  42. </button>
  43. <a class="brand" id="logo" href="<?php echo $base_url; ?>/">iSeqTools</a>
  44. <a class="brand" id="nhgri" href="http://genome.gov">an NHGRI project</a>
  45. <div class="nav-collapse collapse">
  46. <ul id="main_nav" class="nav">
  47. </ul>
  48. </div><!--/.nav-collapse -->
  49. </div>
  50. </div>
  51. </div>
  52. <div class="container" id="main">
  53. <div id="workflows_carousel" class="carousel slide">
  54. </div>
  55. <div id="breadcrumbs"></div>
  56. <div id="graph">
  57. <svg preserveAspectRatio="xMidYMid meet" class="display_svg" id="display_svg_1">
  58. </svg>
  59. <svg preserveAspectRatio="xMidYMid meet" class="display_svg" id="display_svg_2">
  60. </svg>
  61. <svg id="layout_svg" preserveAspectRatio="none">
  62. </svg>
  63. </div>
  64. <!-- Main hero unit for a primary marketing message or call to action -->
  65. <div class="hero-unit" id="info">
  66. <div id="info_inner"></div>
  67. </div>
  68. <div id="teams">
  69. </div>
  70. </div> <!-- /container -->
  71. <!--[if lt IE 7]>
  72. <p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
  73. <![endif]-->
  74. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  75. <script>window.jQuery || document.write('<script src="<?php echo $base_url; ?>/js/vendor/jquery-1.9.1.min.js"><\/script>')</script>
  76. <script src="<?php echo $base_url; ?>/js/vendor/jquery.reject.min.js"></script>
  77. <script src="<?php echo $base_url; ?>/js/vendor/jquery.svg.min.js"></script>
  78. <script src="<?php echo $base_url; ?>/js/vendor/jquery.qtip.min.js"></script>
  79. <script src="<?php echo $base_url; ?>/js/vendor/davis.min.js"></script>
  80. <script src="<?php echo $base_url; ?>/js/vendor/bootstrap.js"></script>
  81. <script src="<?php echo $base_url; ?>/js/vendor/underscore-min.js"></script>
  82. <script src="<?php echo $base_url; ?>/js/vendor/d3.js"></script>
  83. <script src="<?php echo $base_url; ?>/js/vendor/dagre.js"></script>
  84. <script src="<?php echo $base_url; ?>/js/vendor/colorbrewer.js"></script>
  85. <script src="<?php echo $base_url; ?>/js/vendor/glow.js"></script>
  86. <script type="text/html" id='main_nav_template'>
  87. <li class="dropdown">
  88. <a class="dropdown-toggle" data-toggle="dropdown">Workflows <b class="caret"></b></a>
  89. <ul class="dropdown-menu">
  90. <% _(t.workflows).each(function(wf){ %>
  91. <li><a class="dropdown-toggle" data-toggle="dropdown" href="<%= wf.url() %>"><%= wf.name %></a></li>
  92. <% }); %>
  93. </ul>
  94. </li>
  95. <li class="dropdown">
  96. <a class="dropdown-toggle" data-toggle="dropdown">Pipelines <b class="caret"></b></a>
  97. <ul class="dropdown-menu">
  98. <% _(t.pipelines).each(function(pl){ %>
  99. <li><a class="dropdown-toggle" data-toggle="dropdown" href="<%= pl.url() %>"><%= pl.name %></a></li>
  100. <% }); %>
  101. </ul>
  102. </li>
  103. <li class="dropdown">
  104. <a class="dropdown-toggle" data-toggle="dropdown">Tools <b class="caret"></b></a>
  105. <ul class="dropdown-menu">
  106. <% _(t.root_tool_groups).each(function(root_tools, group_name){ %>
  107. <li class="dropdown-submenu">
  108. <a class="dropdown-toggle" data-toggle="dropdown" href="#"><%= group_name %></a>
  109. <ul class="dropdown-menu">
  110. <% _(root_tools).each(function(tool){ %>
  111. <% var has_subtools = tool.subtools.length > 0 %>
  112. <li class="<%= has_subtools ? 'dropdown-submenu' : '' %>">
  113. <a class="dropdown-toggle" data-toggle="dropdown" href="<%= tool.url() %>"><%= tool.name %></a>
  114. <% if(has_subtools) { %>
  115. <ul class="dropdown-menu">
  116. <% _(tool.subtools).each(function(subtool){ %>
  117. <li><a class="dropdown-toggle" data-toggle="dropdown" href="<%= subtool.url() %>"><%= subtool.name %></a></li>
  118. <% }); %>
  119. </ul>
  120. <% } %>
  121. </li>
  122. <% }); %>
  123. </ul>
  124. </li>
  125. <% }); %>
  126. </ul>
  127. </li>
  128. <li class="dropdown">
  129. <a class="dropdown-toggle" data-toggle="dropdown">Data Types <b class="caret"></b></a>
  130. <ul class="dropdown-menu">
  131. <% _(t.data_types).each(function(dt){ %>
  132. <li><a class="dropdown-toggle" data-toggle="dropdown" href="<%= dt.url() %>"><%= dt.name.toTitleCase() %></a></li>
  133. <% }); %>
  134. </ul>
  135. </li>
  136. <li class="dropdown">
  137. <a class="dropdown-toggle" data-toggle="dropdown">Teams <b class="caret"></b></a>
  138. <ul class="dropdown-menu">
  139. <% _(t.teams).each(function(team){ %>
  140. <li><a class="dropdown-toggle" data-toggle="dropdown" href="<%= team.url() %>"><%= team.name %></a></li>
  141. <% }); %>
  142. </ul>
  143. </li>
  144. <li class="dropdown">
  145. <a class="dropdown-toggle" data-toggle="dropdown" href="<%= t.pegasus.url() %>"><%= t.pegasus.name %></a>
  146. </li>
  147. <% _(t.generic_pages).each(function(gp){ %>
  148. <li class="dropdown">
  149. <a class="dropdown-toggle" data-toggle="dropdown" href="<%= gp.url() %>"><%= gp.name %></a>
  150. </li>
  151. <% }); %>
  152. </script>
  153. <script type="text/html" id='workflows_carousel_template'>
  154. <div class="carousel-inner">
  155. <div class="active item heading">Find software for your sequence analysis project</div>
  156. <% _(t.workflows).each(function(wf, i){ %>
  157. <div class="item"><a href="<%= wf.url() %>"><%= wf.name %></a></div>
  158. <% }); %>
  159. <div class="item"><a href="<%= t.pegasus.url() %>">Manage Your Workflows</a></div>
  160. </div>
  161. <ol class="carousel-indicators">
  162. <li data-target="#workflows_carousel" data-slide-to="0" class="active heading"></li>
  163. <% _(t.workflows).each(function(wf, i){ %>
  164. <li style="background-color:<%= wf.color() %>; border-color:<%= wf.color() %>" data-target="#workflows_carousel" data-slide-to="<%= i+1 %>" ></li>
  165. <% }); %>
  166. <li style="background-color:green; border-color:green" data-target="#workflows_carousel" data-slide-to="<%= t.workflows.length+1 %>" class=""></li>
  167. </ol>
  168. <a class="carousel-control left" data-slide="prev">&lsaquo;</a>
  169. <a class="carousel-control right" data-slide="next">&rsaquo;</a>
  170. </script>
  171. <script type="text/html" id='breadcrumbs_template'>
  172. <% var crumbs = t.crumbs.reverse(); %>
  173. <% _.each(crumbs, function(item, i){ %>
  174. <% var item_name = item.name %>
  175. <% if(i === crumbs.length-1) { %>
  176. <span><%= item_name %></span>
  177. <% } else { %>
  178. <a href="<%= item.url() %>"><%= item_name %></a>&nbsp;&nbsp;&gt;&gt;&nbsp;
  179. <% } %>
  180. <% }); %>
  181. </script>
  182. <script type="text/html" id='info_about_template'>
  183. <p>
  184. Genomic analysis consists of complex problems, and involves various data types and numerous fast-changing tools.
  185. This site organizes genomic analysis information around identified genomic workflows comprising nuclear genomic tasks such as read mapping or structural variant calling.
  186. These tasks operate on as input, and produce as output, genomic data such as sequencing reads, alignments, or annotated variants.
  187. Multiple software pipelines produced by GS-IT participants may be available as disparate implementations of the same workflow.
  188. The <b>visual GS-IT network explorer</b> is organized around the above-introduced concepts, in four semantic zoom levels corresponding to increased detail and decreased generality.
  189. </p>
  190. <ul>
  191. <li><b>Zoom level 1: Overview.</b> This level displays all workflows implemented by GS-IT project participants. Upon selecting a colored path representing a workflow, the view will transition to the next zoom level.
  192. </li>
  193. <li><b>Zoom level 2: Workflow.</b> This level reveals the individual pipelines implementing a workflow, which are represented as differently-colored paths linking genomic tasks. Some pipelines may implement only a subset of tasks within a particular workflow. The information panel also shows these constituent pipelines as a conventional list. Upon selecting a colored path representing a pipeline, the view will transition to the next zoom level.
  194. </li>
  195. <li><b>Zoom level 3: Pipeline.</b> This level shows how a specific pipeline links together various tools to accomplish certain tasks. The information panel shows further textual information about the pipeline, as well as a list of the tools employed. Each tool employed by the pipeline can be selected to transition to the next zoom level. The information panel may also include links to demos, downloads, and external resources such as Biostar discussions.
  196. </li>
  197. <li><b>Zoom level 4: Tool.</b> This level shows what inputs and outputs are associated with a tool in the context of a particular pipeline. The information panel shows further textual information about the tool.
  198. </li>
  199. </ul>
  200. </script>
  201. <script type="text/html" id='info_pegasus_template'>
  202. <h1>Pegasus Workflow Management System</h1>
  203. <div class="info_inline">
  204. <h3>Developed by:</h3> <a href="/teams/usc">USC</a><br>
  205. <h3>Website:</h3> <a href="http://pegasus.isi.edu/">http://pegasus.isi.edu/</a>
  206. </div>
  207. <ul>
  208. <li>
  209. <b>Pegasus is a workflow planner ("compiler") which can handle everything from single-task workflows to workflows with millions of tasks</b>
  210. <ul>
  211. <li>Workflows enables parallel computation</li>
  212. <li>Pegasus workflows are described in a higher level portable and reusable format</li>
  213. <li>Enables execution on standard compute infrastructures (clouds, grids, campus clusters, ...)</li>
  214. </ul>
  215. </li>
  216. <li>
  217. <b>Pegasus automatically restructures the workflow to improve performance and data management</b>
  218. <ul>
  219. <li>Task clustering - combining short tasks into longer jobs</li>
  220. <li>Workflow reduction / data reuse - workflows are minimized based on existing data</li>
  221. <li>Data cleanup - Pegasus maintains a minimal storage footprint during execution</li>
  222. </ul>
  223. </li>
  224. <li>
  225. <b> Pegasus automatically plans and optimizes data placement</b>
  226. </li>
  227. <li>
  228. <b>Pegasus is not just for large-scale workflows. Other reasons for using Pegasus:</b>
  229. <ul>
  230. <li>Well defined failure recovery - automatic retries in case of failure to increase the overall reliability</li>
  231. <li>Monitoring - provenance data</li>
  232. <li>Debugging - tools to pinpoint failures</li>
  233. </ul>
  234. </li>
  235. </ul>
  236. </script>
  237. <script type="text/html" id='info_summary_template'>
  238. <p>
  239. Welcome to the Genome Sequencing Informatics Tools (GS-IT) Program, funded by the National Human Genome Research Institute. Six participant informatics groups are developing powerful and researcher-friendly sequence analysis tools. This portal is designed for users and developers to explore the tools and pipelines built by project participants.
  240. </script>
  241. <script type="text/html" id='info_data_type_template'>
  242. <h1>Data Type: <%= t.name.toTitleCase() %></h1>
  243. <p><%= t.description %></p>
  244. <% if(t.pipelines_dedicated.length > 0) { %>
  245. <div class="info_float">
  246. <h2><a href="#" class="tooltipped" data-toggle="tooltip" data-placement="right" title="Pipelines that convert, adjust, filter, or merge a particular data type">Utility pipelines</a> for <%= t.name %>:</h2>
  247. <ul>
  248. <% _(t.pipelines_dedicated).each(function(pl){ %>
  249. <li><a href="<%= pl.url() %>"><%= pl.name %></a> (<a href="<%= pl.team.url() %>"><%= pl.team.name %></a>)</li>
  250. <% }); %>
  251. </ul>
  252. </div>
  253. <% } %>
  254. <% if(t.pipelines.length > 0) { %>
  255. <div class="info_float">
  256. <h2>All pipelines involving <%= t.name %>:</h2>
  257. <ul>
  258. <% _(t.pipelines).each(function(pl){ %>
  259. <li><a href="<%= pl.url() %>"><%= pl.name %></a> (<a href="<%= pl.team.url() %>"><%= pl.team.name %></a>)</li>
  260. <% }); %>
  261. </ul>
  262. </div>
  263. <% } %>
  264. </script>
  265. <script type="text/html" id='info_workflow_template'>
  266. <h1>Workflow: <%= t.name %></h1>
  267. <h2><%= t.question %></h2>
  268. <p>This workflow consumes <%= t.in_data_types.map(function(dt){return dt.name;}).toEnglishList() %> and produces <%= t.out_data_types.map(function(dt){return dt.name}).toEnglishList()%>.</p>
  269. <% if(t.pipelines.length > 0) { %>
  270. <div class="info_float">
  271. <h2>Pipelines implementing this workflow:</h2>
  272. <ul>
  273. <% _(t.pipelines).each(function(pl){ %>
  274. <li><a href="<%= pl.url() %>"><%= pl.name %></a> (<a href="<%= pl.team.url() %>"><%= pl.team.name %></a>)</li>
  275. <% }); %>
  276. </ul>
  277. </div>
  278. <% } %>
  279. </script>
  280. <script type="text/html" id='info_pipeline_template'>
  281. <h1>Pipeline: <%= t.name %></h1>
  282. <% if(t.team) { %>
  283. <div class="info_inline">
  284. <h3>Developed by:</h3> <a href="<%= t.team.url() %>"><%= t.team.name %></a>
  285. </div>
  286. <% } %>
  287. <% var filelist = _.uniq(t.in_data_format_usages.map(function(dfu){return dfu.label;})); %>
  288. <p>This pipeline accepts the following file(s) as input: <%= filelist.toEnglishList() %>.</p>
  289. <% if(t.workflow) { %>
  290. <p>This pipeline implements the <a href="<%= t.workflow.url() %>"><%= t.workflow.name %></a> workflow.</p>
  291. <% } %>
  292. <% if(t.tools.length > 0) { %>
  293. <div class="info_float">
  294. <h2>Tools incorporated:</h2>
  295. <ul>
  296. <% _(t.tools).each(function(tool){ %>
  297. <li><a href="<%= tool.url() %>"><%= tool.name %></a><% if(tool.team) { %> (<a href="<%= tool.team.url() %>"><%= tool.team.name %></a>)<% } %></li>
  298. <% }); %>
  299. </ul>
  300. </div>
  301. <% } %>
  302. <% if(t.tutorials.length > 0) { %>
  303. <div class="info_float">
  304. <h2>Tutorials:</h2>
  305. <ul>
  306. <% _(t.tutorials).each(function(tutorial){ %>
  307. <li><a href="<%= tutorial.url %>"><%= tutorial.label %></a></li>
  308. <% }); %>
  309. </ul>
  310. </div>
  311. <% } %>
  312. <% if(t.demos.length > 0) { %>
  313. <div class="info_float">
  314. <h2>Demos:</h2>
  315. <ul>
  316. <% _(t.demos).each(function(demo){ %>
  317. <li><a href="<%= demo.url %>"><%= demo.label %></a></li>
  318. <% }); %>
  319. </ul>
  320. </div>
  321. <% } %>
  322. </script>
  323. <script type="text/html" id='info_tool_usage_template'>
  324. <h1>Tool used: <%= t.tool.name %></h1>
  325. <% if(t.tool.team) { %>
  326. <div class="info_inline">
  327. <h3>Developed by:</h3> <a href="<%= t.tool.team.url() %>"><%= t.tool.team.name %></a>
  328. </div>
  329. <% } %>
  330. <% if(t.external_url) { %>
  331. <div class="info_inline">
  332. <h3>Website:</h3> <a href="<%= t.external_url %>"><%= t.external_url %></a>
  333. </div>
  334. <% } %>
  335. <p>In this context, <%= t.tool.name %> consumes <%= t.inputsAsEnglish() %> and produces <%= t.outputsAsEnglish() %>.</p>
  336. <% if(t.tool.parent_tool) { %>
  337. <div class="info_inline">
  338. <h3>Parent tool:</h3> <a href="<%= t.tool.parent_tool.url() %>"><%= t.tool.parent_tool.name %></a>
  339. </div>
  340. <% } %>
  341. <% if(t.tool.subtools.length > 0) { %>
  342. <div class="info_float">
  343. <h2>Subtools:</h2>
  344. <% _(t.tool.subtools).each(function(subtool){ %>
  345. <li><a href="<%= subtool.url() %>"><%= subtool.name %></a></li>
  346. <% }); %>
  347. </div>
  348. <% } %>
  349. <% if(t.tool.pipelines.filter(function(pl){return pl !== t.pipeline;}).length > 0) { %>
  350. <div class="info_float">
  351. <h2>Incorporated in other pipelines:</h2>
  352. <ul>
  353. <% _(t.tool.pipelines.filter(function(pl){return pl !== t.pipeline;})).each(function(pl){ %>
  354. <li><a href="<%= pl.url() %>"><%= pl.name %></a><% if(pl.team){ %> (<a href="<%= pl.team.url() %>"><%= pl.team.name %></a>)<% } %></li>
  355. <% }); %>
  356. </ul>
  357. </div>
  358. <% } %>
  359. <% if(t.tool.tutorials.length > 0) { %>
  360. <div class="info_float">
  361. <h2>Tutorials:</h2>
  362. <ul>
  363. <% _(t.tool.tutorials).each(function(tutorial){ %>
  364. <li><a href="<%= tutorial.url %>"><%= tutorial.label %></a></li>
  365. <% }); %>
  366. </ul>
  367. </div>
  368. <% } %>
  369. <% if(t.tool.demos.length > 0) { %>
  370. <div class="info_float">
  371. <h2>Demos:</h2>
  372. <ul>
  373. <% _(t.tool.demos).each(function(demo){ %>
  374. <li><a href="<%= demo.url %>"><%= demo.label %></a></li>
  375. <% }); %>
  376. </ul>
  377. </div>
  378. <% } %>
  379. </script>
  380. <script type="text/html" id='info_team_template'>
  381. <h1>Team: <%= t.name %></h1>
  382. <div class="info_inline">
  383. <h3>Principal Investigator<%= t.principal_investigators.length > 1 ? 's':'' %>:</h3>
  384. <ul>
  385. <% _(t.principal_investigators).each(function(pi, i){ %><%= (i !== 0) ? ', ':'' %>
  386. <li><a href=mailto:<%= pi.email %>><%= pi.name %></a></li><% }); %>
  387. </ul>
  388. </div>
  389. <div class="info_inline">
  390. <h3>Project Title:</h3>
  391. <p><%= t.project_title %></p>
  392. </div>
  393. <% if(t.project_url) { %>
  394. <div class="info_inline">
  395. <h3>Project Site:</h3> <a href="<%= t.project_url %>"><%= t.project_url %></a>
  396. </div>
  397. <% } %>
  398. <% if(t.group_url) { %>
  399. <div class="info_inline">
  400. <h3>Group Site:</h3> <a href="<%= t.group_url %>"><%= t.group_url %></a>
  401. </div>
  402. <% } %>
  403. <% if(t.institution_urls.length > 0) { %>
  404. <div class="info_inline">
  405. <h3>Institution Site<%= t.institution_urls.length > 1 ? 's':'' %>:</h3> <%= _(t.institution_urls).map(function(url){
  406. return '<a href="'+url+'">'+url+'</a>';
  407. }).join(', ') %>
  408. </div>
  409. <% } %>
  410. <% if(t.root_tools.length > 0) { %>
  411. <div class="info_float">
  412. <h2>Tools developed:</h2>
  413. <ul>
  414. <% _(t.root_tools).each(function(root_tool){ %>
  415. <li><a href="<%= root_tool.url() %>"><%= root_tool.name %></a></li>
  416. <% }); %>
  417. </ul>
  418. </div>
  419. <% } %>
  420. <% if(t.pipelines.length > 0) { %>
  421. <div class="info_float">
  422. <h2>Pipelines developed:</h2>
  423. <ul>
  424. <% _(t.pipelines).each(function(pl){ %>
  425. <li><a href="<%= pl.url() %>"><%= pl.name %></a></li>
  426. <% }); %>
  427. </ul>
  428. </div>
  429. <% } %>
  430. </script>
  431. <script type="text/html" id='info_tool_template'>
  432. <h1>Tool: <%= t.name %></h1>
  433. <% if(t.team) { %>
  434. <div class="info_inline">
  435. <h3>Developed by:</h3> <a href="<%= t.team.url() %>"><%= t.team.name %></a>
  436. </div>
  437. <% } %>
  438. <% if(t.external_url) { %>
  439. <div class="info_inline">
  440. <h3>Website:</h3> <a href="<%= t.external_url %>"><%= t.external_url %></a>
  441. </div>
  442. <% } %>
  443. <% if(t.parent_tool) { %>
  444. <div class="info_inline">
  445. <h3>Parent tool:</h3> <a href="<%= t.parent_tool.url() %>"><%= t.parent_tool.name %></a>
  446. </div>
  447. <% } %>
  448. <% if(t.subtools.length > 0) { %>
  449. <div class="info_float">
  450. <h2>Subtools:</h2>
  451. <% _(t.subtools).each(function(subtool){ %>
  452. <li><a href="<%= subtool.url() %>"><%= subtool.name %></a></li>
  453. <% }); %>
  454. </div>
  455. <% } %>
  456. <% if(t.pipelines.length > 0) { %>
  457. <div class="info_float">
  458. <h2>Incorporated in pipelines:</h2>
  459. <ul>
  460. <% _(t.pipelines).each(function(pl){ %>
  461. <li><a href="<%= pl.url() %>"><%= pl.name %></a><% if(pl.team){ %> (<a href="<%= pl.team.url() %>"><%= pl.team.name %></a>)<% } %></li>
  462. <% }); %>
  463. </ul>
  464. </div>
  465. <% } %>
  466. <% if(t.tutorials.length > 0) { %>
  467. <div class="info_float">
  468. <h2>Tutorials:</h2>
  469. <ul>
  470. <% _(t.tutorials).each(function(tutorial){ %>
  471. <li><a href="<%= tutorial.url %>"><%= tutorial.label %></a></li>
  472. <% }); %>
  473. </ul>
  474. </div>
  475. <% } %>
  476. <% if(t.demos.length > 0) { %>
  477. <div class="info_float">
  478. <h2>Demos:</h2>
  479. <ul>
  480. <% _(t.demos).each(function(demo){ %>
  481. <li><a href="<%= demo.url %>"><%= demo.label %></a></li>
  482. <% }); %>
  483. </ul>
  484. </div>
  485. <% } %>
  486. </script>
  487. <script type="text/html" id='teams_template'>
  488. <% _(t.teams).each(function(team, i){ %>
  489. <%= i % 4 == 0 ? '<div class="row">' : '' %>
  490. <div class="span3 team"><a href="<%= team.url() %>"><%= team.name %></a></div>
  491. <%= i % 4 == 3 ? '</div>' : '' %>
  492. <% }); %>
  493. </script>
  494. <script>
  495. var app_data = <?php echo file_get_contents('./js/app.json'); ?>;
  496. var app = {base_url: '<?php echo $base_url; ?>', base_route: '<?php echo $base_route; ?>'};
  497. </script>
  498. <script src="<?php echo $base_url; ?>/js/utils.js"></script>
  499. <script src="<?php echo $base_url; ?>/js/settings.js"></script>
  500. <script src="<?php echo $base_url; ?>/js/gdata.js"></script>
  501. <script src="<?php echo $base_url; ?>/js/graph/graph.js"></script>
  502. <script src="<?php echo $base_url; ?>/js/graph/node.js"></script>
  503. <script src="<?php echo $base_url; ?>/js/graph/edge.js"></script>
  504. <script src="<?php echo $base_url; ?>/js/graph/graph_drawing.js"></script>
  505. <script>
  506. (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  507. (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  508. m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  509. })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
  510. ga('create', 'UA-46495002-1', 'iseqtools.org');
  511. </script>
  512. <script src="<?php echo $base_url; ?>/js/main.js"></script>
  513. </body>
  514. </html>