hasmany.blade.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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="{{$columnClass}}-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="{{$columnClass}}-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="{{$columnClass}}-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)
  50. .replace(/{{ Dcat\Admin\Form\NestedForm::DEFAULT_KEY_NAME }}/g, nestedIndex)
  51. .replace(/{{ Dcat\Admin\Form\NestedForm::DEFAULT_PARENT_KEY_NAME }}/g, nestedIndex);
  52. }
  53. $(container).on('click', '.{{$columnClass}}-add', function () {
  54. var tpl = $('template.{{ $columnClass }}-tpl');
  55. nestedIndex++;
  56. $(forms).append(replaceNestedFormIndex(tpl.html()));
  57. });
  58. $(container).on('click', '.{{$columnClass}}-remove', function () {
  59. var $form = $(this).closest('.has-many-{{ $columnClass }}-form');
  60. $form.hide();
  61. $form.find('.{{ Dcat\Admin\Form\NestedForm::REMOVE_FLAG_CLASS }}').val(1);
  62. $form.find('[required]').prop('required', false);
  63. });
  64. </script>