edit.blade.php 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. @extends('layouts.idara.panel')
  2. @section('content')
  3. <link
  4. rel="stylesheet"
  5. href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.15.2/css/selectize.default.min.css""
  6. />
  7. <link href="https://unpkg.com/filepond@4.30.4/dist/filepond.min.css" rel="stylesheet" type="text/css" />
  8. <link href="https://unpkg.com/filepond-plugin-file-poster@2.5.1/dist/filepond-plugin-file-poster.min.css" rel="stylesheet" type="text/css" />
  9. <link href="{{asset('pintura/pintura.scss')}}" rel="stylesheet" />
  10. <!-- Custom css -->
  11. <link href="{{asset('css/custom.css')}}" rel="stylesheet" />
  12. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
  13. <div class="container">
  14. @include('backend.partials.features')
  15. <div class="card mt-4">
  16. <h5 class="card-header">Modifier</h5>
  17. <div class="card-body">
  18. <form action="{{url('produit/'.$article->id)}}" method="post" enctype="multipart/form-data">
  19. <input type="hidden" name="_method" value="PUT">
  20. @csrf
  21. <div class="form-group">
  22. <label for="exampleFormControlInput1">Nom</label>
  23. <input type="text" class="form-control" name="nom" placeholder="" value="{{$article->nom}}" required>
  24. </div>
  25. <div class="form-group mt-4">
  26. <label for="exampleFormControlInput1">Categorie</label>
  27. <select multiple onchange="optionCheck()" class="form-control" name="categories[]" id="categories" class="categorie" aria-describedby="validationServer04Feedback" style=" margin-bottom: 40px;" required>
  28. @foreach ($article->categories as $singleTag)
  29. <option value="{{ $article->category_id }}"> {{ $singleTag->nom }}</option>
  30. @endforeach
  31. @foreach ($categories as $categorie)
  32. <option value="{{ $categorie->id }}" {{ old('categorie') == $categorie->id ? 'selected' : '' }}>{{ $categorie->nom }}</option>
  33. @endforeach
  34. </select>
  35. </div>
  36. <div class="form-group">
  37. <label for="exampleFormControlTextarea1">description</label>
  38. <textarea class="form-control" id="presentation" name="description" rows="3">{!! html_entity_decode ($article->description)!!}</textarea>
  39. </div>
  40. <div class="form-group">
  41. <label for="exampleFormControlInput1">image</label>
  42. <div class="input-group mt-4 control-group increment" >
  43. <input type="file" name="image" class="my-pond form-control " multiple/>
  44. </div>
  45. </div>
  46. <div class="form-group add">
  47. <button type="submit" class="btn btn-primary" value="">Modifier</button>
  48. </div>
  49. </form>
  50. </div>
  51. </div>
  52. </div>
  53. <style>
  54. .ck.ck-editor__main>.ck-editor__editable:not(.ck-focused) {
  55. border-color: var(--ck-color-base-border);
  56. height: 300px;
  57. }
  58. </style>
  59. @include('backend.partials.scriptIndex')
  60. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js" integrity="sha512-pumBsjNRGGqkPzKHndZMaAG+bir374sORyzM3uulLV14lN5LyykqNk8eEeUlUkB3U0M4FApyaHraT65ihJhDpQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  61. <script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.15.2/js/selectize.min.js"></script>
  62. <script src="https://unpkg.com/filepond@4.30.4/dist/filepond.min.js"></script>
  63. <script src="https://unpkg.com/filepond-plugin-file-poster@2.5.1/dist/filepond-plugin-file-poster.min.js"></script>
  64. <script src="https://unpkg.com/filepond-plugin-file-validate-type@1.2.8/dist/filepond-plugin-file-validate-type.min.js"></script>
  65. <script src="https://unpkg.com/filepond-plugin-file-validate-size@2.2.8/dist/filepond-plugin-file-validate-size.min.js"></script>
  66. <script src="https://unpkg.com/filepond-plugin-image-exif-orientation@1.0.11/dist/filepond-plugin-image-exif-orientation.min.js"></script>
  67. <script>
  68. $(function () {
  69. $("#categories").selectize({
  70. plugins: ["remove_button"],
  71. delimiter: ",",
  72. persist: false,
  73. create: function (input) {
  74. return {
  75. value: input,
  76. text: input,
  77. };
  78. },
  79. });
  80. });
  81. </script>
  82. <script type="module">
  83. var img_width = 1080 ;
  84. var img_height = {{ env('IMG_HEIGHT') }};
  85. var img_quality = {{ env('IMG_QUALITY') }};
  86. var img_ratio = {{ env('IMG_RATIO') }};
  87. var max_files = {{ env('MAX_FILES') }};
  88. var max_file_size = "{{ env('MAX_FILE_SIZE') }}B";
  89. var instant_upload = {{ env('INSTANT_UPLOAD') }};
  90. var pond_selector = '.my-pond';
  91. import {
  92. FilePondPluginImageEditor,
  93. } from '/filepond/filepond-plugin-image-editor/FilePondPluginImageEditor.js';
  94. // import Pintura Image Editor modules
  95. import {
  96. // Image editor
  97. openEditor,
  98. processImage,
  99. createDefaultImageReader,
  100. createDefaultImageWriter,
  101. createDefaultImageOrienter,
  102. // Only needed if loading legacy image editor data
  103. legacyDataToImageState,
  104. // Import the editor default configuration
  105. getEditorDefaults,
  106. } from '/pintura/pintura.js';
  107. // French
  108. import fr_FR from '/filepond/locale/fr-fr.js';
  109. FilePond.setOptions(fr_FR);
  110. // Register plugins
  111. FilePond.registerPlugin(
  112. FilePondPluginImageEditor,
  113. FilePondPluginFilePoster,
  114. FilePondPluginImageExifOrientation,
  115. FilePondPluginFileValidateType,
  116. FilePondPluginFileValidateSize,
  117. );
  118. FilePond.create(document.querySelector(pond_selector), {
  119. // Attributes
  120. name: 'image',
  121. maxFiles: max_files,
  122. allowFileSizeValidation: true,
  123. maxFileSize: max_file_size,
  124. allowBrowse: true,
  125. acceptedFileTypes: ['image/*'],
  126. dropOnPage: true,
  127. dropOnElement: true,
  128. instantUpload: instant_upload,
  129. // FilePond Image Editor plugin properties
  130. imageEditor: {
  131. // Maps legacy data objects to new imageState objects (optional)
  132. legacyDataToImageState: legacyDataToImageState,
  133. // Used to create the editor (required)
  134. createEditor: openEditor,
  135. // Used for reading the image data. See JavaScript installation for details on the `imageReader` property (required)
  136. imageReader: [
  137. createDefaultImageReader,
  138. {
  139. // createDefaultImageReader options here
  140. },
  141. ],
  142. // Required when generating a preview thumbnail and/or output image
  143. imageWriter: [
  144. createDefaultImageWriter,
  145. {
  146. // We'll resize images to fit a 512 × 512 square
  147. targetSize: {
  148. width: img_width,
  149. height: img_height,
  150. },
  151. quality: img_quality,
  152. },
  153. ],
  154. // Used to create poster and output images, runs an invisible "headless" editor instance
  155. imageProcessor: processImage,
  156. // Pintura Image Editor options
  157. editorOptions: {
  158. // Pass the editor default configuration options
  159. ...getEditorDefaults(),
  160. // This will set a square crop aspect ratio
  161. imageCropAspectRatio: img_ratio,
  162. }
  163. }
  164. });
  165. FilePond.setOptions({
  166. server: {
  167. process: '/file-upload-slide',
  168. revert: '/file-delete-slide',
  169. headers:{
  170. 'X-CSRF-TOKEN': '{{ csrf_token() }}'}
  171. },
  172. });
  173. </script>
  174. @endsection