data.blade.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. @extends('layouts.app')
  2. @section('title', 'Просмотр данных')
  3. @section('content')
  4. <div>
  5. <div>
  6. <div>
  7. <div>
  8. <h4>Все отправленные данные</h4>
  9. <div>
  10. <a href="{{ route('form.show') }}">Добавить новую</a>
  11. <a href="{{ route('api.form-data.statistics') }}" target="_blank">API Статистика</a>
  12. </div>
  13. </div>
  14. <div>
  15. <form method="GET" action="{{ route('data.show') }}">
  16. <div>
  17. <label>Пол</label>
  18. <select name="gender">
  19. <option value="">Все</option>
  20. <option value="male" {{ request('gender') == 'male' ? 'selected' : '' }}>Мужской</option>
  21. <option value="female" {{ request('gender') == 'female' ? 'selected' : '' }}>Женский</option>
  22. </select>
  23. </div>
  24. <div>
  25. <label>Категория</label>
  26. <select name="category_id">
  27. <option value="">Все категории</option>
  28. @foreach($categories as $category)
  29. <option value="{{ $category->id }}" {{ request('category_id') == $category->id ? 'selected' : '' }}>
  30. {{ $category->name }}
  31. </option>
  32. @endforeach
  33. </select>
  34. </div>
  35. <div>
  36. <label>
  37. <input type="checkbox"
  38. name="today"
  39. value="1"
  40. {{ request('today') ? 'checked' : '' }}>
  41. <span>За сегодня</span>
  42. </label>
  43. </div>
  44. <div>
  45. <button type="submit">Фильтровать</button>
  46. <a href="{{ route('data.show') }}">Сбросить</a>
  47. </div>
  48. </form>
  49. </div>
  50. </div>
  51. @if($data->isEmpty())
  52. <div>
  53. <p>Данные отсутствуют.</p>
  54. <a href="{{ route('form.show') }}">Отправьте форму</a> чтобы добавить данные.
  55. </div>
  56. @else
  57. <div>
  58. <div>
  59. <table>
  60. <thead>
  61. <tr>
  62. <th>ID</th>
  63. <th>Имя</th>
  64. <th>Email</th>
  65. <th>Телефон</th>
  66. <th>Пол</th>
  67. <th>Категория</th>
  68. <th>Сообщение</th>
  69. <th>Дата</th>
  70. <th>Действия</th>
  71. </tr>
  72. </thead>
  73. <tbody>
  74. @foreach($data as $item)
  75. <tr>
  76. <td>
  77. <small>{{ substr($item->uuid, 0, 8) }}...</small>
  78. </td>
  79. <td>
  80. <a href="{{ route('form-data.show', $item->id) }}">{{ $item->name }}</a>
  81. </td>
  82. <td>{{ $item->email }}</td>
  83. <td>{{ $item->phone }}</td>
  84. <td>
  85. <span>{{ $item->gender ? 'Male' : 'Female' }}</span>
  86. </td>
  87. <td>
  88. @if($item->category)
  89. <span>{{ $item->category->name }}</span>
  90. @else
  91. <span>—</span>
  92. @endif
  93. </td>
  94. <td>
  95. <div>{{ Str::limit($item->message, 50) }}</div>
  96. </td>
  97. <td>
  98. {{ $item->submitted_at->timezone('Asia/Irkutsk')->format('d.m.Y H:i') }}
  99. </td>
  100. <td>
  101. <div>
  102. <a href="{{ route('form-data.show', $item->id) }}" title="Просмотр">👁️</a>
  103. <a href="{{ route('form-data.edit', $item->id) }}" title="Редактировать">✏️</a>
  104. <form action="{{ route('form-data.destroy', $item->id) }}"
  105. method="POST"
  106. onsubmit="return confirm('Удалить эту запись?')">
  107. @csrf
  108. @method('DELETE')
  109. <button type="submit" title="Удалить">🗑️</button>
  110. </form>
  111. </div>
  112. </td>
  113. </tr>
  114. @endforeach
  115. </tbody>
  116. </table>
  117. </div>
  118. <div>
  119. {{ $data->onEachSide(1)->links('pagination::simple-bootstrap-5') }}
  120. </div>
  121. </div>
  122. <div>
  123. <div>
  124. <div>Всего записей</div>
  125. <div>{{ $data->total() }}</div>
  126. </div>
  127. <div>
  128. <div>Мужчины</div>
  129. <div>
  130. {{ \App\Models\FormData::male()->count() }}
  131. </div>
  132. </div>
  133. <div>
  134. <div>Женщины</div>
  135. <div>
  136. {{ \App\Models\FormData::female()->count() }}
  137. </div>
  138. </div>
  139. <div>
  140. <div>Сегодня</div>
  141. <div>
  142. {{ \App\Models\FormData::today()->count() }}
  143. </div>
  144. </div>
  145. </div>
  146. @endif
  147. <div>
  148. <h5>API Endpoints</h5>
  149. <div>
  150. <div>
  151. <span>GET</span>
  152. <code>/api/v1/form-data</code>
  153. <span>— Список данных</span>
  154. </div>
  155. <div>
  156. <span>POST</span>
  157. <code>/api/v1/form-data</code>
  158. <span>— Создание записи</span>
  159. </div>
  160. <div>
  161. <span>GET</span>
  162. <code>/api/v1/form-data/statistics</code>
  163. <span>— Статистика</span>
  164. </div>
  165. </div>
  166. </div>
  167. </div>
  168. </div>
  169. @endsection