index.blade.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. @extends('layouts.app')
  2. @section('content')
  3. <div class="row mb-3">
  4. <div class="col-6">
  5. <h3>Округа</h3>
  6. </div>
  7. <div class="col-6 text-end">
  8. <button type="button" class="btn btn-sm btn-success me-2" data-bs-toggle="modal" data-bs-target="#importModal">
  9. Импорт
  10. </button>
  11. <form action="{{ route('admin.district.export') }}" method="post" class="d-inline">
  12. @csrf
  13. <button type="submit" class="btn btn-sm btn-outline-success me-2">Экспорт</button>
  14. </form>
  15. <button type="button" class="btn btn-sm btn-primary" data-bs-toggle="modal" data-bs-target="#addModal">
  16. Добавить
  17. </button>
  18. </div>
  19. </div>
  20. @if(session('success'))
  21. <div class="alert alert-success alert-dismissible fade show" role="alert">
  22. {{ session('success') }}
  23. <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Закрыть"></button>
  24. </div>
  25. @endif
  26. @if(session('error'))
  27. <div class="alert alert-danger alert-dismissible fade show" role="alert">
  28. {{ session('error') }}
  29. <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Закрыть"></button>
  30. </div>
  31. @endif
  32. <table class="table table-bordered table-striped table-hover table-sm">
  33. <thead>
  34. <tr>
  35. @foreach($header as $key => $title)
  36. <th>{{ $title }}</th>
  37. @endforeach
  38. <th></th>
  39. </tr>
  40. </thead>
  41. <tbody>
  42. @foreach($districts as $district)
  43. <tr>
  44. <td>{{ $district['id'] }}</td>
  45. <td>{{ $district['shortname'] }}</td>
  46. <td>{{ $district['name'] }}</td>
  47. <td>{{ $district['areas_count'] }}</td>
  48. <td class="text-end">
  49. <a href="{{ route('admin.district.show', $district['id']) }}" class="btn btn-sm btn-outline-primary">
  50. Редактировать
  51. </a>
  52. </td>
  53. </tr>
  54. @endforeach
  55. </tbody>
  56. </table>
  57. <!-- Модальное окно добавления -->
  58. <div class="modal fade" id="addModal" tabindex="-1" aria-hidden="true">
  59. <div class="modal-dialog">
  60. <div class="modal-content">
  61. <div class="modal-header">
  62. <h5 class="modal-title">Добавить округ</h5>
  63. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></button>
  64. </div>
  65. <div class="modal-body">
  66. <form action="{{ route('admin.district.store') }}" method="post">
  67. @csrf
  68. @include('partials.input', ['name' => 'shortname', 'title' => 'Сокращение', 'required' => true])
  69. @include('partials.input', ['name' => 'name', 'title' => 'Название', 'required' => true])
  70. @include('partials.submit', ['name' => 'Добавить'])
  71. </form>
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. <!-- Модальное окно импорта -->
  77. <div class="modal fade" id="importModal" tabindex="-1" aria-hidden="true">
  78. <div class="modal-dialog">
  79. <div class="modal-content">
  80. <div class="modal-header">
  81. <h5 class="modal-title">Импорт округов</h5>
  82. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></button>
  83. </div>
  84. <div class="modal-body">
  85. <form action="{{ route('admin.district.import') }}" method="post" enctype="multipart/form-data">
  86. @csrf
  87. <div class="mb-3">
  88. <p class="text-muted small">
  89. Формат файла: XLSX с колонками: ID, Сокращение, Название.<br>
  90. Первая строка — заголовки.
  91. </p>
  92. </div>
  93. @include('partials.input', ['name' => 'import_file', 'type' => 'file', 'title' => 'XLSX файл', 'required' => true])
  94. @include('partials.submit', ['name' => 'Импорт'])
  95. </form>
  96. </div>
  97. </div>
  98. </div>
  99. </div>
  100. @if($errors->any())
  101. @dump($errors)
  102. @endif
  103. @endsection