index.blade.php 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. @extends('layouts.app')
  2. @section('content')
  3. <div class="row mb-2 catalog">
  4. <div class="col-md-4">
  5. <h3>Каталог</h3>
  6. </div>
  7. <div class="col-md-4 text-center">
  8. <div class="fw-bold fs-2 lh-1">{{ year() }}</div>
  9. </div>
  10. <div class="col-md-4 text-end">
  11. @if(hasRole('admin'))
  12. <button type="button" class="btn btn-sm mb-1 btn-primary" data-bs-toggle="modal" data-bs-target="#importModal">
  13. Импорт
  14. </button>
  15. <button type="button" class="btn btn-sm mb-1 btn-primary" data-bs-toggle="modal" data-bs-target="#exportModal">
  16. Экспорт
  17. </button>
  18. <a href="{{ route('catalog.create') }}" class="btn btn-sm mb-1 btn-primary">Добавить</a>
  19. @endif
  20. </div>
  21. </div>
  22. @include('partials.table', [
  23. 'id' => $id,
  24. 'header' => $header,
  25. 'strings' => $products,
  26. 'routeName' => 'catalog.show',
  27. 'routeParam' => 'product',
  28. ])
  29. @include('partials.pagination', ['items' => $products])
  30. <!-- Модальное окно импорта-->
  31. <div class="modal fade" id="importModal" tabindex="-1" aria-labelledby="importModalLabel" aria-hidden="true">
  32. <div class="modal-dialog modal-fullscreen-sm-down">
  33. <div class="modal-content">
  34. <div class="modal-header">
  35. <h1 class="modal-title fs-5" id="importModalLabel">Импорт каталога</h1>
  36. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></button>
  37. </div>
  38. <div class="modal-body">
  39. <form action="{{ route('import.create') }}" method="post" enctype="multipart/form-data">
  40. @csrf
  41. <input type="hidden" name="type" value="catalog">
  42. @include('partials.input', ['title' => 'XLSX файл', 'name' => 'import_file', 'type' => 'file', 'required' => true])
  43. @include('partials.submit', ['name' => 'Импорт'])
  44. </form>
  45. </div>
  46. </div>
  47. </div>
  48. </div>
  49. <!-- Модальное окно экспорта-->
  50. <div class="modal fade" id="exportModal" tabindex="-1" aria-labelledby="exportModalLabel" aria-hidden="true">
  51. <div class="modal-dialog modal-fullscreen-sm-down modal-lg">
  52. <div class="modal-content">
  53. <div class="modal-header">
  54. <h1 class="modal-title fs-5" id="exportModalLabel">Экспорт каталога</h1>
  55. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></button>
  56. </div>
  57. <div class="modal-body">
  58. <form action="{{ route('catalog.export') }}" method="post" enctype="multipart/form-data">
  59. @csrf
  60. @include('partials.checkbox', ['title' => 'С учётом текущего фильтра и поиска', 'name' => 'withFilter', 'type' => 'checkbox', 'value' => 'yes', 'checked' => false])
  61. <div class="d-none">
  62. @if(request()->s)
  63. @include('partials.input', ['name' => 'filters[s]', 'title' => 'поиск', 'value' => request()->s])
  64. @endif
  65. @if(request()->filters)
  66. @foreach(request()->filters as $filterName => $filterValue)
  67. @include('partials.input', ['name' => 'filters[' . $filterName .']', 'title' => $filterName, 'value' => $filterValue])
  68. @endforeach
  69. @endif
  70. </div>
  71. @include('partials.submit', ['name' => 'Экспорт'])
  72. </form>
  73. </div>
  74. </div>
  75. </div>
  76. </div>
  77. @endsection