Commit 30ebf1ab authored by Julien Sailly's avatar Julien Sailly
Browse files

feat: pre-completion of checkbox roles

parent 2ca93869
Loading
Loading
Loading
Loading
+7 −8
Original line number Diff line number Diff line
@@ -9,17 +9,16 @@ class ManageAdherentController extends Controller {
    function index() {
        $users = User::select('*')->join('car_role_attribution', 'car_role_attribution.US_ID', '=', 'car_user.US_ID')->orderBy('car_user.US_ID')->get();
        $user_role = array();
        $oldUserID = null;
        $usersInfos = array();
        foreach ($users as $user) {
            $user_role[$user->US_ID] = [$user->US_ID, [], $user->US_FIRST_NAME . " " . strtoupper($user->US_NAME)];
            if ($oldUserID == $user->US_ID) {
                array_push($user_role[$user->US_ID][1], $user->ROL_CODE);
            } else {
                $user_role[$user->US_ID][1] = [$user->ROL_CODE];
            $usersInfos[$user->US_ID] = [$user->US_ID, $user->US_FIRST_NAME, $user->US_NAME];
            if (!array_key_exists($user->US_ID, $user_role)){
                $user_role[$user->US_ID] = array();
            }
            $oldUserID = $user->US_ID;
            array_push($user_role[$user->US_ID], $user->ROL_CODE);
        }
        return view('manageAdherent', ['user_role' => $user_role]);
        $users = [$usersInfos, $user_role];
        return view('manageAdherent', ['users' => $users]);
    }

    function update(Request $request) {
+36 −12
Original line number Diff line number Diff line
@@ -5,43 +5,67 @@
        </a>
        <div class="flex items-center md:order-2 space-x-3 md:space-x-0 rtl:space-x-reverse">
            @if (!session()->has('user'))
                <a href="{{ route('login') }}" class="text-sm text-white">
                    <x-button color="bg-blue-700" colorHover="hover:bg-[#0C57A6]">
                    <a href="{{ route('login') }}" class="text-sm text-white">Se connecter</a>
                        Se connecter
                    </x-button>
                </a>
            @else
                <button type="button" class="flex text-sm bg-blue-500 rounded-full md:me-0 focus:ring-4 focus:ring-blue-700" id="user-menu-button" aria-expanded="false" data-dropdown-toggle="user-dropdown" data-dropdown-placement="bottom">
                    <span class="w-8 h-8 rounded-full py-1 font-bold text-white">{{ substr(session('user')->US_FIRST_NAME, 0, 1) . substr(session('user')->US_NAME, 0, 1) }}</span>
                <button type="button"
                        class="flex text-sm bg-blue-500 rounded-full md:me-0 focus:ring-4 focus:ring-blue-700"
                        id="user-menu-button" aria-expanded="false" data-dropdown-toggle="user-dropdown"
                        data-dropdown-placement="bottom">
                    <span
                        class="w-8 h-8 rounded-full py-1 font-bold text-white">{{ substr(session('user')->US_FIRST_NAME, 0, 1) . substr(session('user')->US_NAME, 0, 1) }}</span>
                </button>
                <!-- Dropdown menu -->
                <div class="z-50 hidden my-4 text-base list-none divide-y rounded-lg shadow bg-blue-700 divide-blue-500" id="user-dropdown">
                <div class="z-50 hidden my-4 text-base list-none divide-y rounded-lg shadow bg-blue-700 divide-blue-500"
                     id="user-dropdown">
                    <div class="px-4 py-3">
                        <span class="block text-sm text-white">{{ session('user')->US_FIRST_NAME . " " . session('user')->US_NAME }}</span>
                        <span
                            class="block text-sm text-white">{{ session('user')->US_FIRST_NAME . " " . session('user')->US_NAME }}</span>
                        <span class="block text-sm truncate text-gray-400">{{ session('user')->US_EMAIL }}</span>
                    </div>
                    <ul class="py-2" aria-labelledby="user-menu-button">
                        <li>
                            <a href="#" class="block px-4 py-2 text-sm hover:bg-gray-600 text-gray-200 hover:text-white">Historique de mes plongées</a>
                            <a href="#"
                               class="block px-4 py-2 text-sm hover:bg-gray-600 text-gray-200 hover:text-white">Historique
                                de mes plongées</a>
                        </li>
                        <li>
                            <a href="{{ route('logout') }}" class="block px-4 py-2 text-sm hover:bg-gray-600 text-gray-200 hover:text-white">Se déconnecter</a>
                            <a href="{{ route('logout') }}"
                               class="block px-4 py-2 text-sm hover:bg-gray-600 text-gray-200 hover:text-white">Se
                                déconnecter</a>
                        </li>
                    </ul>
                </div>
            @endif
            <button data-collapse-toggle="navbar-user" type="button" class="inline-flex items-center p-2 w-10 h-10 justify-center text-sm text-gray-500 rounded-lg md:hidden hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-[#002550] dark:focus:ring-gray-600" aria-controls="navbar-user" aria-expanded="false">
            <button data-collapse-toggle="navbar-user" type="button"
                    class="inline-flex items-center p-2 w-10 h-10 justify-center text-sm text-gray-500 rounded-lg md:hidden hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-[#002550] dark:focus:ring-gray-600"
                    aria-controls="navbar-user" aria-expanded="false">
                <span class="sr-only">Open main menu</span>
                <svg class="w-5 h-5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 17 14">
                    <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 1h15M1 7h15M1 13h15"/>
                <svg class="w-5 h-5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none"
                     viewBox="0 0 17 14">
                    <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
                          d="M1 1h15M1 7h15M1 13h15"/>
                </svg>
            </button>
        </div>
        <div class="items-center justify-between hidden w-full md:flex md:w-auto md:order-1" id="navbar-user">
            <ul class="flex flex-col font-medium p-4 md:p-0 mt-4 rounded-lg md:space-x-8 rtl:space-x-reverse md:flex-row md:mt-0 md:border-0 bg-[#063E7B] md:bg-[#002550]">
                <li class="py-2 @if(request()->routeIs('homepage')) md:border-b md:border-b-[#FFBE55] border-b-0 @endif">
                    <a href="{{ route('homepage') }}" @if(request()->routeIs('homepage')) class="block py-2 px-3 text-white bg-blue-700 rounded md:bg-transparent md:text-blue-700 md:p-0 md:dark:text-blue-500" aria-current="page" @else class="block py-2 px-3 rounded hover:bg-blue-700 md:p-0 text-white md:hover:text-blue-500 hover:text-white md:hover:bg-transparent border-gray-700" @endif>Page d'accueil</a>
                    <a href="{{ route('homepage') }}"
                       @if(request()->routeIs('homepage')) class="block py-2 px-3 text-white bg-blue-700 rounded md:bg-transparent md:text-blue-700 md:p-0 md:dark:text-blue-500"
                       aria-current="page"
                       @else class="block py-2 px-3 rounded hover:bg-blue-700 md:p-0 text-white md:hover:text-blue-500 hover:text-white md:hover:bg-transparent border-gray-700" @endif>Page
                        d'accueil</a>
                </li>
                <li class="py-2 @if(request()->routeIs('dives'))border-b border-b-[#FFBE55]@endif">
                    <a href="{{ route('dives') }}" @if(request()->routeIs('dives')) class="block py-2 px-3 text-white bg-blue-700 rounded md:bg-transparent md:text-blue-700 md:p-0 md:dark:text-blue-500" aria-current="page" @else class="block py-2 px-3 rounded hover:bg-blue-700 md:p-0 text-white md:hover:text-blue-500 hover:text-white md:hover:bg-transparent border-gray-700" @endif>Inscription aux plongées</a>
                    <a href="{{ route('dives') }}"
                       @if(request()->routeIs('dives')) class="block py-2 px-3 text-white bg-blue-700 rounded md:bg-transparent md:text-blue-700 md:p-0 md:dark:text-blue-500"
                       aria-current="page"
                       @else class="block py-2 px-3 rounded hover:bg-blue-700 md:p-0 text-white md:hover:text-blue-500 hover:text-white md:hover:bg-transparent border-gray-700" @endif>Inscription
                        aux plongées</a>
                </li>
            </ul>
        </div>
+7 −2
Original line number Diff line number Diff line
@@ -4,13 +4,18 @@
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.tailwindcss.com"></script>
    <style>* {box-sizing: border-box}</style>
    <style>* {
            box-sizing: border-box
        }</style>
</head>
<body class="min-h-[100vh] flex justify-between flex-col">
<div>
    <x-header/>
  <main class="mx-auto max-w-[1440px] w-full p-4 min-h-[80vh]">
    <main class="mx-auto max-w-[1440px] w-full p-4">
        {{ $slot }}
    </main>
</div>

<x-footer/>
</body>
</html>
+8 −7
Original line number Diff line number Diff line
@@ -14,23 +14,24 @@
                </tr>
                </thead>
                <tbody>
                @foreach ($user_role as $user)
                @dump($users);
                @for ($i = 1; $i < count($users[0]); $i++)
                    <tr class="odd:bg-white even:bg-gray-50 border-b">
                        <td class="px-6 py-4">{{ $user[2] }}</td>
                        <td class="px-6 py-4">{{ $users[0][$i][1] . " " . $users[0][$i][2] }}</td>
                        <td class="px-6 py-4">
                            <input type="checkbox" id="checkbox{{ $user[0] }}" name="checkbox{{ $user[0] }}" value="checkbox{{ $user[0] }}_DIV @if(array_search('DIV', $user[1])) checked @endif">
                            <input type="checkbox" id="checkbox{{ $users[0][$i][0] }}" name="checkbox{{ $users[0][$i][0] }}" value="checkbox{{ $users[0][$i][0] }}_DIV" @if(array_search('DIV', $users[1][$i]) !== false) checked @endif>
                        </td>
                        <td class="px-6 py-4">
                            <input type="checkbox" id="checkbox{{ $user[0] }}" name="checkbox{{ $user[0] }}" value="checkbox{{ $user[0] }}_SEC @if(array_search('SEC', $user[1])) checked @endif">
                            <input type="checkbox" id="checkbox{{ $users[0][$i][0] }}" name="checkbox{{ $users[0][$i][0] }}" value="checkbox{{ $users[0][$i][0] }}_SEC" @if(array_search('SEC', $users[1][$i]) !== false) checked @endif>
                        </td>
                        <td class="px-6 py-4">
                            <input type="checkbox" id="checkbox{{ $user[0] }}" name="checkbox{{ $user[0] }}" value="checkbox{{ $user[0] }}_PIL @if(array_search('PIL', $user[1])) checked @endif">
                            <input type="checkbox" id="checkbox{{ $users[0][$i][0] }}" name="checkbox{{ $users[0][$i][0] }}" value="checkbox{{ $users[0][$i][0] }}_PIL" @if(array_search('PIL', $users[1][$i]) !== false) checked @endif>
                        </td>
                        <td class="px-6 py-4">
                            <input type="checkbox" id="checkbox{{ $user[0] }}" name="checkbox{{ $user[0] }}" value="checkbox{{ $user[0] }}_DIR @if(array_search('DIR', $user[1])) checked @endif">
                            <input type="checkbox" id="checkbox{{ $users[0][$i][0] }}" name="checkbox{{ $users[0][$i][0] }}" value="checkbox{{ $users[0][$i][0] }}_DIR" @if(array_search('DIR', $users[1][$i]) !== false) checked @endif>
                        </td>
                    </tr>
                @endforeach
                @endfor
                </tbody>
            </table>