hasmany.blade.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <div class="row" style="margin-top: 10px;">
  2. <div class="{{$viewClass['label']}}"><h4 class="pull-right">{!! $label !!}</h4></div>
  3. <div class="{{$viewClass['field']}}"></div>
  4. </div>
  5. <hr class="mt-0">
  6. <div class="has-many-{{$columnClass}}">
  7. <div class="has-many-{{$columnClass}}-forms">
  8. @foreach($forms as $pk => $form)
  9. <div class="has-many-{{$columnClass}}-form fields-group">
  10. {!! $form->render() !!}
  11. @if($options['allowDelete'])
  12. <div class="form-group row">
  13. <label class="{{$viewClass['label']}} control-label"></label>
  14. <div class="{{$viewClass['field']}}">
  15. <div class="remove btn btn-white btn-sm pull-right"><i class="feather icon-trash">&nbsp;</i>{{ trans('admin.remove') }}</div>
  16. </div>
  17. </div>
  18. @endif
  19. <hr>
  20. </div>
  21. @endforeach
  22. </div>
  23. <template class="{{$columnClass}}-tpl">
  24. <div class="has-many-{{$columnClass}}-form fields-group">
  25. {!! $template !!}
  26. <div class="form-group row">
  27. <label class="{{$viewClass['label']}} control-label"></label>
  28. <div class="{{$viewClass['field']}}">
  29. <div class="remove btn btn-white btn-sm pull-right"><i class="feather icon-trash"></i>&nbsp;{{ trans('admin.remove') }}</div>
  30. </div>
  31. </div>
  32. <hr>
  33. </div>
  34. </template>
  35. @if($options['allowCreate'])
  36. <div class="form-group row">
  37. <label class="{{$viewClass['label']}} control-label"></label>
  38. <div class="{{$viewClass['field']}}">
  39. <div class="add btn btn-primary btn-outline btn-sm"><i class="feather icon-plus"></i>&nbsp;{{ trans('admin.new') }}</div>
  40. </div>
  41. </div>
  42. @endif
  43. </div>
  44. <script>
  45. var nestedIndex = {!! $count !!},
  46. container = '.has-many-{{ $columnClass }}',
  47. forms = '.has-many-{{ $columnClass }}-forms';
  48. function replaceNestedFormIndex(value) {
  49. return String(value).replace(/{{ Dcat\Admin\Form\NestedForm::DEFAULT_KEY_NAME }}/g, nestedIndex);
  50. }
  51. $(container).on('click', '.add', function () {
  52. var tpl = $('template.{{ $columnClass }}-tpl');
  53. nestedIndex++;
  54. var template = replaceNestedFormIndex(tpl.html());
  55. $(forms).append(template);
  56. });
  57. $(container).on('click', '.remove', function () {
  58. var $form = $(this).closest('.has-many-{{ $columnClass }}-form');
  59. $form.hide();
  60. $form.find('.{{ Dcat\Admin\Form\NestedForm::REMOVE_FLAG_CLASS }}').val(1);
  61. $form.find('[required]').prop('required', false);
  62. });
  63. </script>