info.blade.php 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. @extends('admin.layouts')
  2. @section('css')
  3. <link href="/assets/global/vendor/dropify/dropify.min.css" rel="stylesheet">
  4. <link href="/assets/global/vendor/bootstrap-select/bootstrap-select.min.css" rel="stylesheet">
  5. @endsection
  6. @section('content')
  7. <div class="page-content container">
  8. <div class="panel">
  9. <div class="panel-heading">
  10. <h2 class="panel-title">
  11. {{ isset($article) ? trans('admin.action.edit_item', ['attribute' => trans('model.article.attribute')]) : trans('admin.action.add_item', ['attribute' => trans('model.article.attribute')]) }}
  12. </h2>
  13. </div>
  14. @if($errors->any())
  15. <x-alert type="danger" :message="$errors->all()"/>
  16. @endif
  17. @if (Session::has('successMsg'))
  18. <x-alert type="success" :message="Session::get('successMsg')"/>
  19. @endif
  20. <div class="panel-body">
  21. <form action="{{ isset($article) ? route('admin.article.update', $article) : route('admin.article.store')}}" class="form-horizontal" enctype="multipart/form-data"
  22. method="post">@csrf
  23. @isset($article)
  24. @method('PUT')
  25. @endisset
  26. <div class="form-group row">
  27. <label class="col-form-label col-md-2" for="type"> {{ trans('model.article.type') }} </label>
  28. <div class="col-md-10 d-flex align-items-center">
  29. <div class="radio-custom radio-primary radio-inline">
  30. <input type="radio" name="type" value="1" checked/>
  31. <label for="type">{{ trans('admin.article.type.knowledge') }}</label>
  32. </div>
  33. <div class="radio-custom radio-primary radio-inline">
  34. <input type="radio" name="type" value="2"/>
  35. <label for="type">{{ trans('admin.article.type.announcement') }}</label>
  36. </div>
  37. </div>
  38. </div>
  39. <div class="form-group row">
  40. <label class="col-form-label col-md-2" for="title"> {{ trans('validation.attributes.title') }} </label>
  41. <div class="col-md-4">
  42. <input type="text" class="form-control" name="title" id="title" autofocus required/>
  43. </div>
  44. </div>
  45. <div class="form-group row article">
  46. <label class="col-form-label col-md-2" for="category"> {{ trans('model.article.category') }} </label>
  47. <div class="col-md-4">
  48. @if(isset($categories))
  49. <input type="text" class="form-control" list="category_list" id="category" name="category"/>
  50. <datalist id="category_list">
  51. @foreach($categories as $category)
  52. <option value="{{$category->category}}">{{$category->category}}</option>
  53. @endforeach
  54. </datalist>
  55. @else
  56. <input type="text" class="form-control" id="category" name="category"/>
  57. @endif
  58. <span class="text-help"> {{ trans('admin.article.category_hint') }} </span>
  59. </div>
  60. </div>
  61. <div class="form-group row">
  62. <label class="col-form-label col-md-2" for="language"> {{ trans('model.article.language') }} </label>
  63. <div class="col-md-4">
  64. <select class="form-control" data-plugin="selectpicker" id="language" name="language" data-style="btn-outline btn-primary">
  65. @foreach (config('common.language') as $key => $value)
  66. <option value="{{$key}}">
  67. <i class="fi fi-{{$value[1]}}"></i> <span style="padding: inherit;">{{$value[0]}}</span>
  68. </option>
  69. @endforeach
  70. </select>
  71. </div>
  72. </div>
  73. <div class="form-group row article">
  74. <label class="col-form-label col-md-2" for="sort"> {{ trans('model.common.sort') }} </label>
  75. <div class="col-md-2">
  76. <input type="number" class="form-control" name="sort" id="sort" value="10" min="0" max="255" required/>
  77. <span class="text-help"> {{ trans('admin.sort_asc') }} </span>
  78. </div>
  79. </div>
  80. <div class="form-group row">
  81. <label class="col-form-label col-md-2" for="logo"> {{ trans('model.article.logo') }} </label>
  82. <div class="col-md-4" id="logoUpload">
  83. <input type="file" id="logo" name="logo" data-plugin="dropify" data-default-file="{{asset($article->logo ?? '/assets/images/default.png')}}"/>
  84. <span class="text-help"> {{ trans('admin.article.logo_hint') }} </span>
  85. </div>
  86. </div>
  87. <div class="form-group row">
  88. <label class="col-form-label col-md-2" for="content"> {{ trans('validation.attributes.content') }} </label>
  89. <div class="col-md-10">
  90. <textarea class="form-control" name="content">
  91. @isset($article)
  92. {!! $article->content !!}
  93. @endisset
  94. </textarea>
  95. </div>
  96. </div>
  97. <div class="form-actions text-right">
  98. <div class="btn-group">
  99. <a href="{{route('admin.article.index')}}" class="btn btn-danger">{{ trans('common.back') }}</a>
  100. <button type="submit" class="btn btn-success">{{ trans('common.submit') }}</button>
  101. </div>
  102. </div>
  103. </form>
  104. </div>
  105. </div>
  106. </div>
  107. @endsection
  108. @section('javascript')
  109. <script src="/assets/global/vendor/dropify/dropify.min.js"></script>
  110. <script src="/assets/global/js/Plugin/dropify.js"></script>
  111. <script src="/assets/custom/tinymce/tinymce.min.js"></script>
  112. <script src="/assets/global/vendor/bootstrap-select/bootstrap-select.min.js"></script>
  113. <script src="/assets/global/js/Plugin/bootstrap-select.js"></script>
  114. <script>
  115. @isset($article)
  116. $(document).ready(function() {
  117. $("input[name='type'][value='{{$article->type}}']").click();
  118. $('#title').val(@json($article->title));
  119. $('#category').val(@json($article->category));
  120. $('#language').selectpicker('val', '{{$article->language}}');
  121. $('#sort').val('{{$article->sort}}');
  122. });
  123. @endisset
  124. tinymce.init({
  125. selector: 'textarea', // change this value according to your HTML
  126. plugins: 'advlist autolink autoresize autosave code emoticons help image importcss link lists media ' +
  127. 'preview quickbars searchreplace table visualblocks visualchars wordcount',
  128. toolbar: 'restoredraft undo redo | styles | bold italic forecolor backcolor emoticons| alignleft aligncenter alignright alignjustify' +
  129. ' | bullist numlist outdent indent | link image media',
  130. menubar: 'view edit insert format table tools help',
  131. link_default_target: '_blank',
  132. quickbars_insert_toolbar: 'quicktable image media',
  133. quickbars_selection_toolbar: 'bold italic underline | blocks | bullist numlist | blockquote quicklink',
  134. extended_valid_elements: 'i[class|aria-hidden]',
  135. language: '{{app()->getLocale()}}',
  136. content_css: '/assets/bundle/app.min.css',
  137. min_height: 500,
  138. max_height: 800,
  139. });
  140. $('input:radio[name=\'type\']').on('change', function() {
  141. const article = $('.article');
  142. if ($(this).val() === '1') {
  143. article.show();
  144. } else {
  145. article.hide();
  146. }
  147. });
  148. </script>
  149. @endsection