Commit 847b2006 authored by Julien Sailly's avatar Julien Sailly
Browse files

feat: improving dive_management_info view style

parent 47dac3d8
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
use App\Models\DivingGroup;
use App\Models\DivingSignUpModel;
use App\Models\User;
use Illuminate\Database\QueryException;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
@@ -37,7 +38,7 @@ public function store(Request $request){
            }
            $responseData = ['message' => 'Data received successfully', 'additionalData' => $divingGroups];
            return response()->json($responseData);
        } catch (\Illuminate\Database\QueryException $e) {
        } catch (QueryException $e) {
            return response()->json(['error' => 'Internal Server Error', 'errData' => $e], 500);
        }
    }
+24 −13
Original line number Diff line number Diff line
@@ -109,7 +109,7 @@ function isElementInList(element, list){

addPalanque.addEventListener("click", function(){
  let palanque = document.createElement("div");
  palanque.setAttribute("class", "border-2 p-4 zone");
  palanque.setAttribute("class", "border text-center bg-gray-200 rounded-lg p-3 pb-20 zone");
  palanque.setAttribute("id", "zone" + countZone);
  palanque.setAttribute("ondrop", "drop(event)");
  palanque.setAttribute("ondragover", "allowDrop(event)");
@@ -119,8 +119,13 @@ addPalanque.addEventListener("click", function(){
});

removePalanque.addEventListener("click", function(){
    let nbZone = prompt("Veuillez entrer le numéro de la palanque à supprimer", "1") - 1;
    removePalanqueZone(nbZone);
});

function removePalanqueZone(nbZone){
    countZone--;
  let palanque = document.getElementById("zone" + countZone);
    let palanque = document.getElementById("zone" + nbZone);
    if(palanque.childElementCount > 0){
        sizeT = palanque.childElementCount;
        for(let i = 0; i < sizeT; i++){
@@ -129,7 +134,13 @@ removePalanque.addEventListener("click", function(){
    }
    zoneList.splice(zoneList.length - 1, 1);
    palanque.parentElement.removeChild(palanque);
});
    let dropZones = document.querySelectorAll("div.zone");
    dropZones.forEach(element => {
        if(element.id.split('zone')[1] > nbZone){
            element.id = "zone" + (element.id.split('zone')[1] - 1);
        }
    })
}

async function getDiver(ds_code){
  let response = await fetch(`/api/dives/${ds_code}/divers`);
@@ -142,11 +153,11 @@ function proccessDiverData(data){
  for(let i = 0; i < data.length; i++){
    countDiver++;
    let diver = document.createElement("div");
    diver.setAttribute("class", "w-fit h-8 border-2");
    diver.setAttribute("class", "w-full h-8 border rounded p-1 m-1 bg-gray-300");
    diver.setAttribute("id", 'item' + data[i].US_ID +',' + data[i].PRE_CODE + ',E' + data[i].US_TEACHING_LEVEL + ',' + data[i].US_ID);
    diver.setAttribute("draggable", "true");
    diver.setAttribute("ondragstart", "drag(event)");
    diver.innerHTML = data[i].US_FIRST_NAME + " " + data[i].US_NAME + " " + data[i].PRE_CODE + " " + data[i].US_TEACHING_LEVEL;
    diver.innerHTML = data[i].US_FIRST_NAME + " " + data[i].US_NAME.toUpperCase() + " - " + data[i].PRE_CODE + " - E" + data[i].US_TEACHING_LEVEL;
    zoneStart.appendChild(diver);
  }
  return data;
@@ -167,7 +178,7 @@ function validateAllCombination(){
    element = document.getElementById("zone" + element.getZoneNumber());
    if(element.hasChildNodes()){
      if(element.childElementCount < 2 || element.childElementCount > 3){
        element.style.backgroundColor = 'red';
        element.style.backgroundColor = 'rgb(254 202 202)';
        return false;
      }
      let children = element.childNodes;
@@ -175,8 +186,8 @@ function validateAllCombination(){
        for(let j = 0; j < children.length; j++){
          if(children[j].id.split(',')[1] === 'PA-60-GP'){
            counterCheck++;
            if(element.style.backgroundColor === 'red')
              element.style.backgroundColor = 'white';
            if(element.style.backgroundColor === 'rgb(254 202 202)')
              element.style.backgroundColor = 'rgb(229 231 235)';
            return true;
          }
        }
@@ -189,19 +200,19 @@ function validateAllCombination(){
              let targetItemsSplit2 = children[j].id.split(',')[2];
              if(validatePalanqueCombinate[targetItemsSplit].includes(targetItemsSplit2)){
                counterCheck++;
                if(element.style.backgroundColor === 'red')
                  element.style.backgroundColor = 'white';
                if(element.style.backgroundColor === 'rgb(254 202 202)')
                  element.style.backgroundColor = 'rgb(229 231 235)';
                return true;
              }
            }
            element.style.backgroundColor = 'red';
            element.style.backgroundColor = 'rgb(254 202 202)';
            return false;
          }
        }

      }
    }else {
      element.style.backgroundColor = 'white';
      element.style.backgroundColor = 'rgb(229 231 235)';
      return false;
    }
  });
@@ -279,7 +290,7 @@ function fillZoneWithAlreadyExistingPalanque(diverList) {
          zoneStart.removeChild(diver);
      }else{
        let palanque = document.createElement("div");
        palanque.setAttribute("class", "border-2 p-4 zone");
        palanque.setAttribute("class", "border text-center bg-gray-200 rounded-lg p-3 pb-20 zone");
        palanque.setAttribute("id", "zone" + dgNumber);
        palanque.setAttribute("ondrop", "drop(event)");
        palanque.setAttribute("ondragover", "allowDrop(event)");
+14 −5
Original line number Diff line number Diff line
@@ -57,18 +57,27 @@ class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
            <p class="text-xl font-bold my-2">{{ $dive->DL_NAME }}@if (isset($dive->DS_MAX_DEPTH)) • {{
                $dive->DS_MAX_DEPTH }}m @endif</p>
        </div>
        <div class="flex-1 p-4" id="zoneStart" ondrop="drop(event)" ondragover="allowDrop(event)">
        <div class="flex-1 p-4">
            <h3 class="text-xl font-bold mb-2">Plongeurs</h3>
            <div class="sticky top-6">
                <p class="text-center italic">Déplacez les plongeurs vers les palanquées correspondantes</p>
                <div id="zoneStart" ondrop="drop(event)" ondragover="allowDrop(event)" class="text-center w-full p-4 pb-20 min-h-16 border rounded-lg bg-gray-200">

                </div>
            </div>

        </div>
        <div class="flex-1 p-4">
            <h3 class="text-xl font-bold mb-2">Palanquées</h3>
            <div class="p-2 grid grid-cols-2 md:grid-cols-3 gap-4" id="DropZone">
            <div class="grid grid-cols-2 md:grid-cols-1 gap-4" id="DropZone">

            </div>

            <button type='button' id="addPal">Add P</button>
            <button type='button' id="removePal">Remove P</button>
            <button type='button' id="validatePal">Val</button>
            <div class="my-3 text-center">
                <button type='button' id="addPal" class="mt-1 bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Ajouter une palanquée</button>
                <button type='button' id="validatePal" class="mt-1 bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Valider</button>
                <button type='button' id="removePal" class="mt-1 bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Supprimer une palanquée</button>
            </div>
        </div>
    </div>
</x-layout>