index.html
<!--
Page based on the excellent ThreeJS Example page.
www.threejs.org
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>ami / examples</title>
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">
<style>
@import url(https://fonts.googleapis.com/css?family=Roboto);
@font-face {
font-family: 'Roboto', sans-serif;
font-weight: normal;
font-style: normal;
}
*{
box-sizing: border-box;
}
html {
height: 100%;
}
body {
background-color: #ffffff;
margin: 0px;
height: 100%;
color: #555;
font-family: 'Roboto', sans-serif;
font-size: 15px;
line-height: 18px;
overflow: hidden;
}
h1 {
margin-top: 30px;
margin-bottom: 40px;
margin-left: 20px;
font-size: 25px;
font-weight: normal;
}
h2 {
font-size: 20px;
font-weight: normal;
}
a {
color: #2194CE;
text-decoration: none;
}
#panel {
position: fixed;
left: 0px;
width: 310px;
height: 100%;
overflow: auto;
background: #fafafa;
}
#panel #content {
padding: 0px 20px;
}
#panel #content .link {
color: #2194CE;
text-decoration: none;
cursor: pointer;
}
#panel #content .selected {
color: #ff0000;
}
#panel #content .link:hover {
text-decoration: underline;
}
#viewer {
position: absolute;
border: 0px;
left: 310px;
width: calc(100% - 310px);
height: 100%;
overflow: auto;
}
#button {
position: fixed;
top: 20px;
right: 20px;
padding: 8px;
color: #fff;
background-color: #555;
opacity: 0.7;
}
#button:hover {
cursor: pointer;
opacity: 1;
}
/* mobile */
#expandButton {
display: none;
position: absolute;
right: 20px;
top: 12px;
width: 32px;
height: 32px;
}
#expandButton span {
height: 2px;
background-color: #2194CE;
width: 16px;
position: absolute;
left: 8px;
top: 10px;
}
#expandButton span:nth-child(1) {
top: 16px;
}
#expandButton span:nth-child(2) {
top: 22px;
}
@media all and ( max-width: 640px ) {
h1{
margin-top: 20px;
margin-bottom: 20px;
}
#panel{
position: absolute;
left: 0;
top: 0;
height: 480px;
width: 100%;
right: 0;
z-index: 100;
overflow: hidden;
border-bottom: 1px solid #dedede;
}
#content{
position: absolute;
left: 0;
top: 60px;
right: 0;
bottom: 0;
font-size: 17px;
line-height: 22px;
overflow: auto;
}
#viewer{
position: absolute;
left: 0;
top: 56px;
width: 100%;
height: calc(100% - 56px);
}
#expandButton{
display: block;
}
#panel.collapsed{
height: 56px;
}
}
</style>
</head>
<body>
<div id="panel" class="collapsed">
<h1><a href="https://github.com/FNNDSC/ami">ami</a> / examples</h1>
<a id="expandButton" href="#">
<span></span>
<span></span>
<span></span>
</a>
<div id="content">
<div>
<h2>welcome</h2>
<div>
<a href="https://github.com/FNNDSC/ami">src @ github</a>
</div>
<div>
<a href="https://fnndsc.slack.org">chat @ slack</a> (<a href="http://slack.babymri.org">get invite</a>)
</div>
<div>
<a href="doc/index.html">doc @ jsdoc</a>
</div>
</br>
<div>
<a href="https://github.com/FNNDSC/ami/issues/new">report a bug</a>
</div>
</div>
</div>
</div>
<iframe id="viewer" allowfullscreen></iframe>
<script>
'use strict';
var files = {
'editor': [
'editor_draw'
],
'geometries': [
'geometries_slice'
],
'loader': [
'loader_dicoms',
// 'loader_nifti',
'loader_nrrd'
],
'widget': [
'widget_handle'
],
'viewers': [
'viewers_upload',
'viewers_compare',
'viewers_labelmap',
'viewers_quadview'
],
'volume rendering': [
'vr_singlepass'
],
'xtk': [
'xtk_lesson10',
'xtk_lesson13'
]
};
var panel = document.getElementById( 'panel' );
var content = document.getElementById( 'content' );
var viewer = document.getElementById( 'viewer' );
var expandButton = document.getElementById( 'expandButton' );
expandButton.addEventListener( 'click', function ( event ) {
panel.classList.toggle( 'collapsed' );
event.preventDefault();
} );
// iOS8 workaround
if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
viewer.addEventListener( 'load', function ( event ) {
viewer.contentWindow.innerWidth -= 10;
viewer.contentWindow.innerHeight -= 2;
} );
}
var container = document.createElement( 'div' );
content.appendChild( container );
var button = document.createElement( 'div' );
button.id = 'button';
button.textContent = 'View source';
button.addEventListener( 'click', function ( event ) {
var array = location.href.split( '/' );
array.pop();
window.open( 'https://github.com/FNNDSC/vjs/blob/dev/examples/' + selected + '/' + selected + '.js' );
}, false );
button.style.display = 'none';
document.body.appendChild( button );
var divs = {};
var selected = null;
for ( var key in files ) {
var section = files[ key ];
var div = document.createElement( 'h2' );
div.textContent = key;
container.appendChild( div );
for ( var i = 0; i < section.length; i ++ ) {
( function ( file ) {
var name = file.split( '_' );
name.shift();
name = name.join( ' / ' );
var div = document.createElement( 'div' );
div.className = 'link';
div.textContent = name;
div.addEventListener( 'click', function () {
panel.classList.toggle( 'collapsed' );
load( file );
} );
container.appendChild( div );
divs[ file ] = div;
} )( section[ i ] );
}
}
var load = function ( file ) {
if ( selected !== null ) divs[ selected ].className = 'link';
divs[ file ].className = 'link selected';
window.location.hash = file;
window.console.log('examples/' + file + '/index.html');
viewer.src = 'examples/' + file + '/index.html';
viewer.focus();
button.style.display = '';
selected = file;
};
if ( window.location.hash !== '' ) {
load( window.location.hash.substring( 1 ) );
}
</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-39303022-3', 'auto');
ga('send', 'pageview');
</script>
</body>
</html>