hasmany.blade.php 2.7 KB

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