Loading app/Http/Controllers/ManualPalanqueeController.php +7 −1 Changes for app/Http/Controllers/ManualPalanqueeController.php: 7 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -7,10 +7,16 @@ class ManualPalanqueeController extends Controller { public function show(){ return view('palanque_manuel'); $token = csrf_token(); return view('palanque_manuel', compact('token')); } public function index(){ } public function store(Request $request){ $data = $request->json()->all(); return response()->json(['message' => 'Data received successfully'], 200); } } public/js/Palanque/manualPalanque.js +35 −16 Changes for public/js/Palanque/manualPalanque.js: 35 added lines, 16 removed lines. Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ const validatePalanque = document.getElementById("validatePal"); let countZone = 2; let countDiver = 5; let zoneList = [new DropZoneClass(0), new DropZoneClass(1), new DropZoneClass(2)]; let counterCheck = 0; function allowDrop(event) { event.preventDefault(); Loading Loading @@ -131,15 +132,16 @@ let validatePalanqueCombinate = { }; function validateAllCombination(){ let val = zoneList.forEach(element => { zoneList.forEach(element => { element = document.getElementById("zone" + element.getZoneNumber()); if(element.hasChildNodes()){ if(element.childElementCount < 2) return false; let children = element.childNodes; console.log(children); for(let i = 0; i < children.length; i++){ let targetItemsSplit = children[i].id.split(',')[1]; for(targetItemsSplit in validatePalanqueCombinate){ for(let j = i + 1; j < children.length; j++){ for(let j = 0; j < children.length; j++){ let targetItemsSplit2 = children[j].id.split(',')[1]; console.log(targetItemsSplit2); if(validatePalanqueCombinate[targetItemsSplit].includes(targetItemsSplit2)){ Loading @@ -148,28 +150,18 @@ function validateAllCombination(){ element.style.backgroundColor = 'white'; return true; //TODO VERIF E1 -6metres }else{ } } console.log("ko"); element.style.backgroundColor = 'red'; return false; } } } } }else{ if(element.className === 'border-2 p-4'){ element.style.backgroundColor = 'red'; } } }); console.log('vAL' + val); } validatePalanque.addEventListener("click", function(){ if(validateAllCombination()){ console.log("ok"); }else console.log("ko"); console.log(returnValueToPhp()); sendPalanque(); }); function returnValueToPhp() { Loading @@ -190,10 +182,37 @@ function returnValueToPhp(){ function sendPalanque() { let palanqueList = returnValueToPhp(); let palanqueListJson = JSON.stringify(palanqueList); let csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content'); let xhr = new XMLHttpRequest(); xhr.open('POST', '/api/palanques', true); xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader('X-CSRF-TOKEN', csrfToken); xhr.onreadystatechange = function () { if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.status === 200) { console.log("Request successful"); const responseData = JSON.parse(xhr.responseText); // Check if a 'redirect' property exists in the response if (responseData.redirect) { // Redirect to the URL specified in the response window.location.href = responseData.redirect; } else { console.error("Invalid response format - missing 'redirect' property"); } } else { console.error("Request failed"); } } }; xhr.send(palanqueListJson); console.log("send"); } setInterval(() => { validateAllCombination(); }, 5000); getDiver('DS1'); resources/views/palanque_manuel.blade.php +1 −0 Changes for resources/views/palanque_manuel.blade.php: 1 added line, 0 removed lines. Original line number Diff line number Diff line <meta name="csrf-token" content="{{ $token }}"> <x-layout> <div class="flex justify-around m-5"> <div class="p-2 grid grid-cols-5"> Loading routes/api.php +2 −0 Changes for routes/api.php: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -20,3 +20,5 @@ Route::middleware('App\Http\Middleware\rightChecker')->get('/user', function (Request $request) { return $request->user(); }); Route::post('/palanques', [App\Http\Controllers\ManualPalanqueeController::class, 'store']); No newline at end of file Loading
app/Http/Controllers/ManualPalanqueeController.php +7 −1 Changes for app/Http/Controllers/ManualPalanqueeController.php: 7 added lines, 1 removed line. Original line number Diff line number Diff line Loading @@ -7,10 +7,16 @@ class ManualPalanqueeController extends Controller { public function show(){ return view('palanque_manuel'); $token = csrf_token(); return view('palanque_manuel', compact('token')); } public function index(){ } public function store(Request $request){ $data = $request->json()->all(); return response()->json(['message' => 'Data received successfully'], 200); } }
public/js/Palanque/manualPalanque.js +35 −16 Changes for public/js/Palanque/manualPalanque.js: 35 added lines, 16 removed lines. Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ const validatePalanque = document.getElementById("validatePal"); let countZone = 2; let countDiver = 5; let zoneList = [new DropZoneClass(0), new DropZoneClass(1), new DropZoneClass(2)]; let counterCheck = 0; function allowDrop(event) { event.preventDefault(); Loading Loading @@ -131,15 +132,16 @@ let validatePalanqueCombinate = { }; function validateAllCombination(){ let val = zoneList.forEach(element => { zoneList.forEach(element => { element = document.getElementById("zone" + element.getZoneNumber()); if(element.hasChildNodes()){ if(element.childElementCount < 2) return false; let children = element.childNodes; console.log(children); for(let i = 0; i < children.length; i++){ let targetItemsSplit = children[i].id.split(',')[1]; for(targetItemsSplit in validatePalanqueCombinate){ for(let j = i + 1; j < children.length; j++){ for(let j = 0; j < children.length; j++){ let targetItemsSplit2 = children[j].id.split(',')[1]; console.log(targetItemsSplit2); if(validatePalanqueCombinate[targetItemsSplit].includes(targetItemsSplit2)){ Loading @@ -148,28 +150,18 @@ function validateAllCombination(){ element.style.backgroundColor = 'white'; return true; //TODO VERIF E1 -6metres }else{ } } console.log("ko"); element.style.backgroundColor = 'red'; return false; } } } } }else{ if(element.className === 'border-2 p-4'){ element.style.backgroundColor = 'red'; } } }); console.log('vAL' + val); } validatePalanque.addEventListener("click", function(){ if(validateAllCombination()){ console.log("ok"); }else console.log("ko"); console.log(returnValueToPhp()); sendPalanque(); }); function returnValueToPhp() { Loading @@ -190,10 +182,37 @@ function returnValueToPhp(){ function sendPalanque() { let palanqueList = returnValueToPhp(); let palanqueListJson = JSON.stringify(palanqueList); let csrfToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content'); let xhr = new XMLHttpRequest(); xhr.open('POST', '/api/palanques', true); xhr.setRequestHeader("Content-Type", "application/json"); xhr.setRequestHeader('X-CSRF-TOKEN', csrfToken); xhr.onreadystatechange = function () { if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.status === 200) { console.log("Request successful"); const responseData = JSON.parse(xhr.responseText); // Check if a 'redirect' property exists in the response if (responseData.redirect) { // Redirect to the URL specified in the response window.location.href = responseData.redirect; } else { console.error("Invalid response format - missing 'redirect' property"); } } else { console.error("Request failed"); } } }; xhr.send(palanqueListJson); console.log("send"); } setInterval(() => { validateAllCombination(); }, 5000); getDiver('DS1');
resources/views/palanque_manuel.blade.php +1 −0 Changes for resources/views/palanque_manuel.blade.php: 1 added line, 0 removed lines. Original line number Diff line number Diff line <meta name="csrf-token" content="{{ $token }}"> <x-layout> <div class="flex justify-around m-5"> <div class="p-2 grid grid-cols-5"> Loading
routes/api.php +2 −0 Changes for routes/api.php: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -20,3 +20,5 @@ Route::middleware('App\Http\Middleware\rightChecker')->get('/user', function (Request $request) { return $request->user(); }); Route::post('/palanques', [App\Http\Controllers\ManualPalanqueeController::class, 'store']); No newline at end of file