info_page.blade.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. @extends('layouts.app')
  2. {{--@section('navbar')--}}
  3. {{--@stop--}}
  4. @section('styles')
  5. @parent
  6. <link href="{{ asset('css/item_info_page.css') }}" rel="stylesheet">
  7. <link href="{{ asset('css/animated_modal_4.css') }}" rel="stylesheet">
  8. @endsection
  9. @section('content')
  10. {{--<link href="{{ asset('css/bootstrap.4.min.css') }}" rel="stylesheet">--}}
  11. {{--<script src="{{ asset('js/bootstrap.4.min.js') }}"></script>--}}
  12. <div id="item-info" class="wrapper">
  13. <div id="info-content" class="container card">
  14. <div class="info-header" id="{{ $item->id }}">
  15. <div class="info-caption">
  16. <h2>{{ $item->caption }}</h2>
  17. </div>
  18. <div class="info-date d-flex">
  19. <span class="date">
  20. @if ($item->created_at)
  21. <i class="fa fa-clock-o"></i>
  22. {{ date_format($item->created_at,'Y-m-d') }}
  23. @else
  24. <i class="fa fa-clock-o"></i> нет данных
  25. @endif
  26. </span>
  27. <span class="category">
  28. <a href="/category/{{ $item->category_id }}">{{ $item->category->title }}</a>
  29. </span>
  30. </div>
  31. </div>
  32. <div class="info-body">
  33. <div id="info-carousel" class="carousel slide" data-ride="carousel">
  34. <ul class="carousel-indicators">
  35. <li data-target="#info-carousel" data-slide-to="0" class="active"></li>
  36. <li data-target="#info-carousel" data-slide-to="1"></li>
  37. <li data-target="#info-carousel" data-slide-to="2"></li>
  38. </ul>
  39. <div class="carousel-inner d-flex">
  40. <div class="carousel-item active">
  41. @if (isset($item->picture[0]))
  42. <img src="/image/{{ $item->picture[0]->path }}" onclick="">
  43. @else
  44. <img src="/image/items/default" onclick="">
  45. @endif
  46. </div>
  47. @foreach($item->picture as $key => $picture)
  48. @continue($key===0)
  49. <div class="carousel-item">
  50. <img src="/image/{{ $picture->path ?: "/items/default" }}" onclick="">
  51. </div>
  52. @endforeach
  53. </div>
  54. <!-- Left and right controls -->
  55. <a class="left carousel-control" href="#info-carousel" data-slide="prev">
  56. <span class="glyphicon glyphicon-chevron-left"></span>
  57. <span class="sr-only">Previous</span>
  58. </a>
  59. <a class="right carousel-control" href="#info-carousel" data-slide="next">
  60. <span class="glyphicon glyphicon-chevron-right"></span>
  61. <span class="sr-only">Next</span>
  62. </a>
  63. </div>
  64. </div>
  65. <div class="info-footer">
  66. <h3>Описание</h3>
  67. <div class="info-description pt-2">{{ $item->description }}</div>
  68. </div>
  69. </div>
  70. <div id="info-comments" class="container card">
  71. <div class="card-header"><h3>Комментарии</h3></div>
  72. <div class="card-body">
  73. {{--@if ($messages)--}}
  74. {{--@endif--}}
  75. @if (\Illuminate\Support\Facades\Auth::id())
  76. <div id="leave-message" class="d-inline-block col-md-12">
  77. <form method="POST" href="#">
  78. {{ csrf_field() }}
  79. <input hidden name="item_id" value="{{ $item->id }}">
  80. <input hidden name="user_id" value="{{ \Illuminate\Support\Facades\Auth::id() }}">
  81. <textarea id="comment" name="comment"
  82. placeholder="Оставить свой комментарий..."
  83. rows="4" tabindex="4"></textarea>
  84. <input class="btn btn-outline-primary col-md-offset-9 col-md-3"
  85. {{--type="submit" --}}tabindex="5"
  86. value="коммент">
  87. </form>
  88. </div>
  89. @endif
  90. </div>
  91. </div>
  92. <div id="exchenger" style="margin-top:15px">
  93. @if ($item->archive == 'false')
  94. @auth
  95. @if ($item->user_id === \Illuminate\Support\Facades\Auth::id())
  96. <div class="form-group form-inline">
  97. <form method="POST" action="{{ route('item.delete',$item) }}">
  98. {{ csrf_field() }}
  99. <input type="hidden" name="_method" value="DELETE">
  100. <button type="submit" class="btn btn-danger btn-lg">Удалить</button>
  101. </form>
  102. <a href="#" class="btn btn-secondary btn-lg mt-0 ml-3" role="button"
  103. onclick="userItemsModify({{ $item->id }})"
  104. data-toggle="modal" data-target="#itemModify">Редактировать</a>
  105. </div>
  106. @else
  107. <button type="button" class="btn btn-primary btn-lg btn-block" onclick="userItemsList(this)"
  108. data-toggle="modal" data-target="#itemListModali">Предложить обмен
  109. </button>
  110. @endif
  111. @else
  112. <a href="{{ route('login') }}" class="btn btn-secondary btn-lg btn-block" role="button">Предложить
  113. обмен</a>
  114. @endauth
  115. @endif
  116. </div>
  117. </div>
  118. {{------------------------------ MODAL WINDOWS ------------------------}}
  119. <div class="modal fade" id="itemListModal" tabindex="-1" role="dialog" aria-labelledby="itemListModalLabel"
  120. aria-hidden="true">
  121. <div class="modal-dialog modal-dialog-slideout modal-lg" role="document">
  122. <div class="modal-content">
  123. <div class="modal-header">
  124. <h5 class="modal-title" id="itemListModalLabel">Выберите предмет для обмена</h5>
  125. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  126. <span aria-hidden="true">×</span>
  127. </button>
  128. </div>
  129. <div class="modal-body justify-content-center">
  130. <h4> У Вас нет предметов на обмен </h4>
  131. <br>
  132. <a href="{{ route('user.item.create') }}" class="btn btn-outline-primary btn-lg" role="button">Добавить
  133. предмет</a>
  134. </div>
  135. <div class="modal-footer">
  136. <form id="itemsExchangeForm" method="POST" role="form" hidden
  137. action="{{ route('item.exchange.store',['item'=>$item->id]) }}">
  138. {{ csrf_field() }}
  139. <input id="itemId" name="item_id" value="{{ $item->id }}" hidden>
  140. <input id="itemOfferId" name="item_offer_id" value="" hidden>
  141. </form>
  142. </div>
  143. </div>
  144. </div>
  145. </div>
  146. <div class="modal fade" id="itemModify" tabindex="-1" role="dialog" aria-labelledby="itemModify" aria-hidden="true">
  147. <div class="modal-dialog a-zoomRight" role="document">
  148. <div class="modal-content">
  149. <div class="modal-header">
  150. <h5 class="modal-title" id="itemModifyLabel">Измение итемки</h5>
  151. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  152. <span aria-hidden="true">×</span>
  153. </button>
  154. </div>
  155. <div class="modal-body justify-content-center">
  156. <h4> Итемка не выбрана </h4>
  157. </div>
  158. <div class="modal-footer">
  159. <button type="button" class="btn btn-danger" data-action="DELETE" onclick="changeMethod(this)">
  160. Удалить
  161. </button>
  162. <button type="button" class="btn btn-primary" data-action="PUT" onclick="changeMethod(this)">
  163. Изменить
  164. </button>
  165. <button type="button" class="btn btn-secondary" data-dismiss="modal">Закрыть</button>
  166. </div>
  167. </div>
  168. </div>
  169. </div>
  170. {{-------------------------- END MODAL WINDOWS ------------------------}}
  171. @if (session('status.text'))
  172. <button data-toggle="modal" data-target="#alert">SHOW</button>
  173. <div id="alert" class="modal animate" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
  174. aria-hidden="true"
  175. data-backdrop="true">
  176. <div class="modal-dialog a-fadeUp" role="document">
  177. <div class="modal-content">
  178. <div class="modal-header alert-{{ session('status.class') }}">
  179. <h5 style="margin-bottom: 0">Статус отправки</h5>
  180. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  181. <span aria-hidden="true">×</span>
  182. </button>
  183. </div>
  184. <div class="modal-body text-center p-lg">
  185. <div class="alert alert-light" style="font-size: 1.2em">
  186. {{ session('status.text') }}
  187. </div>
  188. </div>
  189. </div>
  190. </div>
  191. </div>
  192. @endif
  193. @stop
  194. @section('scripts')
  195. @parent
  196. <script>
  197. function userItemsList($element) {
  198. $.ajax({
  199. headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
  200. url: '{{ route("user.items.ajax") }}',
  201. type: 'POST',
  202. data: ( '{ "user": ' + {{Auth::id()}} +' }' ),
  203. contentType: 'json',
  204. processData: false,
  205. success: function (response) {
  206. if (response.length !== 0) {
  207. $("#itemListModal .modal-body").html(response);
  208. }
  209. $('#itemListModal').modal('toggle');
  210. console.log(response);
  211. $('a[href="#sendOffer"]').bind("click", function () {
  212. let $id = $(this).data('item-id');
  213. if ($id) {
  214. $('form input#itemOfferId').val($id);
  215. $('#itemsExchangeForm').submit();
  216. }
  217. console.log($id);
  218. });
  219. }
  220. });
  221. }
  222. function userItemsModify(itemId) {
  223. $.ajax({
  224. headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
  225. url: '{{ route("user.item.modify.ajax",0) }}' + itemId,
  226. type: 'POST',
  227. data: ( '{ "item": ' + itemId + ' }' ),
  228. success: function (response) {
  229. console.log(response);
  230. if (response.length !== 0) {
  231. $("#itemModify .modal-body").html(response);
  232. }
  233. }
  234. });
  235. }
  236. $(function () {
  237. $('#alert').modal('toggle');
  238. });
  239. function optionShow($element) {
  240. var $id = $element.getAttribute('value');
  241. $.ajax({
  242. headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
  243. url: '{{ route("admin.items.ajax", ["id"=> '0'])}}' + $id,
  244. type: 'POST',
  245. data: ( '{ "item": ' + $id + ' }' ),
  246. contentType: 'json',
  247. processData: false,
  248. success: function (response) {
  249. $("#itemModify .modal-body").html(response);
  250. let item = document.querySelector('#myModal input[name="id"]');
  251. let title = document.querySelector('#myModal .modal-title');
  252. title.innerHTML = "Редактирование итемки № <b>" + item.value + "</b>";
  253. }
  254. });
  255. $("#itemModify").modal('show');
  256. $("#itemModify").attr('style', 'margin-top: 5%; transition: all 600ms ease-in-out;');
  257. }
  258. </script>
  259. @endsection