product.blade.php 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. @extends('layouts.app')
  2. @section('content')
  3. @php
  4. $disabled = 'disabled';
  5. if(\Illuminate\Support\Facades\Session::get('user')['role'] == 1) $disabled = ''
  6. @endphp
  7. <div class="container-fluid">
  8. <div class="row">
  9. <div class="col-sm-12 col-md-6">
  10. <h3>Редактирование продукта <strong>{{ $product->name }}</strong></h3>
  11. <form action="{{ route('save_product') }}" method="post">
  12. @csrf
  13. <div class="row mt-3">
  14. <div class="col-6">
  15. <label for="article" class="form-label">Артикул</label>
  16. <input class="form-control" id="article" value="{{ $product->article }}"
  17. disabled>
  18. <input type="hidden" name="id" value="{{ $product->id }}" {{ $disabled }}>
  19. </div>
  20. <div class="col-6">
  21. <label for="series" class="form-label">Серия</label>
  22. <input class="form-control @error('series') border-danger @enderror" {{ $disabled }}
  23. name="series" id="series" value="{{ old('series', $product->series) }}">
  24. @error('series')
  25. <div class="form-text text-danger" id="titleError">
  26. {{ $message }}
  27. </div>
  28. @enderror
  29. </div>
  30. </div>
  31. <div class="row mt-3">
  32. <div class="col-6">
  33. <label for="name" class="form-label">Наименовение</label>
  34. <input class="form-control @error('name') border-danger @enderror" {{ $disabled }}
  35. name="name" id="name" value="{{ old('name', $product->name) }}">
  36. @error('name')
  37. <div class="form-text text-danger" id="titleError">
  38. {{ $message }}
  39. </div>
  40. @enderror
  41. </div>
  42. <div class="col-6">
  43. <label for="name_for_form" class="form-label">Наименование под образец формы</label>
  44. <input class="form-control @error('name_for_form') border-danger @enderror" {{ $disabled }}
  45. name="name_for_form" id="name_for_form"
  46. value="{{ old('name_for_form', $product->name_for_form) }}">
  47. @error('name_for_form')
  48. <div class="form-text text-danger" id="titleError">
  49. {{ $message }}
  50. </div>
  51. @enderror
  52. </div>
  53. </div>
  54. <div class="row mt-3">
  55. <div class="col-6">
  56. <label for="product_group" class="form-label">Группа</label>
  57. <input class="form-control @error('product_group') border-danger @enderror"
  58. name="product_group" id="product_group" {{ $disabled }}
  59. value="{{ old('product_group', $product->product_group) }}">
  60. @error('product_group')
  61. <div class="form-text text-danger" id="titleError">
  62. {{ $message }}
  63. </div>
  64. @enderror
  65. </div>
  66. <div class="col-6">
  67. <label for="price" class="form-label">Цена</label>
  68. <input type="number" step="0.01" class="form-control @error('price') border-danger @enderror"
  69. name="price" id="price" {{ $disabled }}
  70. value="{{ old('price', number_format($product->price, 2, '.', '')) }}">
  71. @error('price')
  72. <div class="form-text text-danger" id="titleError">
  73. {{ $message }}
  74. </div>
  75. @enderror
  76. </div>
  77. </div>
  78. <label for="characteristics" class="form-label mt-3">Характеристики</label>
  79. <textarea class="form-control @error('characteristics') border-danger @enderror"
  80. name="characteristics" rows="4" {{ $disabled }}
  81. id="characteristics">{{ old('characteristics', $product->characteristics) }}</textarea>
  82. @error('characteristics')
  83. <div class="form-text text-danger" id="titleError">
  84. {{ $message }}
  85. </div>
  86. @enderror
  87. <label for="tech_description" class="form-label mt-3">Техническое описание</label>
  88. <textarea class="form-control @error('tech_description') border-danger @enderror"
  89. name="tech_description" rows="5" {{ $disabled }}
  90. id="tech_description">{{ old('tech_description', $product->tech_description) }}</textarea>
  91. @error('tech_description')
  92. <div class="form-text text-danger" id="titleError">
  93. {{ $message }}
  94. </div>
  95. @enderror
  96. <label for="tech_description_short" class="form-label mt-3">Техническое описание сокращенное без
  97. артикула</label>
  98. <textarea class="form-control @error('tech_description_short') border-danger @enderror"
  99. name="tech_description_short" rows="5" {{ $disabled }}
  100. id="tech_description_short">{{
  101. old('tech_description_short', $product->tech_description_short) }}</textarea>
  102. @error('tech_description_short')
  103. <div class="form-text text-danger" id="titleError">
  104. {{ $message }}
  105. </div>
  106. @enderror
  107. <div class="col-12 text-center mt-3">
  108. <input type="hidden" name="prev_url" value="{{ URL::previous() }}">
  109. <button {{ $disabled }} type="submit" class="btn btn-primary">Сохранить</button>
  110. <a href="{{ URL::previous() }}" class="btn btn-dark">Назад</a>
  111. </div>
  112. </form>
  113. </div>
  114. <div class="col-sm-12 col-md-6">
  115. <div class="col-12 text-end">
  116. <button {{ $disabled }} class="btn btn-primary" onclick="document.getElementById('upload-image-form').click()">
  117. Загрузить
  118. </button>
  119. <br>
  120. <span class="notice">Изображение сохраниться в папку с изображениями товаров: stroyprofit.com/{{ env('IMAGES_PATH', 'fill-path') }}/<br>
  121. Имя файла будет сформировано уникальное, в начале имени до точки будет артикул товара.</span>
  122. <form action="{{ route('upload_image') }}" method="post" enctype="multipart/form-data"
  123. class="visually-hidden" onchange="this.submit()">
  124. @csrf
  125. <input type="hidden" name="article" value="{{ $product->article }}">
  126. <input type="file" name="filename" id="upload-image-form" accept=".jpg">
  127. </form>
  128. </div>
  129. @empty($product->image_path)
  130. <div class="text-center my-5 fs-3">Нет изображения</div>
  131. @else
  132. <div class="col-12 text-center" >
  133. <img src="{{ '/' . env('IMAGES_PATH', '/fill_images_path_in_env') . '/' . $product->image_path }}"
  134. alt="{{ $product->article }}" class="img-fluid" style="max-height: 40vh;">
  135. </div>
  136. @endempty
  137. @if(count($images) > 1)
  138. <div class="col-12 mt-3">
  139. <div class="fs-5 mb-4">Найдены изображения с таким артикулом:</div>
  140. <div class="row justify-content-center align-items-end">
  141. @foreach($images as $image)
  142. <div class="h-100 col-md-3 col-sm-2 text-center">
  143. <img class="img-thumbnail"
  144. src="{{ '/' . env('IMAGES_PATH', 'zzz') . '/' . $image }}" alt="{{ $image }}">
  145. <form action="{{ route('update_image', $product->id) }}" method="post">
  146. @csrf
  147. <input type="hidden" name="image_path" value="{{ $image }}">
  148. <button type="submit" class="btn btn-primary my-3">Выбрать</button>
  149. </form>
  150. </div>
  151. @endforeach
  152. </div>
  153. </div>
  154. @endif
  155. </div>
  156. </div>
  157. </div>
  158. @endsection