Forráskód Böngészése

Edited form send data ajax

Azam Rezayi 4 éve
szülő
commit
e2d0bdd508

+ 44 - 0
packages/product/src/Http/Controllers/ProductController.php

@@ -340,5 +340,49 @@ class ProductController extends Controller
         }
 
     }
+    public function myformProduct(Request $request)
+    {
+        $messages = [
+            'title.required'   => 'وارد کردن نام الزامی است!',
+            'price.required'    => 'وارد کردن قیمت الزامی است!',
+            'slug.required'        => 'وارد کردن slug الزامی است!',
+            'type.required'           => 'وارد کردن نوع الزامی است!',
+            'status.required'      => 'وارد کردن وضعیت الزامی است!',
+            'discription.required'      => 'وارد کردن توضیحات الزامی است!',
+            'categories.required'      => 'وارد کردن دسته بندی الزامی است!',
+            'featured_image.required'      => 'وارد کردن تصوی شاخص الزامی است!',
 
+        ];
+        $validator = Validator::make($request->all(), [
+            'title'    => 'required',
+            'price'     => 'required',
+            'slug'         => 'required',
+            'type'       => 'required',
+            'status'       => 'required',
+            'discription'       => 'required',
+            'categories'       => 'required',
+            'featured_image'       => 'required',
+
+        ], $messages);
+
+        if ($validator->passes()) {
+            return response()->json(['success'=>'Added new records.']);
+        }
+        return response()->json(['error'=>$validator->errors()->all()]);
+    }
+    public function SaveFormProductByAjax()
+    {
+        $title = $this->input->post('title');
+        $price = $this->input->post('price');
+        $slug = $this->input->post('slug');
+        $type= $this->input->post('type');
+        $status = $this->input->post('status');
+        $discription = $this->input->post('discription');
+        $categories = $this->input->post('categories');
+        $featured_image = $this->input->post('featured_image');
+
+        $data=array('title'=>$title,"price"=>$price,"slug"=>$slug,"type"=>$type,"status"=>$status,"discription"=>$discription,"categories"=>$categories,"featured_image"=>$featured_image);
+        DB::table('enquiry')->insert($data);
+        echo "Record inserted successfully";
+    }
 }

+ 2 - 2
packages/product/src/Http/Requests/ProductRequest.php

@@ -32,8 +32,8 @@ class ProductRequest extends FormRequest
             'status' => ['required'],
             'discription' => ['required'],
             'categories' => ['required'],
-            'featureDescription' => ['required'],
-            'featureCaption' => ['required'],
+            'featureDescription' => ['nullable'],
+            'featureCaption' => ['nullable'],
             'descriptionImg' => ['nullable'],
             'caption' => ['nullable'],
             'gallery_image' => ['nullable'],

+ 4 - 0
packages/product/src/routes/web.php

@@ -20,6 +20,10 @@ Route::group([
 });
 
 
+//Route::get('my-form','ProductController@myformProduct');
+//
+//Route::post('my-form','ProductController@myformProduct');
+Route::post('SaveFormProductByAjax','UserController@SaveFormProductByAjax');
 
 
 

+ 14 - 0
packages/product/src/sass/product.scss

@@ -142,4 +142,18 @@ output span{
 #mceu_42{
     display: none;
 }
+.btnSearch {
+    margin-top: 10px;
+}
+.searchNaum{
+
+    margin: 20px;
+}
+[dir=rtl] .btn .icon, [dir=rtl] .btn .fa, [dir=rtl] .treeview-item .icon {
+    margin-right: 0;
+    margin-left: 0px !important;
+}
+.message{
+    margin: auto;
+}
 

+ 29 - 83
packages/product/src/views/index.blade.php

@@ -1,107 +1,68 @@
 @component('panel.layouts.component', ['title' => 'محصولات'])
-
     @slot('style')
         <style>
-            .btnSearch {
-                margin-top: 10px;
-            }
-            .searchNaum{
-
-                margin: 20px;
-            }
-            [dir=rtl] .btn .icon, [dir=rtl] .btn .fa, [dir=rtl] .treeview-item .icon {
-                margin-right: 0;
-                 margin-left: 0px !important;
-            }
-            .message{
-                margin: auto;
-            }
         </style>
     @endslot
-
     @slot('subject')
         <h1><i class="fa fa-users"></i>لیست محصولات </h1>
-        <p>لیست محصولاتی تعریف شده برای مدیریت سطوح دسترسی.</p>
+        <p>لیست محصولات تعریف شده برای مدیریت محصولات</p>
     @endslot
-
     @slot('breadcrumb')
         <li class="breadcrumb-item">محصولات</li>
     @endslot
-
     @slot('content')
         <div class="row">
             <div class="col-md-12">
                 <div class="col-md-11 message">
-                @component('product::components.message')
-                @endcomponent
+                    @component('product::components.message')
+                    @endcomponent
                 </div>
                 @component('components.collapse-card' , ['title' => 'جست جو محصولات'])
                     @component('product::components.message')
                     @endcomponent
                     @slot('body')
-
                           <form method="GET" action="">
                                 <div class="form-row">
                                     <div class="col">
                                         <label for="categories">{{ __(' نام محصول:') }}</label>
-                                        <input type="text" class="form-control" placeholder="محصول..."
-                                               name="productName" value="{{ request()->query('productName') }}">
+                                        <input type="text" class="form-control" placeholder="محصول..." name="productName" value="{{ request()->query('productName') }}">
                                     </div>
                                     <div class="col">
                                         <label for="categories">{{ __(' نام دسته بندی:') }}</label>
-                                        <select type="text" class="form-control" placeholder="دسته بندی..."
-                                                name="productCategory"
-                                                value="{{ request()->query('productCategory') }}">
+                                        <select type="text" class="form-control" placeholder="دسته بندی..." name="productCategory" value="{{ request()->query('productCategory') }}">
                                             <option value="">همه</option>
-
                                             @foreach($categories as $cat)
-
-                                                <option value={{$cat->id}} {{(request()->has('productStatus') && request()->query('productStatus') == "$cat->id") ? 'selected'
-                                               : ''}}>{{$cat->title}}</option>
+                                                <option value={{$cat->id}} {{(request()->has('productStatus') && request()->query('productStatus') == "$cat->id") ? 'selected' : ''}}>{{$cat->title}}</option>
                                             @endforeach
                                         </select>
                                     </div>
-
                                 </div>
                               <div class="form-row">
                                   <div class="col">
                                       <label for="categories">{{ __('  وضعیت:') }}</label>
-                                      <select type="text" class="form-control" placeholder="وضعیت..."
-                                              name="productStatus" value="{{ request()->query('productStatus') }}">
+                                      <select type="text" class="form-control" placeholder="وضعیت..." name="productStatus" value="{{ request()->query('productStatus') }}">
                                           <option value="">همه</option>
-                                          <option value=1 {{(request()->has('productStatus') && request()->query('productStatus') == "1") ? 'selected'
-                                               : ''}}>موجود
-                                          </option>
-                                          <option value=0 {{(request()->has('productStatus') && request()->query('productStatus') ==" 0") ?
-                                              'selected': ''}}>ناموجود
-                                          </option>
+                                          <option value=1 {{(request()->has('productStatus') && request()->query('productStatus') == "1") ? 'selected' : ''}}>موجود</option>
+                                          <option value=0 {{(request()->has('productStatus') && request()->query('productStatus') ==" 0") ? 'selected': ''}}>ناموجود</option>
                                       </select>
                                   </div>
-                                  <div class="col">
+                                    <div class="col">
                                       <label for="categories">{{ __('  نام ثبت کننده:') }}</label>
-                                      <input type="text" class="form-control" placeholder="ایجاد کننده دسته بندی..."
-                                             name="creatorId" value="{{ request()->query('creatorId') }}">
-
-
-                                  </div>
-
+                                      <input type="text" class="form-control" placeholder="ایجاد کننده دسته بندی..." name="creatorId" value="{{ request()->query('creatorId') }}">
+                                    </div>
                               </div>
-
                                 <button type="submit" class="btn btn-primary float-left btnSearch" id="showProduct">جستجو
                                 </button>
-                              @if($products->total() > 0)
-                                <p class="searchNaum">نتایج یافت شده: {{$products->total()}}</p>
-                                  @endif
+                                @if($products->total() > 0)
+                                     <p class="searchNaum">نتایج یافت شده: {{$products->total()}}</p>
+                                @endif
                             </form>
 
                             <div class="mt-4">
-                                <a href="{{ route('products.create') }}" type="button" class="btn btn-primary"><i
-                                        class="fa fa-plus"></i> ایجاد محصول</a>
-                                <a href="{{ route('categories.create') }}" type="button" class="btn btn-primary"><i
-                                        class="fa fa-plus"></i> ایجاد دسته بندی</a>
+                                <a href="{{ route('products.create') }}" type="button" class="btn btn-primary"><i class="fa fa-plus"></i> ایجاد محصول</a>
+                                <a href="{{ route('categories.create') }}" type="button" class="btn btn-primary"><i class="fa fa-plus"></i> ایجاد دسته بندی</a>
                             </div>
-
-                            @component('components.table')
+                          @component('components.table')
                                 @slot('thead')
                                     <tr>
                                         <th>شماره</th>
@@ -113,9 +74,9 @@
                                         <th> نویسنده</th>
                                         <th>وضعیت</th>
                                         <th>نوع</th>
-                                        <th>وضعیت انتشار</th>
                                         <th>توضیحات</th>
                                         <th>دسته بندی</th>
+                                        <th>وضعیت انتشار</th>
                                         <th> مدیریت</th>
                                     </tr>
                                 @endslot
@@ -131,51 +92,36 @@
                                             <td>{{$product->user->name}}</td>
                                             <td>{{$product->status}}</td>
                                             <td>{{$product->type}}</td>
-                                            <td>{{$product->ReleaseStatus}}</td>
                                             <td><?php  echo mb_substr($product->discription, 0, 5, 'UTF8') . '...'?></td>
                                             <td>
                                                 @foreach($product->categories->pluck('title') as $category)
                                                     <span>{{$category}}{{'،'}}</span>
                                                 @endforeach
                                             </td>
+                                            <td>{{$product->ReleaseStatus}}</td>
                                             <td class="d-flex">
-                                                <a href="{{route('products.edit', $product->id)}}"
-                                                   class="btn btn-sm btn-primary mr-2"><i class="icon fa fa-pencil"></i></a>
-                                                <form
-                                                    action="{{route('products.destroy', $product->id)}}"
-                                                    method="POST"
-                                                    onsubmit="return confirm('آیا مطمئن هستید؟');">
+                                                <a href="{{route('products.edit', $product->id)}}" class="btn btn-sm btn-primary mr-2"><i class="icon fa fa-pencil"></i></a>
+                                                <form action="{{route('products.destroy', $product->id)}}" method="POST" onsubmit="return confirm('آیا مطمئن هستید؟');">
                                                     @csrf
                                                     @method('DELETE')
-                                                    <button type="submit" class="btn btn-sm btn-danger"><i class="icon fa fa-close"></i></button>
+                                                        <button type="submit" class="btn btn-sm btn-danger"><i class="icon fa fa-close"></i></button>
                                                 </form>
                                             </td>
                                         </tr>
-
-                                    @empty
+                                         @empty
                                         <tr>
                                             <td colspan="5" class="text-center">موردی برای نمایش وجود ندارد.</td>
                                         </tr>
-                        @endforelse
+                                    @endforelse
+                                @endslot
+                          @endcomponent
+                            {{--Paginate section--}}
+                        {{ $products->withQueryString()->links() }}
                     @endslot
-
-                @endcomponent
-                {{--Paginate section--}}
-                {{ $products->withQueryString()->links() }}
-
-                @endslot
                 @endcomponent
             </div>
         </div>
     @endslot
     @slot('script')
-{{--        <script>--}}
-
-
-{{--            $("#showProduct").click(function(e){--}}
-{{--                e.preventDefault();--}}
-{{--                $(".searchNaum").show();--}}
-{{--            });--}}
-{{--        </script>--}}
     @endslot
 @endcomponent

+ 124 - 131
packages/product/src/views/product/create.blade.php

@@ -17,183 +17,131 @@
                 <div class="row align-items-center ">
                     <div class="col-lg-12 col-md-12 mx-auto">
                         <div class="card">
-                            <div class="card-header"><strong>{{ __('ثبت محصول جدید') }}</strong></div>
+                            <div class="card-header">
+                                <strong>{{ __('ثبت محصول جدید') }}</strong>
+                            </div>
                             @component('product::components.message')
                             @endcomponent
                             <div class="card-body mx-lg-5 px-lg-3">
-                                <form method="POST" action="{{ route('products.store') }}"
-                                      enctype="multipart/form-data">
+                                <form method="POST" action="{{ route('products.store') }}" enctype="multipart/form-data" id="DraftProduct">
                                     @csrf
-
                                     <div class="form-group">
-                                        <label for="title">{{ __('product.title') }}</label><i class="required">&nbsp;
-                                            *</i>
-                                        <input id="title" type="text"
-                                               class="form-control @error('title') is-invalid @enderror" name="title"
-                                               value="{{ old('title') }}" autocomplete="title" autofocus>
-
-                                        @error('title')
-                                        <span class="invalid-feedback" role="alert">
-                                            <strong>{{ $message }}</strong>
-                                        </span>
+                                         <label for="title">{{ __('product.title') }}</label><i class="required">&nbsp; *</i>
+                                         <input id="title" type="text" class="form-control @error('title') is-invalid @enderror" name="title" value="{{ old('title') }}" autocomplete="title" autofocus>
+                                         @error('title')
+                                                <span class="invalid-feedback" role="alert">
+                                                    <strong>{{ $message }}</strong>
+                                                </span>
                                         @enderror
                                     </div>
                                     <div class="form-row">
                                         <div class="form-group col-lg-4">
                                             <label for="slug">{{ __('product.slug') }}</label>
-                                            <input type="text" name="slug"
-                                                   class="form-control @error('slug') is-invalid  @enderror"
-                                                   value="{{old('slug')}}" autocomplete="slug" autofocus>
+                                            <input type="text" name="slug" class="form-control @error('slug') is-invalid  @enderror" value="{{old('slug')}}" autocomplete="slug" autofocus>
                                             @error('slug')
-                                            <div class="alert alert-danger">{{$message}}</div>
+                                                <div class="alert alert-danger">{{$message}}</div>
                                             @enderror
                                         </div>
                                         <div class="form-group col-lg-4">
                                             <label for="sku">{{ __('product.sku') }}</label>
-                                            <input id="sku" type="text"
-                                                   class="form-control @error('sku') is-invalid @enderror" name="sku"
+                                            <input id="sku" type="text" class="form-control @error('sku') is-invalid @enderror" name="sku"
                                                    autocomplete="sku" value="{{ old('sku') }}" autofocus>
-
                                             @error('sku')
-                                            <span class="invalid-feedback" role="alert">
-                                            <strong>{{ $message }}</strong>
-                                        </span>
+                                                <span class="invalid-feedback" role="alert">
+                                                     <strong>{{ $message }}</strong>
+                                                 </span>
                                             @enderror
                                         </div>
                                         <div class="form-group col-lg-4">
-                                            <label for="type">{{ __('product.type') }}</label></label><i
-                                                class="required">&nbsp;
-                                                *</i>
-                                            <select id="type" type="text"
-                                                    class="form-control @error('type') is-invalid @enderror" name="type"
-                                                    value="{{ old('type') }}" autocomplete="type">
+                                            <label for="type">{{ __('product.type') }}</label></label><i class="required"> *</i>
+                                            <select id="type" type="text" class="form-control @error('type') is-invalid @enderror" name="type" value="{{ old('type') }}" autocomplete="type">
                                                 <option value="">انتخاب کنید</option>
-                                                <option value="0" {{ (old('type') == '0') ? 'selected' : '' }}>ساده
-                                                </option>
-                                                <option value="1" {{ (old('type') == '1') ? 'selected' : '' }}>متغیر
-                                                </option>
-                                                <option value="2" {{ (old('type') == '2') ? 'selected' : '' }}>باندل
-                                                </option>
-
+                                                <option value="0" {{ (old('type') == '0') ? 'selected' : '' }}>ساده</option>
+                                                <option value="1" {{ (old('type') == '1') ? 'selected' : '' }}>متغیر</option>
+                                                <option value="2" {{ (old('type') == '2') ? 'selected' : '' }}>باندل</option>
                                             </select>
-
                                             @error('type')
-                                            <span class="invalid-feedback" role="alert">
-                                            <strong>{{ $message }}</strong>
-                                        </span>
+                                                <span class="invalid-feedback" role="alert">
+                                                    <strong>{{ $message }}</strong>
+                                                </span>
                                             @enderror
                                         </div>
                                     </div>
                                     <div class="form-row ">
                                         <div class="form-group col-lg-4">
-                                            <label for="title">{{ __('product.price') }}</label><i class="required">&nbsp;
-                                                *</i>
-                                            <input id="input.price" type="text"
-                                                   class="form-control price @error('price') is-invalid @enderror"
-                                                   name="price"
-                                                   value="{{ old('price') }}" autocomplete="price" autofocus>
-
+                                            <label for="title">{{ __('product.price') }}</label><i class="required">&nbsp;*</i>
+                                            <input id="input.price" type="text" class="form-control price @error('price') is-invalid @enderror" name="price" value="{{ old('price') }}" autocomplete="price" autofocus>
                                             @error('price')
-                                            <span class="invalid-feedback" role="alert">
-                                            <strong>{{ $message }}</strong>
-                                        </span>
+                                                <span class="invalid-feedback" role="alert">
+                                                    <strong>{{ $message }}</strong>
+                                                </span>
                                             @enderror
                                         </div>
                                         <div class="form-group col-lg-4">
                                             <label for="sale_price">@lang('product.sale_price')</label>
-                                            <input id="sale_price" type="text"
-                                                   class="form-control price @error('sale_price') is-invalid @enderror"
-                                                   name="sale_price"
-                                                   value="{{ old('sale_price') }}" autocomplete="sale_price" autofocus>
-
+                                            <input id="sale_price" type="text" class="form-control price @error('sale_price') is-invalid @enderror" name="sale_price" value="{{ old('sale_price') }}" autocomplete="sale_price" autofocus>
                                             @error('sale_price')
-                                            <span class="invalid-feedback" role="alert">
-                                            <strong>{{ $message }}</strong>
-                                        </span>
+                                                 <span class="invalid-feedback" role="alert">
+                                                     <strong>{{ $message }}</strong>
+                                                 </span>
                                             @enderror
                                         </div>
                                         <div class="form-group col-lg-4">
-                                            <label for="status">{{ __('product.status') }}</label><i class="required">&nbsp;
-                                                *</i>
-                                            <select id="status" type="text"
-                                                    class="form-control  @error('status') is-invalid @enderror"
-                                                    name="status"
-                                                    autocomplete="status">
+                                            <label for="status">{{ __('product.status') }}</label><i class="required">&nbsp;*</i>
+                                            <select id="status" type="text" class="form-control  @error('status') is-invalid @enderror" name="status" autocomplete="status">
                                                 <option value="">انتخاب کنید</option>
-                                                <option value="1" {{ (old('status') == '1') ? 'selected' : '' }}>موجود
-                                                </option>
-                                                <option value="0" {{ (old('status') == '0') ? 'selected' : '' }}>
-                                                    ناموجود
-                                                </option>
+                                                <option value="1" {{ (old('status') == '1') ? 'selected' : '' }}>موجود</option>
+                                                <option value="0" {{ (old('status') == '0') ? 'selected' : '' }}>ناموجود</option>
                                             </select>
                                             @error('status')
-                                            <span class="invalid-feedback" role="alert">
-                                               <strong>{{ $message }}</strong>
-                                            </span>
+                                                <span class="invalid-feedback" role="alert">
+                                                    <strong>{{ $message }}</strong>
+                                                </span>
                                             @enderror
                                         </div>
                                         <div class="form-group col-lg-4">
-                                            <label for="status">{{ __('product.ReleaseStatus') }}</label><i class="required">&nbsp;
-                                                *</i>
-                                            <select id="ReleaseStatus" type="text"
-                                                    class="form-control @error('ReleaseStatus') is-invalid @enderror" name="ReleaseStatus"
-                                                    value="{{ old('ReleaseStatus') }}" autocomplete="ReleaseStatus">
+                                            <label for="status">{{ __('product.ReleaseStatus') }}</label><i class="required">&nbsp; *</i>
+                                            <select id="ReleaseStatus" type="text" class="form-control @error('ReleaseStatus') is-invalid @enderror" name="ReleaseStatus"  value="{{ old('ReleaseStatus') }}" autocomplete="ReleaseStatus">
                                                 <option value="">انتخاب کنید</option>
-                                                <option value="draft" {{ (old('ReleaseStatus') == 'draft') ? 'selected' : '' }}>پیشنویس
-                                                </option>
-                                                <option value="pending" {{ (old('ReleaseStatus') == 'pending') ? 'selected' : '' }}>در حال انتظار
-                                                </option>
-                                                <option value="published" {{ (old('ReleaseStatus') == 'published') ? 'selected' : '' }}>منتشر شده
-                                                </option>
-
+                                                <option value="draft" {{ (old('ReleaseStatus') == 'draft') ? 'selected' : '' }}>پیشنویس</option>
+                                                <option value="pending" {{ (old('ReleaseStatus') == 'pending') ? 'selected' : '' }}>در حال انتظار</option>
+                                                <option value="published" {{ (old('ReleaseStatus') == 'published') ? 'selected' : '' }}>منتشر شده</option>
                                             </select>
                                             @error('ReleaseStatus')
-                                            <span class="invalid-feedback" role="alert">
-                                               <strong>{{ $message }}</strong>
-                                            </span>
+                                                 <span class="invalid-feedback" role="alert">
+                                                         <strong>{{ $message }}</strong>
+                                                 </span>
                                             @enderror
                                         </div>
                                     </div>
                                     <div class="form-group">
-                                        <label for="discription">{{ __('product.discription') }}</label></label><i
-                                            class="required">&nbsp; *</i>
-                                        <textarea id="discription" type="text"
-                                                  class="form-control editor @error('discription') is-invalid @enderror"
-                                                  name="discription"
-
-                                                  autocomplete="discription"
-                                                  autofocus>{{ old('discription') }}</textarea>
+                                        <label for="discription">{{ __('product.discription') }}</label></label><i class="required">&nbsp;*</i>
+                                        <textarea id="discription" type="text"class="form-control editor @error('discription') is-invalid @enderror" name="discription" autocomplete="discription" autofocus>
+                                            {{ old('discription') }}
+                                        </textarea>
 
                                         @error('discription')
-                                        <span class="invalid-feedback" role="alert">
-                                            <strong>{{ $message }}</strong>
-                                        </span>
+                                            <span class="invalid-feedback" role="alert">
+                                                 <strong>{{ $message }}</strong>
+                                             </span>
                                         @enderror
                                     </div>
                                     <div class="form-group">
-                                        <label for="categories">{{ __('product.categories') }}</label><i
-                                            class="required">&nbsp; *</i>
-                                        <select name="categories[]"
-                                                class="form-control select2 @error('categories[]') is-invalid @enderror" multiple>
+                                        <label for="categories">{{ __('product.categories') }}</label><i class="required">&nbsp;*</i>
+                                        <select name="categories[]" class="form-control select2 @error('categories[]') is-invalid @enderror" multiple>
                                             <option value="0">--</option>
-
                                             {!! category_select_options( $categories, old( 'categories[]' ) ) !!}
                                         </select>
                                         @error('categories')
-                                        <span class="invalid-feedback" role="alert">
-                                            <strong>{{ $message }}</strong>
-                                        </span>
+                                            <span class="invalid-feedback" role="alert">
+                                                 <strong>{{ $message }}</strong>
+                                             </span>
                                         @enderror
                                     </div>
                                     <div class="form-group col-md-8">
-                                        <label for="title">
-                                            {{ __('product.featured_image') }}
-                                        </label> <i class="required">&nbsp; *</i>
-
                                         <span class="btn btn-primary btn-file">
-                                            <input type="file" id="uploadImages" name="featured_image" accept="image/*"
-                                                class="form-control photo  browse @error('featured_image') is-invalid  @enderror"
-                                                 value="{{old('featured_image')}}" autocomplete="featured_image" autofocus>تصویر شاخص
+                                            <input type="file" id="uploadImages" name="featured_image" accept="image/*" class="form-control photo  browse @error('featured_image') is-invalid  @enderror" value="{{old('featured_image')}}" autocomplete="featured_image" autofocus>
+                                            <label for="title">{{ __('product.featured_image') }}</label> <i class="required">&nbsp;*</i>
                                         </span>
                                         <div class="hide-element" id="previewImages">
                                             <div class="media">
@@ -201,12 +149,8 @@
                                                     <a href="" role="button" class="btn btn-danger pull-right" id="delete">
                                                         <i class="icon fa fa-close"></i>
                                                     </a>
-                                                    <img class="media-object img-thumbnail" src=""
-                                                         alt="" id="0" title="" data-toggle="modal"
-                                                         data-target="#individualImagePreview"
-                                                    style="width: 250px; height: 150px;" >
+                                                    <img class="media-object img-thumbnail" src="" alt="" id="0" title="" data-toggle="modal" data-target="#individualImagePreview" style="width: 250px; height: 150px;" >
                                                 </div>
-
                                                 <div class="media-body">
                                                     <p>
                                                         <label for="featureDescription">توضیحات: </label>
@@ -216,26 +160,23 @@
                                                         <label for="featureCaption">عنوان: </label>
                                                         <input type="text" class="form-control" value="" name="featureCaption">
                                                     </p>
-
                                                 </div>
                                             </div>
                                         </div>
                                         @error('featured_image')
-                                        <span class="invalid-feedback" role="alert">
+                                            <span class="invalid-feedback" role="alert">
                                                  <strong>{{ $message }}</strong>
                                             </span>
                                         @enderror
                                     </div>
                                     <div class="form-row ">
                                         <div class="upload-widget test ">
-
                                             <div class="select">
-                                                <label for="title">
-                                                    {{ __('product.gallery_image') }}
-                                                </label>
                                                 <span class="btn btn-primary btn-file">
-                                                <input class="files" type="file" name="gallery_image[]" value="{{old('gallery_image[]')}}" multiple>
-                                                    {{ __('product.gallery_images') }}
+                                                    <input class="files" type="file" name="gallery_image[]" value="{{old('gallery_image[]')}}" multiple>
+                                                    <label for="title">
+                                                         {{ __('product.gallery_image') }}
+                                                    </label>
                                                 </span>
                                                 <output class="list row " >
                                                 </output>
@@ -249,9 +190,8 @@
                                             <button type="submit" class="btn btn-primary">
                                                 {{ __('ثبت محصول') }}
                                             </button>
-
-                                            <a href={{ route('products.index') }} type="button" class="btn btn-warning">
-                                                انصراف</a>
+                                            <a href="{{ route('products.index') }}" type="button" class="btn btn-warning" > انصراف</a>
+                                            <button  type="submit" class="btn btn-warning" id="DraftProduct"> انصراف</button>
                                         </div>
                                     </div>
                                 </form>
@@ -266,7 +206,60 @@
     @endslot
 
     @slot('script')
-
+        <script>
+            // $(document).ready(function() {
+            //         $("#DraftProduct").on('click', function(e) {
+            //             var getUrl = window.location;
+            //             var base_url = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
+            //                 e.preventDefault();
+            //                 var message = $('.message').val();
+            //                 if (message === '') {
+            //                     alert("لطفا پارامتر ارسالی را وارد کنید");
+            //                 }else{
+            //                     $.ajax({
+            //                         type: "POST",
+            //                         url: base_url + "/product/store",
+            //                         data: '{message: "' + $('.message').val() + '" }',
+            //                         contentType: "application/json; charset=utf-8",
+            //                         dataType: "json",
+            //                         success: function(response) {
+            //                             if (response.Ajax) {
+            //                                 alert(response.msg);
+            //                             } else {
+            //                                 alert("این متن برای تست  می باشد");
+            //                             }
+            //                         },
+            //                         error: function(response) {
+            //                             alert("مشکلی در اجرای برنامه به وجود آمده ");
+            //                         }
+            //                     });
+            //                 }
+            //             });
+            // });
+            $(document).ready(function(){
+                $("#DraftProduct").click(function(e){
+                    var getUrl = window.location;
+                               var base_url = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
+                    e.preventDefault();
+                    title = $("#title").val();
+                    price = $("#price").val();
+                    slug = $("#slug").val();
+                    type = $("#type").val();
+                    status = $("#status").val();
+                    discription = $("#discription").val();
+                    categories = $("#categories").val();
+                    featured_image = $("#featured_image").val();
+                    $.ajax({
+                        type:"POST",
+                        data:{"title":title,"price":price,"slug":slug,"type":type,"status":status,"discription":discription,"categories":categories,"featured_image":featured_image},
+                        url:base_url +"/product/SaveFormProductByAjax",
+                        success:function(data){
+                            $("#success").html(data);
+                        }
+                    });
+                });
+            });
+        </script>
     @endslot
 
 @endcomponent

+ 43 - 90
packages/product/src/views/product/edit.blade.php

@@ -1,8 +1,6 @@
 @component('panel.layouts.component', ['title' => 'ویرایش محصول '])
     @slot('style')
         <style>
-.hide-element{
-    display: flex;}
         </style>
     @endslot
     @slot('subject')
@@ -35,29 +33,22 @@
                                         @method('PUT')
                                     @endif
                                     <div class="form-group">
-                                        <label for="title">{{ __('product.title') }}</label>
-                                        <i class="required"> *</i>
-                                        <input id="title" type="text"
-                                               class="form-control @error('title') is-invalid @enderror"
-                                               name="title"
-                                               value="{{$product->title}}" autocomplete="title" autofocus>
+                                        <label for="title">{{ __('product.title') }}</label><i class="required">&nbsp;*</i>
+                                        <input id="title" type="text"class="form-control @error('title') is-invalid @enderror"name="title" value="{{$product->title}}" autocomplete="title" autofocus>
                                         @error('title')
-                                        <span class="invalid-feedback" role="alert">
-                                            <strong>{{ $message }}</strong>
-                                        </span>
+                                            <span class="invalid-feedback" role="alert">
+                                                <strong>{{ $message }}</strong>
+                                            </span>
                                         @enderror
                                     </div>
                                     <div class="form-row ">
                                         <div class="form-group col-lg-4">
                                             <label for="slug">  {{ __('product.slug') }}</label>
-                                            <input id="slug" type="text"
-                                                   class="form-control @error('slug') is-invalid @enderror"
-                                                   name="slug" value="{{$product->slug}}"
-                                                   autocomplete="slug" autofocus>
+                                            <input id="slug" type="text"class="form-control @error('slug') is-invalid @enderror" name="slug" value="{{$product->slug}}" autocomplete="slug" autofocus>
                                             @error('slug')
-                                            <span class="invalid-feedback" role="alert">
-                                                <strong>{{ $message }}</strong>
-                                            </span>
+                                                <span class="invalid-feedback" role="alert">
+                                                    <strong>{{ $message }}</strong>
+                                                </span>
                                             @enderror
                                         </div>
                                         <div class="form-group col-lg-4">
@@ -97,12 +88,8 @@
                                     </div>
                                     <div class="form-row ">
                                         <div class="form-group col-lg-4">
-                                            <label for="price">  {{ __('product.price') }}</label>
-                                            <i class="required"> *</i>
-                                            <input id="price" type="text"
-                                                   class="form-control price @error('price') is-invalid @enderror"
-                                                   name="price"
-                                                   value="{{$product->price}}" autocomplete="price" autofocus>
+                                            <label for="price">  {{ __('product.price') }}</label><i class="required"> *</i>
+                                            <input id="price" type="text" class="form-control price @error('price') is-invalid @enderror" name="price" value="{{$product->price}}" autocomplete="price" autofocus>
                                             @error('price')
                                                 <span class="invalid-feedback" role="alert">
                                                     <strong>{{ $message }}</strong>
@@ -139,109 +126,77 @@
                                         </div>
                                     </div>
                                     <div class="form-group col-lg-4">
-                                        <label for="ReleaseStatus">{{ __('product.ReleaseStatus') }}</label>
-                                        <i class="required">  *</i>
-                                        <select id="ReleaseStatus" type="text"
-                                                class="form-control @error('ReleaseStatus') is-invalid @enderror"
-                                                name="ReleaseStatus"
-                                                autocomplete="ReleaseStatus">
-                                            <option value="draft" @if($product->ReleaseStatus==='پیشنویس') selected='selected' @endif>
-                                                پیشنویس
-                                            </option>
-                                            <option value="pending" @if($product->ReleaseStatus==='در انتظار انتشار') selected='selected' @endif>
-                                              در انتظار انتشار
-                                            </option>
-                                            <option value="published" @if($product->ReleaseStatus==='منتشر شده') selected='selected' @endif>
-                                                منتشر شده
-                                            </option>
+                                        <label for="ReleaseStatus">{{ __('product.ReleaseStatus') }}</label><i class="required"> *</i>
+                                        <select id="ReleaseStatus" type="text" class="form-control @error('ReleaseStatus') is-invalid @enderror" name="ReleaseStatus" autocomplete="ReleaseStatus">
+                                            <option value="draft" @if($product->ReleaseStatus==='پیشنویس') selected='selected' @endif>پیشنویس </option>
+                                            <option value="pending" @if($product->ReleaseStatus==='در انتظار انتشار') selected='selected' @endif>در انتظار انتشار</option>
+                                            <option value="published" @if($product->ReleaseStatus==='منتشر شده') selected='selected' @endif>منتشر شده</option>
                                         </select>
                                         @error('ReleaseStatus')
-                                        <span class="invalid-feedback" role="alert">
-                                                    <strong>{{ $message }}</strong>
-                                                </span>
+                                            <span class="invalid-feedback" role="alert">
+                                                <strong>{{ $message }}</strong>
+                                            </span>
                                         @enderror
                                     </div>
                                     <div class="form-group">
-                                        <label for="discription">{{ __('product.discription') }}</label>
-                                        <i class="required">&nbsp; *</i>
-                                        <textarea id="discription" type="text"
-                                                  class="form-control editor @error('discription') is-invalid @enderror"
-                                                  name="discription"
-                                                  autocomplete="discription">{{$product->discription}}</textarea>
+                                        <label for="discription">{{ __('product.discription') }}</label><i class="required">&nbsp;*</i>
+                                        <textarea id="discription" type="text" class="form-control editor @error('discription') is-invalid @enderror" name="discription" autocomplete="discription">
+                                            {{$product->discription}}
+                                        </textarea>
                                         @error('discription')
                                             <span class="invalid-feedback" role="alert">
                                                 <strong>{{ $message }}</strong>
                                             </span>
                                         @enderror
                                     </div>
-
                                     <div class="form-group">
-                                        <label for="categories[]">{{ __('product.categories') }}</label>
-                                        <i class="required">&nbsp; *</i>
-
-                                        <select id="categories" type="text"
-                                                class="form-control select2 @error('categories[]') is-invalid @enderror"
-                                                name="categories[]"
-                                                autocomplete="categories[]" multiple>
-
+                                        <label for="categories[]">{{ __('product.categories') }}</label><i class="required">&nbsp;*</i>
+                                        <select id="categories" type="text" class="form-control select2 @error('categories[]') is-invalid @enderror" name="categories[]" autocomplete="categories[]" multiple>
                                                 {!! category_select_options( $categories,  $product->categories->pluck('id')->toArray() ) !!}
                                         </select>
                                         @error('status')
-                                        <span class="invalid-feedback" role="alert">
+                                            <span class="invalid-feedback" role="alert">
                                                 <strong>{{ $message }}</strong>
                                             </span>
                                         @enderror
                                     </div>
-
                                     <div class="form-group col-md-8">
                                         @component('product::components.featuredImage')
                                             @slot('ImageSrc')
                                                 {{\Illuminate\Support\Facades\Storage::disk('product')->url($product->featured_image->path)}}
                                             @endslot
                                             @slot('featureDescription')
-                                                    {{$product->featured_image->descriptionImg}}
-                                                @endslot
-                                                @slot('featureCaption')
-                                                    {{$product->featured_image->caption}}
-                                                @endslot
+                                                {{$product->featured_image->descriptionImg}}
+                                            @endslot
+                                            @slot('featureCaption')
+                                                {{$product->featured_image->caption}}
+                                            @endslot
                                         @endcomponent
                                     </div>
-
                                     <div class="row">
-
                                         <div class="form-row ">
                                             <div class="upload-widget test ">
-
                                                 <div class="select">
                                                     <label for="title">
                                                         {{ __('product.gallery_image') }}
                                                     </label>
                                                     <span class="btn btn-primary btn-file">
-                                                <input class="files" type="file" name="gallery_image[]" value="{{old('gallery_image[]')}}" multiple>
-                                                    {{ __('product.gallery_images') }}
-                                                </span>
-
-                                                    <output class="list row " >
-
+                                                         <input class="files" type="file" name="gallery_image[]" value="{{old('gallery_image[]')}}" multiple>
+                                                            {{ __('product.gallery_images') }}
+                                                    </span>
+                                                    <output class="list row" >
                                                             @foreach($product->gallery_images as $upload_photo)
                                                                 <div class="b">
-                                                                <div class=" DeleteImages">
-                                                                    <a class="btn btn-danger  position-absolute  "
-                                                                       href="{{route('uploads.destroyFile', $upload_photo->id)}}">
-                                                                        <i class="icon fa fa-close"></i>
-                                                                    </a>
-                                                                    <img id="holder" class="img-thumbnail"
-                                                                         src="{{ \Illuminate\Support\Facades\Storage::disk('product')->url($upload_photo->path) }}"
-                                                                         alt=""
-                                                                         style="width: 200px; height: 150px;" >
+                                                                    <div class=" DeleteImages">
+                                                                    <a class="btn btn-danger  position-absolute " href="{{route('uploads.destroyFile', $upload_photo->id)}}"><i class="icon fa fa-close"></i></a>
+                                                                    <img id="holder" class="img-thumbnail"src="{{ \Illuminate\Support\Facades\Storage::disk('product')->url($upload_photo->path) }}" alt="" style="width: 200px; height: 150px;" >
                                                                     <span class="form-input py-3 md-form" style="display: block;">
-                                                                            <label for="description">توضیحات: </label>
-                                                                           <input type="text" class="form-control" value="{{$upload_photo->descriptionImg}}" name="descriptionGallery[]">
-                                                                            <label for="caption">عنوان: </label>
-                                                                           <input type="text" class="form-control" value="{{$upload_photo->caption}}" name="captionGallery[]">
+                                                                        <label for="description">توضیحات: </label>
+                                                                        <input type="text" class="form-control" value="{{$upload_photo->descriptionImg}}" name="descriptionGallery[]">
+                                                                        <label for="caption">عنوان: </label>
+                                                                        <input type="text" class="form-control" value="{{$upload_photo->caption}}" name="captionGallery[]">
                                                                     </span>
                                                                 </div>
-
                                                                 </div>
                                                             @endforeach
 
@@ -252,14 +207,12 @@
                                             </div>
                                         </div>
                                     </div>
-
                                     <div class="form-group mb-0">
                                         <div class="">
                                             <button type="submit" class="btn btn-primary">
                                                 {{ __('ویرایش محصول') }}
                                             </button>
-                                            <a href={{ route('products.index') }} type="button"
-                                               class="btn btn-warning"> انصراف</a>
+                                            <a href="{{ route('products.index') }}" type="button" class="btn btn-warning"> انصراف</a>
                                         </div>
                                     </div>
                                 </form>

+ 38 - 3
resources/views/panel/categories/create.blade.php

@@ -18,12 +18,12 @@
                         <div class="card">
                             <div class="card-header"><strong>{{ __('ثبت دسته بندی جدید') }}</strong></div>
                             <div class="card-body mx-lg-5 px-lg-3">
-                                <form method="POST" action="{{ route('categories.store') }}" id="form1">
+                                <form method="POST" action="{{ route('categories.store') }}" id="form">
                                     @csrf
                                     <div class="form-group">
                                         <label for="title">{{ __('category.title') }}</label><i class="required">&nbsp;
                                             *</i>
-                                        <input id="title" type="text"
+                                        <input id="form" type="text"
                                                class="form-control @error('title') is-invalid @enderror" name="title"
                                                value="{{ old('title') }}" autocomplete="title" autofocus>
                                         @error('title')
@@ -99,7 +99,7 @@
                                     </div>
                                     <div class="form-group mb-0">
                                         <div class="">
-                                            <button type="submit" class="btn btn-primary">
+                                            <button type="submit" class="btn btn-primary ">
                                                 {{ __('ثبت دسته بندی') }}
                                             </button>
 
@@ -123,6 +123,41 @@
 
     @slot('script')
         <script>
+            {{--$(document).ready(function() {--}}
+            {{--    $(".sendForme").click(function(e){--}}
+            {{--        e.preventDefault();--}}
+
+            {{--        var title = $("input[name='title']").val();--}}
+            {{--        var price = $("input[name='price']").val();--}}
+            {{--        var slug = $("input[name='slug']").val();--}}
+            {{--        var type = $("input[name='type']").val();--}}
+            {{--        var status = $("input[name='status']").val();--}}
+            {{--        var discription = $("textarea[name='discription']").val();--}}
+
+            {{--        $.ajax({--}}
+            {{--            url: {{route('product.myformProduct')}},--}}
+            {{--            method:'POST',--}}
+            {{--            data: {title:title, price:price, slug:slug, type:type, status:status, discription:discription},--}}
+            {{--            dataType:'json',--}}
+            {{--            success: function(data) {--}}
+            {{--                if($.isEmptyObject(data.error)){--}}
+            {{--                    alert(data.success);--}}
+            {{--                }else{--}}
+            {{--                    printErrorMsg(data.error);--}}
+            {{--                }--}}
+            {{--            }--}}
+            {{--        });--}}
+            {{--    });--}}
+
+            {{--    function printErrorMsg (msg) {--}}
+            {{--        $(".print-error-msg").find("ul").html('');--}}
+            {{--        $(".print-error-msg").css('display','block');--}}
+            {{--        $.each( msg, function( key, value ) {--}}
+            {{--            $(".print-error-msg").find("ul").append('<li>'+value+'</li>');--}}
+            {{--        });--}}
+            {{--    }--}}
+            {{--});--}}
+
 
         </script>
     @endslot