Merge branch 'master' of https://codefirst.iut.uca.fr/git/nathan.boileau/Scripted
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
eb8114c56a
@ -0,0 +1,3 @@
|
|||||||
|
function displayWaiting(){
|
||||||
|
document.getElementById("waiting").innerHTML = "Waiting for Coder...";
|
||||||
|
}
|
@ -0,0 +1,131 @@
|
|||||||
|
function run() {
|
||||||
|
const terminal = document.getElementById("console");
|
||||||
|
const runner = new BrythonRunner({
|
||||||
|
stdout: {
|
||||||
|
write(content) {
|
||||||
|
terminal.innerHTML += content;
|
||||||
|
terminal.scrollTop = terminal.scrollHeight;
|
||||||
|
},
|
||||||
|
flush() {},
|
||||||
|
},
|
||||||
|
stderr: {
|
||||||
|
write(content) {
|
||||||
|
terminal.innerHTML += content;
|
||||||
|
terminal.scrollTop = terminal.scrollHeight;
|
||||||
|
},
|
||||||
|
flush() {},
|
||||||
|
},
|
||||||
|
stdin: {
|
||||||
|
async readline() {
|
||||||
|
terminal.innerHTML += "\n";
|
||||||
|
terminal.scrollTop = terminal.scrollHeight;
|
||||||
|
var userInput = prompt();
|
||||||
|
return userInput;
|
||||||
|
},
|
||||||
|
flush() {},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
var code = editor.getValue();
|
||||||
|
runner.runCode(code);
|
||||||
|
setTimeout(() => {
|
||||||
|
runner.stopRunning();
|
||||||
|
}, 10 * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
function run_init() {
|
||||||
|
if (document.getElementById("console") != "") {
|
||||||
|
document.getElementById("console").innerHTML = "";
|
||||||
|
}
|
||||||
|
run();
|
||||||
|
}
|
||||||
|
|
||||||
|
var editor = ace.edit("editor");
|
||||||
|
editor.container.style.opacity = 0.85;
|
||||||
|
editor.setTheme("ace/theme/vibrant_ink");
|
||||||
|
editor.getSession().setMode("ace/mode/python");
|
||||||
|
editor.setFontSize("16px");
|
||||||
|
editor.setOptions({
|
||||||
|
enableLiveAutocompletion: true,
|
||||||
|
copyWithEmptySelection: true,
|
||||||
|
showGutter: true,
|
||||||
|
useWrapMode: true, // wrap text to view
|
||||||
|
indentedSoftWrap: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
//Function that execute given code and return the result in a given element by id
|
||||||
|
|
||||||
|
function exec(code, id) {
|
||||||
|
const terminal = document.getElementById("console");
|
||||||
|
terminal.innerHTML = "";
|
||||||
|
const runner = new BrythonRunner({
|
||||||
|
stdout: {
|
||||||
|
write(content) {
|
||||||
|
if (id == "code") {
|
||||||
|
retourCode = content;
|
||||||
|
}
|
||||||
|
if (id == "solution") {
|
||||||
|
retourSolution = content;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
flush() {},
|
||||||
|
},
|
||||||
|
stderr: {
|
||||||
|
write(content) {
|
||||||
|
if (id == "solution") {
|
||||||
|
retourSolution = "ERROR";
|
||||||
|
}
|
||||||
|
terminal.innerHTML += content;
|
||||||
|
terminal.scrollTop = terminal.scrollHeight;
|
||||||
|
},
|
||||||
|
flush() {},
|
||||||
|
},
|
||||||
|
stdin: {
|
||||||
|
async readline() {
|
||||||
|
terminal.innerHTML += "\n";
|
||||||
|
terminal.scrollTop = terminal.scrollHeight;
|
||||||
|
var userInput = prompt();
|
||||||
|
return userInput;
|
||||||
|
},
|
||||||
|
flush() {},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
runner.runCode(code);
|
||||||
|
setTimeout(() => {
|
||||||
|
runner.stopRunning();
|
||||||
|
}, 10 * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* It checks if the code in the editor as the same result as the solution.
|
||||||
|
*/
|
||||||
|
function check() {
|
||||||
|
if (retourSolution == "ERROR") {
|
||||||
|
result.innerHTML = "Il semblerait qu'il y a une erreur dans ton code :/";
|
||||||
|
} else if (retourSolution == retourCode) {
|
||||||
|
result.innerHTML = "Bien joué";
|
||||||
|
document.getElementById("next").style.display = "flex";
|
||||||
|
} else {
|
||||||
|
result.innerHTML = "Mauvaise réponse";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If the help is displayed, hide it. Otherwise, display it.
|
||||||
|
*/
|
||||||
|
function displayHelp() {
|
||||||
|
var help = document.getElementsByClassName("help");
|
||||||
|
|
||||||
|
if (help[0].style.display == "block") {
|
||||||
|
for (var i = 0; i < help.length; i++) {
|
||||||
|
help[i].style.display = "none";
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < help.length; i++) {
|
||||||
|
help[i].style.display = "block";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,195 @@
|
|||||||
<html>
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>
|
||||||
|
<?php
|
||||||
|
echo $enigme->getNom();
|
||||||
|
?>
|
||||||
|
</title>
|
||||||
|
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha1/css/bootstrap.min.css"
|
||||||
|
integrity="sha384-r4NyP46KrjDleawBgD5tp8Y7UzmLA05oM1iAEQ17CSuDqnUK2+k9luXQOfXJCJ4I" crossorigin="anonymous" />
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
|
||||||
|
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
|
<script src="https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha1/js/bootstrap.min.js"
|
||||||
|
integrity="sha384-oesi62hOLfzrys4LxRF63OJCXdXDipiYWBnvTl9Y9/TRlw5xlKIEHpNyvvDShgf/"
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
|
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
|
||||||
|
<link rel="stylesheet" href="View/src/CSS/Enigme.css" />
|
||||||
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
vous êtes dans la partie
|
<div class="container-fluid px-5">
|
||||||
|
<!-- First Row -->
|
||||||
|
<div class="row py-4">
|
||||||
|
<div class="col-6 d-flex align-items-center px-0">
|
||||||
|
<a class="material-icons pl-0" id="home" href="index.php?action=goToHome"
|
||||||
|
style="font-size: 40px; color: white">home</a>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="col-1 d-flex align-items-center justify-content-end px-0">
|
||||||
|
<a class="material-icons pl-0" id="backArrow"
|
||||||
|
href="index.php?action=goToEnigme&ordre=<?php
|
||||||
|
if ($enigme->getOrdre() == 1)
|
||||||
|
{
|
||||||
|
echo $enigme->getOrdre();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo $enigme->getOrdre() - 1;
|
||||||
|
}?>"
|
||||||
|
style="font-size: 40px; color: white">< </a>
|
||||||
|
</div>
|
||||||
|
<div class="col-1 d-flex align-items-center px-0">
|
||||||
|
<a class="material-icons pl-0" id="nextArrow"
|
||||||
|
href="index.php?action=goToEnigme&ordre=<?php echo $enigme->getOrdre() + 1; ?>"
|
||||||
|
style="font-size: 40px; color: white"> ></a>
|
||||||
|
</div> -->
|
||||||
|
<button style="background-color: transparent; border: none; outline: none;" onclick="displayHelp()"
|
||||||
|
class="col-6 d-flex align-items-center">
|
||||||
|
<div class="col-10 text-right px-3">
|
||||||
|
<p style="font-size: 14px; color: white"><b>Besoin d'aide ?</b></p>
|
||||||
|
</div>
|
||||||
|
<div class="col-2 text-right">
|
||||||
|
<img src="View/assets/img/Foxy.png" alt="Logo" class="rounded-circle moving-fox"
|
||||||
|
style="border: 1px solid #44fff6; width: 60px; height: 60px" />
|
||||||
|
</div>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<!-- End First Row -->
|
||||||
|
|
||||||
|
<!-- Second Row -->
|
||||||
|
<div class="row">
|
||||||
|
<!-- First Column -->
|
||||||
|
<div class="col-3 rounded p-3" style="background-color: #222831; min-height: 80vh; height: auto">
|
||||||
|
<h2 class="text-left py-3" style="color: #44fff6; font-weight: 500">
|
||||||
|
<?php
|
||||||
|
echo $enigme->getNom();
|
||||||
|
?>
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
<?php
|
||||||
|
echo $enigme->getEnonce();
|
||||||
|
?>
|
||||||
|
</p>
|
||||||
|
<h3 class="text-left pb-3 pt-5" style="color: #44fff6">Rappel</h3>
|
||||||
|
<p>
|
||||||
|
<?php
|
||||||
|
echo $enigme->getRappel();
|
||||||
|
?>
|
||||||
|
</p>
|
||||||
|
<h3 class="text-left pb-3 pt-5" style="color: #44fff6">Exemple</h3>
|
||||||
|
<p>
|
||||||
|
<?php
|
||||||
|
echo $enigme->getExemple();
|
||||||
|
?>
|
||||||
|
</p>
|
||||||
|
<h3 class="text-left pb-3 pt-5 help" style="color: #44fff6; display: none">Aide</h3>
|
||||||
|
<p style="display: none" class="help">
|
||||||
|
<?php
|
||||||
|
echo $enigme->getAide();
|
||||||
|
?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<!-- End First Column -->
|
||||||
|
|
||||||
|
<!-- Second Column -->
|
||||||
|
<div class="col-5 pr-0">
|
||||||
|
<div class="ace rounded" id="editor"><?php
|
||||||
|
// echo $code;
|
||||||
|
if (! isset($code) || $code == ""){
|
||||||
|
echo $enigme->getPrompt();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo $code;}
|
||||||
|
?></div>
|
||||||
|
</div>
|
||||||
|
<!-- End Second Column -->
|
||||||
|
|
||||||
|
<!-- Third Column -->
|
||||||
|
<div class="col-4">
|
||||||
|
<textarea id="console" readonly style="width: 100%; min-height: 65vh; height: auto"
|
||||||
|
class="p-3 rounded"></textarea>
|
||||||
|
|
||||||
|
<div class="row pt-5 text-center" style="cursor: pointer">
|
||||||
|
<div class="col-6">
|
||||||
|
<a onclick="run_init()" class="btn">
|
||||||
|
<span>Run</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-6">
|
||||||
|
<button onclick="submit()" class="btn" data-toggle="modal" data-target="#modal">
|
||||||
|
<span>Submit</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- End Third Column -->
|
||||||
|
</div>
|
||||||
|
<!-- End Second Row -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Modal -->
|
||||||
|
<div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle"
|
||||||
|
aria-hidden="true">
|
||||||
|
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h2 class="modal-title" id="exampleModalLongTitle" style="color: black">
|
||||||
|
Results
|
||||||
|
</h2>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<h5 id="result" style="color: black"></h5>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<a
|
||||||
|
<?php
|
||||||
|
echo 'href="index.php?';
|
||||||
|
?>
|
||||||
|
class="btn" style="display: none" id="next"
|
||||||
|
>
|
||||||
|
<span>NEXT</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- End Modal -->
|
||||||
|
|
||||||
|
<script src="https://ajaxorg.github.io/ace-builds/src-noconflict/ace.js" type="text/javascript"
|
||||||
|
charset="utf-8"></script>
|
||||||
|
<script src="https://raw.githack.com/pythonpad/brython-runner/master/lib/brython-runner.bundle.js"
|
||||||
|
type="text/javascript" charset="utf-8"></script>
|
||||||
|
<script src="View/src/JS/baseMulti.js">
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
function saveCode(index, enigmeId) {
|
||||||
|
console.log("saveCode");
|
||||||
|
var index = '<?php echo $index; ?>';
|
||||||
|
var enigmeId = '<?php echo $enigme->getIdEnigme(); ?>';
|
||||||
|
console.log("[Savecode]index : " + index, "[Savecode]enigmeId : " + enigmeId);
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
// xhr.open('POST', 'http://localhost/Scripted/WEB/index.php?action=saveCode', true);
|
||||||
|
xhr.open('POST', 'http://82.165.180.114/Scripted/WEB/index.php?action=saveCodeMulti', true);
|
||||||
|
xhr.responseType = 'text';
|
||||||
|
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||||
|
xhr.onload = function () {
|
||||||
|
console.log('[SaveCode] '+xhr.responseText);
|
||||||
|
};
|
||||||
|
var searchParams = new URLSearchParams(window.location.search);
|
||||||
|
xhr.send("code=" + editor.getValue() + "&index=" + index + "&enigmeId=" + enigmeId);
|
||||||
|
}
|
||||||
|
document.getElementById ('editor').addEventListener('input', saveCode);
|
||||||
|
</script>
|
||||||
|
<?php
|
||||||
|
echo '<script src="View/src/JS/' . $enigme->getNom() . '.js"></script>';
|
||||||
|
?>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
Loading…
Reference in new issue