modal_form.blade.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <!--suppress ALL -->
  2. <div id="json-subcat" hidden>{{ (string)($data->subcategories) ?? '' }}</div>
  3. <div id="data-pictures" hidden>{{ (string)($data->pictures) ?? '' }}</div>
  4. <script>
  5. {{-- var $subcat = {!! (string)$data->subcategories !!};--}}
  6. var data = $('#data-pictures').text()
  7. if (data != "") {
  8. var $pictures = $.parseJSON($('#data-pictures').text());
  9. }
  10. var $subcat = $.parseJSON($('#json-subcat').text());
  11. $('#json-subcat').remove();
  12. $('#json-subcat').remove();
  13. function subcategoryPick() {
  14. var selected = $('#item-cat').val()
  15. var subCatOpt = '';
  16. $subcat.forEach(function (subcat) {
  17. if (subcat.category_id === +selected) {
  18. subCatOpt += '<option value="' + subcat.category_id + '">' + subcat.title + '</option><br>'
  19. }
  20. });
  21. $('#item-subcat').html(subCatOpt);
  22. }
  23. if ($('.modal-footer button').length < 2) {
  24. $('.modal-footer').prepend(
  25. '<button type="button" class="btn btn-primary" _method="POST" onclick="changeMethod(this)">Создать</button>' +
  26. '<button type="button" class="btn btn-danger" _method="DELETE" onclick="changeMethod(this)">Удалить</button>' +
  27. '<button type="button" class="btn btn-info" _method="PUT" onclick="changeMethod(this)">Сохранить изменения</button>'
  28. )
  29. }
  30. </script>
  31. <form id="item-fom" method="POST" action="{{ $route }}" enctype="multipart/form-data">
  32. {{ csrf_field() }}
  33. @method('POST')
  34. <div class="row">
  35. <div class="col-sm-3">
  36. <label class="sr-only" for="inlineFormInputGroup">Username</label>
  37. <div class="input-group">
  38. <span class="input-group-addon"><i class="fa fa-database" aria-hidden="true"></i></span>
  39. <input type="text" class="form-control" name="id" value="{{ $data->item->id }}"
  40. placeholder="ID предмета"/>
  41. </div>
  42. </div>
  43. <div class="col-sm-4">
  44. <div class="input-group">
  45. <span class="input-group-addon"><i class="fa fa-user fa" aria-hidden="true"></i></span>
  46. <input type="text" class="form-control" name="user_id" value="{{ $data->item->user_id }}"
  47. placeholder="ID пользователя"/>
  48. </div>
  49. </div>
  50. <div class="col-sm-5">
  51. <div class="input-group">
  52. <span class="input-group-addon"><i class="fa fa-calendar-o" aria-hidden="true"></i></span>
  53. <input type="datetime" class="form-control" name="created_at" value="{{ $data->item->created_at }}"
  54. placeholder="Дата создания"/>
  55. </div>
  56. </div>
  57. </div>
  58. <div class="container-fluid" style="padding-right: 0;padding-left: 0;margin-top: 15px;">
  59. <input type="text" class="form-control" name="caption" value="{{ $data->item->caption }}"
  60. placeholder="Заголовок" style="font-weight: 600"/>
  61. </div>
  62. <div class="container-fluid" style="padding-right: 0;padding-left: 0;margin-top: 15px;">
  63. <div class="col-sm-6" style="padding-left: 0">
  64. <label class="sr-only" for="inlineFormInputGroup">Username</label>
  65. <div class="input-group mb-2 mr-sm-2 mb-sm-0">
  66. <div class="input-group-addon">#</div>
  67. <select id="item-cat" class="form-control" title="Выберите категорию" name="category_id"
  68. onchange="subcategoryPick()">
  69. <option disabled value="#">Выберите категорию</option>
  70. @foreach($data->categories as $category)
  71. <option {{ ($category->id == $data->item->category_id) ? 'selected' : '' }}
  72. value="{{ $category->id }}">{{ $category->title }}
  73. </option>
  74. @endforeach
  75. </select>
  76. </div>
  77. </div>
  78. <div class="col-sm-6" style="padding-right: 0">
  79. <div class="input-group">
  80. <span class="input-group-addon"><i class="fa fa-indent"></i>
  81. {{--<i class="fa fa-share-alt-square"></i>--}}
  82. </span>
  83. <select id="item-subcat" class="form-control" name="subcategory_id">
  84. @foreach($data->subcategories as $subcategory)
  85. {{--<optgroup label="{{ $category->title }}">--}}
  86. {{--@foreach($data->subcategories as $subcategory )--}}
  87. {{--@if($subcategory->category_id === $category->id )--}}
  88. {{--<option value="{{ $subcategory->id }}">{{ $subcategory->title }}</option>--}}
  89. {{--@endif--}}
  90. {{--@endforeach--}}
  91. {{--</optgroup>--}}
  92. @if ($subcategory->category_id == $data->item->category_id)
  93. <option {{ ($subcategory->id == $data->item->subcategory_id) ? 'selected' : '' }}
  94. value="{{ $subcategory->id }}">{{ $subcategory->title }}</option>
  95. @endif
  96. @endforeach
  97. </select>
  98. </div>
  99. </div>
  100. </div>
  101. <div class="form-group" style="margin-top: 15px">
  102. <label for="description">Описание</label>
  103. <textarea class="form-control" rows="5" id="item.description" name="description">{{ trim($data->item->description) }}</textarea>
  104. </div>
  105. @include('templates.image_upload')
  106. <input id="item-form-submit" type="submit" hidden>
  107. </form>
  108. @section('script')
  109. @parent
  110. <script>
  111. function changeMethod(element) {
  112. let method = element.getAttribute('_method').toUpperCase();
  113. $('#item-fom').find('[name=_method]').val(method);
  114. if (method === "POST") {
  115. $('#item-fom').attr('action', " {{ route('item.store') }} ");
  116. }
  117. $('#item-form-submit').click();
  118. }
  119. function setInputFileViews() {
  120. if ($pictures.length > 0) {
  121. $pictures.forEach(function (file, key) {
  122. $(boxes[key].querySelector('.js--image-preview span')).hide();
  123. $(boxes[key].querySelector('.required-field-block')).show();
  124. let thumb = boxes[key].querySelector('.js--image-preview');
  125. let url = "../image/" +file.path;
  126. thumb.style.backgroundImage = 'url(' + url + ')';
  127. });
  128. }
  129. }
  130. $( document ).ready(function() {
  131. setInputFileViews();
  132. });
  133. </script>
  134. @endsection
  135. @yield('script')