| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- <!doctype html>
- <html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <!-- CSRF Token -->
- <meta name="csrf-token" content="{{ csrf_token() }}">
- <title>{{ config('app.name', 'Laravel') }}</title>
- <!-- Fonts -->
- <link rel="dns-prefetch" href="//fonts.bunny.net">
- <link href="https://fonts.bunny.net/css?family=Nunito" rel="stylesheet">
- <!-- favicon -->
- <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
- <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
- <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
- <link rel="manifest" href="/site.webmanifest">
- <!-- Scripts -->
- @vite(['resources/sass/app.scss', 'resources/js/app.js'])
- </head>
- <body>
- <div class="alerts">
- @if($message = session('success'))
- @php
- if(!is_array($message)) $message = [$message];
- @endphp
- @foreach($message as $m)
- <div class="main-alert alert alert-success" role="alert">
- {{ $m }}
- </div>
- @endforeach
- @endif
- @if($message = session('danger'))
- @php
- if(!is_array($message)) $message = [$message];
- @endphp
- @foreach($message as $m)
- <div class="main-alert alert alert-danger" role="alert">
- {{ $m }}
- </div>
- @endforeach
- @endif
- </div>
- <div id="app">
- <nav class="navbar navbar-expand-md navbar-light bg-white shadow-sm">
- <div class="container-fluid">
- <a class="navbar-brand" href="{{ url('/') }}">
- {{ config('app.name', 'Laravel') }}
- </a>
- <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Открыть меню">
- <span class="navbar-toggler-icon"></span>
- </button>
- <div class="collapse navbar-collapse" id="navbarSupportedContent">
- <!-- Left Side Of Navbar -->
- <ul class="navbar-nav me-auto">
- @include('layouts.menu')
- </ul>
- <!-- Right Side Of Navbar -->
- <ul class="navbar-nav ms-auto">
- <!-- Authentication Links -->
- @guest
- @if (Route::has('login'))
- <li class="nav-item">
- <a class="nav-link" href="{{ route('login') }}">Вход</a>
- </li>
- @endif
- @if (Route::has('register'))
- <li class="nav-item">
- <a class="nav-link" href="{{ route('register') }}">Регистрация</a>
- </li>
- @endif
- @else
- <li class="nav-item dropdown">
- <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- {{ year() }}
- </a>
- <div class="dropdown-menu">
- @for($year = (int)date('Y') + 1; $year >= 2020; $year--)
- <a class="dropdown-item" href="{{ route('set-year', ['year' => $year]) }}">{{ $year }}</a>
- @endfor
- </div>
- </li>
- <li class="nav-item dropdown">
- <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- {{ Auth::user()->name }}
- </a>
- <div class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown">
- <a class="dropdown-item" href="{{ route('user.profile') }}">Профиль</a>
- <a class="dropdown-item" href="{{ route('logout') }}"
- onclick="event.preventDefault();
- document.getElementById('logout-form').submit();">
- Выход
- </a>
- <form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
- @csrf
- </form>
- </div>
- </li>
- @endguest
- </ul>
- </div>
- </div>
- </nav>
- <main class="py-4">
- <div class="container-fluid">
- @yield('content')
- </div>
- </main>
- </div>
- @include('partials.customAlert')
- <script>
- // Функция для замены стандартного alert
- function customAlert(message) {
- $('#customAlertModalBody').text(message); // Устанавливаем текст сообщения
- let myModal = new bootstrap.Modal(document.getElementById('customAlertModal'), {});
- myModal.show();
- }
- </script>
- @stack('scripts')
- <script type="module">
- let user = {{ auth()->user()?->id ?? 0}};
- let socketAddress = '{{ config('app.ws_addr') }}';
- localStorage.setItem('user', user);
- localStorage.setItem('socketAddress', socketAddress);
- let selectMaf = $('#select_maf');
- $('#search_maf').on('keyup', function () {
- // search products on backend
- $.get('{{ route('product.search') }}?s=' + $(this).val(),
- function (data) {
- selectMaf.children().remove()
- $.each(data, function (id, name) {
- selectMaf.append('<option value=\'' + id + '\'>' + name + '</option>');
- });
- }
- );
- });
- $(document).ready(function () {
- setInterval(keepTokenAlive, 1000 * 60 * 15); // every 15 mins
- function keepTokenAlive() {
- $.ajax({
- url: '/keep-token-alive',
- method: 'post',
- headers: {
- 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
- }
- }).then(function () {
- console.log('Updated csrf token');
- });
- }
- });
- </script>
- </body>
- </html>
|