Initial commit

This commit is contained in:
2026-03-31 13:27:08 +02:00
commit 565c9660d9
8 changed files with 258 additions and 0 deletions

24
.gitignore vendored Normal file
View File

@@ -0,0 +1,24 @@
# ── Node.js ───────────────────────────────────────────────────────────────────
node_modules/
dist/
build/
.cache/
# ── Secrets ────────────────────────────────────────────────────────────────────
.env
.env.*
.env.local
.env.production
secret.env
*.secret
# ── Logs ──────────────────────────────────────────────────────────────────────
*.log
npm-debug.log*
# ── IDE ───────────────────────────────────────────────────────────────────────
.vscode/
.idea/
*.swp
.DS_Store
Thumbs.db

7
bootstrap.bundle.min.js vendored Normal file

File diff suppressed because one or more lines are too long

7
bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

184
index.html Normal file
View File

@@ -0,0 +1,184 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pélican</title>
<link rel="stylesheet" href="bootstrap.min.css">
<link rel="stylesheet" href="main.css" type="text/css" media="screen">
<script src="jquery-3.6.0.min.js"></script>
<script src="bootstrap.bundle.min.js"></script>
<script>
$(document).ready(function() {
$("#modal1").show();
$("#success").click(function(){
$("#modal1").show();
$.get("/on",function(data) {
<!-- console.log(data); -->
<!-- $("#result").html(data); -->
});
});
$("#send").click(function(){
//event.preventDefault();
console.log($("#alpha").val());
$("#modal1").hide();
$.get("/set?alpha="+$("#alpha").val(),function(data) {
<!-- $("#result").html(data); -->
});
});
$("#Submit").click(function(){
//event.preventDefault()
if (isNaN($('#alpha').val()) == true || !$('#alpha').val()) {
alert('Alpha Haut invalide!');
return;
}
if (isNaN($('#alphaLV').val()) == true || !$('#alphaLV').val()) {
alert('Alpha bas invalide!');
return;
}
if (isNaN($('#beta').val()) == true || !$('#beta').val()) {
alert('beta Haut invalide!');
return;
}
if (isNaN($('#betaLV').val()) == true || !$('#betaLV').val()) {
alert('beta bas invalide!');
return;
}
$('#Run').prop("disabled", false);
$('#volume').prop("disabled", false);
$('#volume').prop("max", $('#selectpip').val());
$('#volume').prop("value", (($('#selectpip').val())/2));
$("#volumemax").text($('#selectpip').val());
if ($('#selectpip').val() == 10 ){
$('#volume').prop("min", 0);
$('#volume').prop("step", 1);
}
if ($('#selectpip').val() == 50 ){
$('#volume').prop("min", 0);
$('#volume').prop("step", 5);
}
if ($('#selectpip').val() == 1000 ){
$('#volume').prop("min", 0);
$('#volume').prop("step", 10);
}
if ($('#selectpip').val() == 200 ){
$('#volume').prop("min", 0);
$('#volume').prop("step", 10);
}
});
$("input[name=flexRadioDefault]").change(function () {
$('#selectpip').prop("disabled", false);
$('#selectpip').empty()
$('#selectpip').append('<option selected>Choix de la pipette</option>');
$('#Run').prop("disabled", true);
$('#volume').prop("disabled", true);
if(this.value == "P1")
{
$('#selectpip').append('<option value="10">10µl</option>');
$('#selectpip').append('<option value="50">50µl</option>');
$('#selectpip').append('<option value="200">200µl</option>');
$('#selectpip').append('<option value="1000">1000µl</option>');
}
else if(this.value == "P8")
{
$('#selectpip').append('<option value="10">10µl</option>');
$('#selectpip').append('<option value="200">200µl</option>');
}
});
$("#selectpip").on('change', function() {
$('#Run').prop("disabled", true);
$('#volume').prop("disabled", true);
});
$("#volume").on('input',function () {
if(($("#volume").val()) == 0){
$("#volumevoulu").text("1");
}else{
$("#volumevoulu").text($("#volume").val());
}
});
});
</script>
</head>
<body>
<!-- The Modal -->
<div class="modal" id="modal1">
<div class="modal-dialog modal-xl modal-dialog-centered modal-dialog-scrollable">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<img id="logo" src="logo-primadiag.svg">
</div>
<!-- Modal body -->
<div class="modal-body" >
<h6>
<input class="form-check-input" type="radio" name="flexRadioDefault" id="p1" value="P1">
<label class="form-check-label" for="flexRadioDefault1" >
Pipette 1 voie
</label>
</br>
<input class="form-check-input" type="radio" name="flexRadioDefault" value="P8" id="p8">
<label class="form-check-label" for="flexRadioDefault2">
Pipette 8 voie <br>
</label>
</h6>
<h5>
<select id="selectpip" class="form-select" aria-label="Default select example" disabled>
<option selected>Choix de la pipette</option>
</select>
<hr>
<h6>
</br>
<p class="text-center" >α high volume :
<input id="alpha" type="text">
<class="text-center">α low volume :
<input id="alphaLV" type="text">
</p>
<p class="text-center">β high volume :
<input id="beta" type="text">
<class="text-center">β low volume:
<input id="betaLV" type="text"></p>
</br>
</h5>
<div class="d-grid gap-2">
<button id="Submit" type="button" class="btn btn-success btn-lg btn-block"><h5>Submit</h5></button>
</div>
</br>
<hr>
<p class="text-center">Volume voulu</label></p>
<p id="volumemin" class="text-center" >0
<input type="range" class="form-range" id="volume" oninput="this.nextElementSibling.value = this.value" disabled>
<class="text-center" id="volumemax" >1000</p>
<p id="volumevoulu" class="text-center" >0</p>
<div class="d-grid gap-2">
<button id="Run" type="button" class="btn btn-success btn-lg btn-block" disabled><h5> Run </h5></button>
</div>
</br>
</div>
</div>
</div>
</div>
</body>
</html>

2
jquery-3.6.0.min.js vendored Normal file

File diff suppressed because one or more lines are too long

12
logo-primadiag.svg Normal file
View File

@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" viewBox="0 0 2838 368">
<defs/>
<defs>
<linearGradient id="a" x1="356.9" x2="356.9" y1="25.9" y2="629.1" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#c8c8c8"/>
<stop offset="1" stop-color="#404040"/>
</linearGradient>
</defs>
<path fill="url(#a)" d="M54 19v614l612-1V364H443s-4-2-2-4l225-130v-62L342 348c-1 0-6-5-4-7L556 19z" transform="matrix(.6 0 0 .6 -32 -11)"/>
<path fill="#868686" d="M1962 101c16 3 30 7 42 12 19 9 34 21 44 36a83 83 0 010 99c-10 15-25 27-44 35-12 6-26 10-42 13-16 2-35 3-58 3h-83V97h83c22 0 41 2 58 4zm-170-21v236h119a440 440 0 0066-5c19-4 35-10 50-17 21-11 38-25 50-42a92 92 0 000-109c-12-17-29-30-50-41-15-8-32-13-50-17-18-3-40-5-66-5zM2189 316V80h-30v236zM2373 111l65 107h-131zm-126 205l50-82h151l50 82h29L2378 78h-11l-149 238zM2838 207h-99v17h72v64a360 360 0 01-93 15c-22 0-42-3-61-8s-36-13-50-23-24-21-32-34a78 78 0 017-90c12-15 28-28 49-37 12-6 26-11 41-14a231 231 0 01102 2c19 4 41 10 64 19V98a395 395 0 00-120-22c-25 0-49 3-72 9-22 6-42 15-60 27-17 11-30 24-39 39a87 87 0 00-8 76c4 10 9 20 16 28 14 18 33 33 58 44 15 7 32 12 49 16a285 285 0 00115 0c20-4 40-10 61-17z"/>
<path fill="#197d3e" d="M535 96c26 0 46 4 60 12 14 7 21 19 21 34 0 16-7 28-21 36-14 7-36 11-65 11h-52V96zm-84 220h27V206h68c30 0 54-6 72-17 18-12 28-27 28-46 0-21-10-36-29-47-19-10-46-16-83-16h-83zM785 96c25 0 45 4 59 11 14 8 21 18 21 32 0 10-3 19-9 26s-16 12-28 16l-25 4-54 1h-21V96zm-85 220h28V202h28a389 389 0 0143 3c10 2 18 5 24 9l18 16a607 607 0 0128 28l54 58h31l-93-100a87 87 0 00-31-20c22-5 38-12 49-21 11-10 16-22 16-36 0-19-10-33-29-44-19-10-47-15-83-15h-83zM1009 316V80h-29v236zM1118 316V108l128 110 127-110v208h28V80h-29l-126 109-126-109h-29v236zM1582 111l65 107h-131zm-125 205l50-82h149l51 82h28L1587 78h-11l-148 238z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

22
main.css Normal file
View File

@@ -0,0 +1,22 @@
#logo{
max-height:20%;
max-width:20%
}
body {
font-family: "Lucida Sans", sans-serif;
background-color:#cccccc;
}
#modal1{
box-shadow:3px 3px 10px gray;
font-family:Arial Black ;
}
#volume{
max-width:70%;
}
.modal-body{
text-align: center;
font-size: 100%;
box-shadow:3px 3px 10px gray;
}