form.blade.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <thead>
  2. <tr class="{{ $elementClass }} quick-create" style="cursor: pointer">
  3. <td colspan="{{ $columnCount }}" style="background: {{ Dcat\Admin\Admin::color()->darken('#ededed', 1) }}">
  4. <span class="create cursor-pointer" style="display: block;">
  5. <i class="feather icon-plus"></i>&nbsp;{{ __('admin.quick_create') }}
  6. </span>
  7. <form class="form-inline create-form" style="display: none;" method="post">
  8. @foreach($fields as $field)
  9. &nbsp;{!! $field->render() !!}
  10. @endforeach
  11. &nbsp;
  12. &nbsp;
  13. <button type="submit" class="btn btn-primary btn-sm">{{ __('admin.submit') }}</button>&nbsp;
  14. &nbsp;
  15. <a href="javascript:void(0);" class="cancel">{{ __('admin.cancel') }}</a>
  16. </form>
  17. </td>
  18. </tr>
  19. </thead>
  20. <script>
  21. var ctr = $('.{!! $elementClass !!}'),
  22. btn = $('.quick-create-button-{!! $uniqueName !!}');
  23. btn.on('click', function () {
  24. ctr.toggle().click();
  25. });
  26. ctr.on('click', function () {
  27. ctr.find('.create-form').show();
  28. ctr.find('.create').hide();
  29. });
  30. ctr.find('.cancel').on('click', function () {
  31. if (btn.length) {
  32. ctr.hide();
  33. return;
  34. }
  35. ctr.find('.create-form').hide();
  36. ctr.find('.create').show();
  37. return false;
  38. });
  39. ctr.find('.create-form').submit(function (e) {
  40. e.preventDefault();
  41. if (ctr.attr('submitting')) {
  42. return;
  43. }
  44. var btn = $(this).find(':submit').buttonLoading();
  45. ctr.attr('submitting', 1);
  46. $.ajax({
  47. url: '{!! $url !!}',
  48. type: '{!! $method !!}',
  49. data: $(this).serialize(),
  50. success: function(data) {
  51. ctr.attr('submitting', '');
  52. btn.buttonLoading(false);
  53. if (data.status == true) {
  54. Dcat.success(data.message);
  55. Dcat.reload();
  56. return;
  57. }
  58. if (typeof data.validation !== 'undefined') {
  59. Dcat.warning(data.message)
  60. }
  61. },
  62. error:function(xhq){
  63. btn.buttonLoading(false);
  64. ctr.attr('submitting', '');
  65. var json = xhq.responseJSON;
  66. if (typeof json === 'object') {
  67. if (json.message) {
  68. Dcat.error(json.message);
  69. } else if (json.errors) {
  70. var i, errors = [];
  71. for (i in json.errors) {
  72. errors.push(json.errors[i].join("<br>"));
  73. }
  74. Dcat.error(errors.join("<br>"));
  75. }
  76. }
  77. }
  78. });
  79. return false;
  80. });
  81. </script>