Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | |
<title>PARROT - Documentation</title> | |
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/0.3.6/marked.min.js"></script> | |
<link rel="stylesheet" type="text/css" href="style.css"> | |
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> | |
</head> | |
<body> | |
<!--navbar--> | |
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top"> | |
<a class="navbar-brand" href="#">PARROT</a> | |
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" | |
aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> | |
<span class="navbar-toggler-icon"></span> | |
</button> | |
<div class="collapse navbar-collapse" id="navbarNav"> | |
<div class="navbar-nav"> | |
<a class="nav-link" href="index.html">Home</a> | |
<a class="nav-link" href="documentation.html">Documentation</a> | |
<a class="nav-link active" href="#">AI models</a> | |
<a class="nav-link" href="contact.html">Contact</a> | |
</div> | |
</div> | |
</nav> | |
<button id="topBtn" onclick="topFunction()">β</button> | |
<!--main--> | |
<div class="container mt-5"> | |
<div class="row"> | |
<div class="col-lg-11"> | |
<h1 class="mb-4 mt-4">AI models</h1> | |
<section class="mt-4"> | |
<div style="display: flex;"> | |
<table class="mt-4 ml-5" id="segTable"> | |
<tr class="header"> | |
<th colspan="2">Segmentation models</th> | |
</tr> | |
<tr class="header"> | |
<th>Locations</th> | |
<th>Architectures</th> | |
</tr> | |
</table> | |
<table class="mt-4 ml-5" id="doseTable"> | |
<tr class="header"> | |
<th colspan="2">Dose prediction models</th> | |
</tr> | |
<tr class="header"> | |
<th>Locations</th> | |
<th>Architectures</th> | |
</tr> | |
</table> | |
</div> | |
</section> | |
<section> | |
<h2>Details</h2> | |
<section class="mt-4" id="dose-prediction"> | |
<h3>Segmentation models</h3> | |
<section id="segCards"></section> | |
<h3>Dose prediction models</h3> | |
<section id="doseCards"></section> | |
</section> | |
</section> | |
<section class="mt-4" id="add-your-models"> | |
<h2>Add your models</h2> | |
</section> | |
</div> | |
</div> | |
</div> | |
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> | |
<script src="modelData.js"></script> | |
<script> | |
function init() { | |
getModelCard(dataModel.seg,'seg'); | |
getModelCard(dataModel.dose,'dose'); | |
AI_ModelTableCreate(dataModel.seg,'seg'); | |
AI_ModelTableCreate(dataModel.dose,'dose'); | |
AI_ModelCardsCreate(dataModel.seg,'seg'); | |
AI_ModelCardsCreate(dataModel.dose,'dose'); | |
} | |
//displays the button if the user scrolls 50px at least | |
function scrollFunction() { | |
if (document.body.scrollTop > 50 || document.documentElement.scrollTop > 50) { mybutton.style.display = "block";} | |
else { mybutton.style.display = 'none';} | |
} | |
//reset users position on the page | |
function topFunction() { | |
document.body.scrollTop = 0; | |
document.documentElement.scrollTop = 0; | |
} | |
function AI_ModelTableCreate(dataSection,id) { | |
tbl = document.getElementById(id.concat('Table')); | |
// equalizes both table's length | |
N_row = Math.max(dataModel.seg.length,dataModel.dose.length); | |
for (let i = 0; i < N_row; i++) { | |
const tr = tbl.insertRow(); | |
// creates a filled row | |
if (i < dataSection.length) { | |
// data-href contains the id of the model which is linked to it (eg: data-href="#x" will transfer the user to the component with id="x") | |
tr.setAttribute('class', 'clickable'); | |
tr.setAttribute('data-href','#'.concat(id.concat(i.toString()))) | |
for (let j = 0; j < 2; j++) { | |
const td = tr.insertCell(); | |
// fills in the cells the data assiociated to it | |
if (j === 0) {td.appendChild(document.createTextNode(dataSection[i].location));} | |
else {td.appendChild(document.createTextNode(dataSection[i].architecture));} | |
} | |
} | |
// creates an empty row | |
else { | |
const td = tr.insertCell(); | |
td.appendChild(document.createTextNode("β")) | |
} | |
} | |
} | |
function AI_ModelCardsCreate(dataSection,id) { | |
renderSection = document.getElementById(id.concat('Cards')); | |
// defines et sets attribute for each divs containing the modelcard | |
for (let i = 0; i < dataSection.length; i++) { | |
canvas = document.createElement('div'); | |
canvas.setAttribute('class','row') | |
canvas.style.border = "5px solid rgb(189, 190, 191)"; | |
div = document.createElement('div'); | |
div.setAttribute('id',id.concat(i.toString())) | |
div.style.padding = "50px"; | |
// adds the structure to the section | |
canvas.appendChild(div) | |
renderSection.appendChild(canvas) | |
} | |
} | |
function getModelCard(dataSection,id) { | |
// gets the url of each model card, that are stocked in "modelData.js" | |
for(let i = 0; i < dataSection.length; i++) { | |
var apiUrl = dataSection[i].url | |
// download the model card and upload it in the created divs in AI_ModelCardsCreate() function | |
$.ajax({ | |
url: apiUrl, | |
method: 'GET', | |
success: function (data) { | |
$('#'.concat(id.concat(i.toString()))).html(marked(data)) | |
}, | |
error: function (error) { | |
console.error('Error fetching release information:', error); | |
} | |
}); | |
} | |
} | |
init() | |
// triggers | |
let mybutton = document.getElementById('topBtn'); | |
window.onscroll = function() {scrollFunction()}; | |
$('.clickable').click(function(){ | |
window.location = $(this).data('href'); | |
}); | |
</script> | |
</body> | |
</html> |