Procházet zdrojové kódy

input class selech2

azam před 4 roky
rodič
revize
8e17d58d54

+ 25 - 21
app/Http/Controllers/Panel/Categories/CategoryController.php

@@ -1,6 +1,7 @@
 <?php
 
 namespace App\Http\Controllers\Panel\Categories;
+use App\Http\Requests\CategoryRequest;
 use App\Models\Category;
 use App\Http\Controllers\Controller;
 use Illuminate\Http\Request;
@@ -15,8 +16,19 @@ class CategoryController extends Controller
      */
     public function index()
     {
-     $categories=Category::orderBy('id','DESC')->paginate(20);
-     return view('panel.categories.index',compact('categories'));
+     $categories=Category::orderBy('id','DESC');
+             if (request()->has('categoryName') && request('categoryName') != '')
+            $categories = $categories->whereRaw('status = ?', [request('categoryName')]);
+
+       if (request()->has('categorySlug') && request('categorySlug') != '')
+            $categories = $categories->whereRaw('title = ?', [request('categorySlug')]);
+
+        if (request()->has('productCreator_id') && request('productCreator_id') != '')
+          $categories = $categories->whereHas('users', function (Builder $query) {
+              $query->whereRaw('id = ?', [request('productCreator_id')]);
+           });
+        $categories = $categories->paginate();
+        return view('panel.categories.index',compact('categories'));
     }
 
     /**
@@ -35,25 +47,17 @@ class CategoryController extends Controller
      * @param  \Illuminate\Http\Request  $request
      * @return \Illuminate\Http\Response
      */
-    public function store(Request $request)
+    public function store(CategoryRequest $request)
     {
-        $validatedData= $request->validate([
-            'title' => 'required|max:100',
-            'parent' => 'required',
-            'category_type' => 'required',
-            'discription' => 'required',
-
-
-
-        ],[
-            'title.required' => 'فیلد عنوان الزامی می باشد.',
-            'parent.required' => 'فیلد وضعیت الزامی می باشد.',
-            'discription.required' => 'فیلد توضیحات الزامی می باشد.',
-            'category_type.required' => 'فیلد نوع دسته بندی الزامی می باشد.',
-
-        ]);
-        $data = array_merge($request->all(),['creator_id' => auth()->user()->id]);
-//
+//        $data = array_merge($request->all(),['creator_id' => auth()->user()->id]);
+        $data = [
+            'title' => $request->title,
+            'slug' => $request->slug,
+            'sku' => $request->sku,
+            'price' => $request->price,
+            'discription' => $request->discription,
+            'creator_id' => auth()->user()->id
+        ];
         $category = Category::create($data);
 
 
@@ -91,7 +95,7 @@ class CategoryController extends Controller
      * @param  int  $id
      * @return \Illuminate\Http\Response
      */
-    public function update(Request $request, Category $category)
+    public function update(CategoryRequest $request, Category $category)
     {
         $validatedData= $request->validate([
             'title' => 'required|max:100',

+ 6 - 3
app/Http/Requests/ProductRequest.php → app/Http/Requests/CategoryRequest.php

@@ -4,7 +4,7 @@ namespace App\Http\Requests;
 
 use Illuminate\Foundation\Http\FormRequest;
 
-class ProductRequest extends FormRequest
+class CategoryRequest extends FormRequest
 {
     /**
      * Determine if the user is authorized to make this request.
@@ -13,7 +13,7 @@ class ProductRequest extends FormRequest
      */
     public function authorize()
     {
-        return false;
+        return true;
     }
 
     /**
@@ -24,7 +24,10 @@ class ProductRequest extends FormRequest
     public function rules()
     {
         return [
-            //
+            'title' => ['required','max:100'],
+            'parent' => ['required'],
+            'category_type' => ['required'],
+            'discription' => ['required'],
         ];
     }
 }

+ 7 - 43
packages/product/src/Http/Controllers/ProductController.php

@@ -4,11 +4,13 @@ namespace Packages\Product\Http\Controllers;
 
 use App\Http\Controllers\Controller;
 use Facade\Ignition\Support\Packagist\Package;
+use Illuminate\Database\Eloquent\Builder;
+use Packages\Product\Http\Requests\ProductRequest;
 use Packages\Product\Models\Product;
 use Illuminate\Http\Request;
 use App\Models\Category;
 use phpDocumentor\Reflection\Types\Compound;
-use PhpParser\Builder;
+//use PhpParser\Builder;
 
 class ProductController extends Controller
 {
@@ -26,7 +28,7 @@ class ProductController extends Controller
         $products = Product::query()->orderBy('id', 'DESC');
 
         if (request()->has('productCategory') && request('productCategory') != '')
-            $products = $products->whereHas('categories', function ($query) {
+            $products = $products->whereHas('categories', function (Builder $query){
                 $query->whereRaw('id = ?', [request('productCategory')]);
             });
 
@@ -51,28 +53,9 @@ class ProductController extends Controller
 
 // *********************************************************save products ******************
 
-    public function store(Request $request)
+    public function store(ProductRequest $request)
     {
-
-        $validatedData = $request->validate([
-            'title' => 'required|max:100',
-            'price' => 'required',
-            'type' => 'required',
-            'status' => 'required',
-            'discription' => 'required',
-
-            'categories.*' => 'required',
-
-
-        ], [
-            'title.required' => 'فیلد عنوان الزامی می باشد.',
-            'price.required' => 'فیلد قیمت الزامی می باشد.',
-            'type.required' => 'فیلد نوع محصول الزامی می باشد.',
-            'status.required' => 'فیلد وضعیت الزامی می باشد.',
-            'discription.required' => 'فیلد توضیحات الزامی می باشد.',
-            'categories[].required' => 'فیلد دسته بندی محصول الزامی می باشد.',
-
-        ]);
+//        dd($request->all());
 
         $request->merge([
             'price' => preg_replace('/[^0-9]+/', '', $request->price),
@@ -107,27 +90,8 @@ class ProductController extends Controller
 
 // *******************************************update page product*****************************************
 
-    public function update(Request $request, Product $product)
+    public function update(ProductRequest $request, Product $product)
     {
-        $validatedData = $request->validate([
-            'title' => 'required|max:100',
-            'price' => 'required',
-            'type' => 'required',
-            'status' => 'required',
-            'discription' => 'required',
-            'categories.*' => 'required',
-
-
-        ], [
-            'title.required' => 'فیلد عنوان الزامی می باشد.',
-            'price.required' => 'فیلد قیمت الزامی می باشد.',
-            'type.required' => 'فیلد نوع محصول الزامی می باشد.',
-            'status.required' => 'فیلد وضعیت الزامی می باشد.',
-            'discription.required' => 'فیلد توضیحات الزامی می باشد.',
-            'categories.required' => 'فیلد دسته بندی محصول الزامی می باشد.',
-
-
-        ]);
         $request->merge([
             'price' => preg_replace('/[^0-9]+/', '', $request->price),
             'sale_price' => preg_replace('/[^0-9]+/', '', $request->sale_price),

+ 7 - 17
packages/product/src/Http/Requests/ProductRequest.php

@@ -1,8 +1,8 @@
 <?php
 
 namespace Packages\Product\Http\Requests;
-use Packages\Product\Http\Controllers\Product;
 use Illuminate\Foundation\Http\FormRequest;
+use Illuminate\Validation\Rule;
 
 class ProductRequest extends FormRequest
 {
@@ -23,26 +23,16 @@ class ProductRequest extends FormRequest
      */
     public function rules()
     {
+//        dd(request()->all());
         return [
-            'title' => 'required|max:100',
+            'title' => ['required','max:100'],
             'price' => 'required',
-            'type' => 'required',
-            'status' => 'required',
-            'discription' => 'required',
-            'categories.*' => 'required',
+            'type' => ['required'],
+            'status' => ['required'],
+            'discription' => ['required'],
+            "categories" => ['required'],
 
         ];
     }
-    public function messages()
-    {
-        return [
-            'title.required' => 'فیلد عنوان الزامی می باشد.',
-            'price.required' => 'فیلد قیمت الزامی می باشد.',
-            'type.required' => 'فیلد نوع محصول الزامی می باشد.',
-            'status.required' => 'فیلد وضعیت الزامی می باشد.',
-            'discription.required' => 'فیلد توضیحات الزامی می باشد.',
-            'categories[].required' => 'فیلد دسته بندی محصول الزامی می باشد.',
 
-        ];
-    }
 }

+ 10 - 24
packages/product/src/views/index.blade.php

@@ -5,6 +5,10 @@
             .btnSearch {
                 margin-top: 10px;
             }
+            .searchNaum{
+                display: none;
+                margin: 20px;
+            }
         </style>
     @endslot
 
@@ -24,11 +28,7 @@
                 @endcomponent
                 @component('components.collapse-card' , ['title' => 'جست جو محصولات'])
                     @slot('body')
-
-                        <form action="">
-
-
-                            <form method="GET" action="">
+                          <form method="GET" action="">
                                 <div class="form-row">
                                     <div class="col">
                                         <label for="categories">{{ __(' نام محصول:') }}</label>
@@ -58,7 +58,7 @@
                                                : ''}}>موجود
                                             </option>
                                             <option value=0 {{(request()->has('productStatus') && request()->query('productStatus') ==" 0") ?
- 'selected': ''}}>ناموجود
+                                              'selected': ''}}>ناموجود
                                             </option>
                                         </select>
                                     </div>
@@ -86,7 +86,6 @@
                                         <th> نویسنده</th>
                                         <th>وضعیت</th>
                                         <th>نوع</th>
-
                                         <th>توضیحات</th>
                                         <th>دسته بندی</th>
                                         <th> مدیریت</th>
@@ -94,7 +93,6 @@
                                 @endslot
                                 @slot('tbody')
                                     @forelse ($products as $product)
-
                                         <tr>
                                             <td>{{$product->id}}</td>
                                             <td>{{$product->title}}</td>
@@ -105,7 +103,6 @@
                                             <td>{{$product->user->name}}</td>
                                             <td>{{$product->status}}</td>
                                             <td>{{$product->type}}</td>
-
                                             <td><?php  echo mb_substr($product->discription, 0, 15, 'UTF8') . '...'?></td>
                                             <td>
                                                 @foreach($product->categories->pluck('title') as $category)
@@ -118,8 +115,7 @@
                                                 <form
                                                     action="{{route('products.destroy', $product->id)}}"
                                                     method="POST"
-                                                    onsubmit="return confirm('آیا مطمئن هستید؟');"
-                                                >
+                                                    onsubmit="return confirm('آیا مطمئن هستید؟');">
                                                     @csrf
                                                     @method('DELETE')
                                                     <button type="submit" class="btn btn-sm btn-danger">حذف</button>
@@ -132,33 +128,23 @@
                                         </tr>
                         @endforelse
                     @endslot
-
                 @endcomponent
-
                 {{--Paginate section--}}
-
                 {{ $products->withQueryString()->links() }}
 
                 @endslot
                 @endcomponent
             </div>
         </div>
-
-
     @endslot
-
     @slot('script')
         <script>
 
 
-            $(document).ready(function(){
-                $("#show").click(function(){
-                    $("#searchNaum").toggle();
-                });
+            $("#show").click(function(e){
+                e.preventDefault();
+                $(".searchNaum").show();
             });
-
         </script>
-
     @endslot
-
 @endcomponent

+ 66 - 53
packages/product/src/views/product/create.blade.php

@@ -10,13 +10,16 @@
 
                 background-color: hsl(315, 22%, 86%);
             }
-            .required{
-                color:red;
+
+            .required {
+                color: red;
             }
-             .py-5 {
-                 padding-top: 0 !important;
+
+            .py-5 {
+                padding-top: 0 !important;
             }
-            select.select2{
+
+            select2 {
                 background-color: hsl(315, 22%, 86%);
             }
         </style>
@@ -43,10 +46,11 @@
                                     @csrf
 
                                     <div class="form-group">
-                                        <label for="title">{{ __('نام محصول ') }}</label><i class="required">&nbsp; *</i>
+                                        <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>
+                                               value="{{ old('title') }}" autocomplete="title" autofocus>
 
                                         @error('title')
                                         <span class="invalid-feedback" role="alert">
@@ -57,19 +61,19 @@
                                     </div>
 
                                     <div class="form-group">
-                                        <label for="title">slug</label>
+                                        <label for="title">{{ __('product.slug') }}</label>
                                         <input type="text" name="slug"
                                                class="form-control @error('slug') is-invalid  @enderror"
-                                               value="{{old('slug')}}"  autocomplete="slug" autofocus>
+                                               value="{{old('slug')}}" autocomplete="slug" autofocus>
                                         @error('slug')
                                         <div class="alert alert-danger">{{$message}}</div>
                                         @enderror
                                     </div>
                                     <div class="form-group">
-                                        <label for="sku">{{ __(' sku  ') }}</label>
+                                        <label for="sku">{{ __('product.sku') }}</label>
                                         <input id="sku" type="text"
                                                class="form-control @error('sku') is-invalid @enderror" name="sku"
-                                                autocomplete="sku" value="{{ old('sku') }}" autofocus>
+                                               autocomplete="sku" value="{{ old('sku') }}" autofocus>
 
                                         @error('sku')
                                         <span class="invalid-feedback" role="alert">
@@ -78,10 +82,12 @@
                                         @enderror
                                     </div>
                                     <div class="form-group">
-                                        <label for="title">{{ __('قیمت ') }}</label><i class="required">&nbsp; *</i>
+                                        <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 >
+                                               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">
@@ -92,7 +98,7 @@
                                     </div>
 
                                     <div class="form-group">
-                                        <label for="sale_price">{{ __('  قیمت فروش ویژه') }}</label>
+                                        <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"
@@ -106,14 +112,15 @@
                                     </div>
 
                                     <div class="form-group">
-                                        <label for="type">{{ __(' نوع محصول') }}</label></label><i class="required">&nbsp; *</i>
+                                        <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">
-                                            <option value="" >انتخاب کنید</option>
-                                            <option value="0">ساده</option>
-                                            <option value="1">متغیر</option>
-                                            <option value="2">باندل</option>
+                                                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>
                                         </select>
 
                                         @error('type')
@@ -124,13 +131,15 @@
                                     </div>
 
                                     <div class="form-group">
-                                        <label for="status">{{ __(' وضعیت محصول') }}</label><i class="required">&nbsp; *</i>
+                                        <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"
-                                                value="{{ old('status') }}"  autocomplete="status" >
+                                                class="form-control  @error('status') is-invalid @enderror"
+                                                name="status"
+                                                 autocomplete="status">
                                             <option value="">انتخاب کنید</option>
-                                            <option value="1">موجود</option>
-                                            <option value="0">ناموجود</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">
@@ -138,40 +147,44 @@
                                         </span>
                                         @enderror
                                     </div>
-                                        <div class="form-group">
-                                            <label for="categories">{{ __(' دسته بندی') }}</label><i class="required">&nbsp; *</i>
-                                            <select id="select2" type="text"
-                                                    class="form-control select2 @error('categories[]') is-invalid @enderror" name="categories[]"
-                                                    required  autocomplete="categories[]"  multiple value="انتخاب کنید...">
-
-
-                                                @foreach($categories as $cat)
+                                    <div class="form-group">
+                                        <label for="discription">{{ __('product.discription') }}</label></label><i
+                                            class="required">&nbsp; *</i>
+                                        <textarea id="discription" type="text"
+                                                  class="form-control @error('discription') is-invalid @enderror"
+                                                  name="discription"
 
-                                                    <option value="{{$cat->id}}">{{$cat->title}}</option>
-                                                @endforeach
-                                            </select>
+                                                  autocomplete="discription"
+                                                  autofocus>{{ old('discription') }}</textarea>
 
-                                            @error('categories[]')
-                                            <span class="invalid-feedback" role="alert">
+                                        @error('discription')
+                                        <span class="invalid-feedback" role="alert">
                                             <strong>{{ $message }}</strong>
                                         </span>
-                                            @enderror
+                                        @enderror
+                                    </div>
+                                    <div class="form-group">
+                                        <label for="categories">{{ __('product.categories') }}</label><i
+                                            class="required">&nbsp; *</i>
+                                        <select id=""
+                                                class="form-control select2 @error('categories') is-invalid @enderror"
+                                                name="categories[]" multiple>
 
-                                        </div>
+                                            <option value="">انتخاب کنید</option>
 
-                                    <div class="form-group">
-                                        <label for="discription">{{ __(' توضیحات  محصول') }}</label></label><i class="required">&nbsp; *</i>
-                                        <textarea id="discription" type="text"
-                                                  class="form-control @error('discription') is-invalid @enderror"
-                                                  name="discription"
 
-                                                  autocomplete="discription"  autofocus>{{ old('discription') }}</textarea>
+                                            @foreach($categories as $cat)
 
-                                        @error('discription')
+                                                <option value="{{$cat->id (old('type') == '2') ? 'selected' : '' }}  ">{{$cat->title}}</option>
+                                            @endforeach
+                                        </select>
+
+                                        @error('categories')
                                         <span class="invalid-feedback" role="alert">
                                             <strong>{{ $message }}</strong>
                                         </span>
                                         @enderror
+
                                     </div>
                                     <div class="form-group mb-0">
                                         <div class="">
@@ -197,11 +210,11 @@
     @endslot
 
     @slot('script')
-{{--        <script>--}}
-{{--            $(document).ready(function () {--}}
-{{--                $('.select2').select2();--}}
-{{--            });--}}
-{{--        </script>--}}
+        {{--        <script>--}}
+        {{--            $(document).ready(function () {--}}
+        {{--                $('.select2').select2();--}}
+        {{--            });--}}
+        {{--        </script>--}}
     @endslot
 
 @endcomponent

+ 136 - 159
packages/product/src/views/product/edit.blade.php

@@ -1,5 +1,4 @@
 @component('panel.layouts.component', ['title' => 'ویرایش محصول جدید'])
-
     @slot('style')
         <style>
             .card-header {
@@ -7,12 +6,13 @@
             }
 
             .form-control {
-
                 background-color: hsl(315, 22%, 86%);
             }
-            .required{
-                color:red;
+
+            .required {
+                color: red;
             }
+
             .py-5 {
                 padding-top: 0 !important;
             }
@@ -25,187 +25,167 @@
     @slot('breadcrumb')
         <li class="breadcrumb-item">محصولات</li>
     @endslot
-
     @slot('content')
         <div class="auth-background h-auto py-5">
             <div class="container py-5">
                 @component('product::components.message')
                 @endcomponent
                 <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-body mx-lg-5 px-lg-3">
-                                    <form method="POST" action="{{ route('products.update',$product->id) }}">
-                                        @csrf
-                                        @if ($product)
-                                            @method('PUT')
-                                        @endif
-
-                                        <div class="form-group">
-                                            <label for="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">
+                            <div class="card-body mx-lg-5 px-lg-3">
+                                <form method="POST" action="{{ route('products.update',$product->id) }}">
+                                    @csrf
+                                    @if ($product)
+                                        @method('PUT')
+                                    @endif
+                                    <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="{{$product->title}}" autocomplete="title" autofocus>
+                                        @error('title')
+                                        <span class="invalid-feedback" role="alert">
                                             <strong>{{ $message }}</strong>
                                         </span>
-                                            @enderror
-
-                                        </div>
-
-                                        <div class="form-group">
-                                            <label for="slug">  {{ __('slug  ') }}</label>
-                                            <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">
+                                        @enderror
+                                    </div>
+                                    <div class="form-group">
+                                        <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>
+                                        @error('slug')
+                                        <span class="invalid-feedback" role="alert">
                                             <strong>{{ $message }}</strong>
                                         </span>
-                                            @enderror
-
-                                        </div>
-                                        <div class="form-group">
-                                            <label for="sku">  {{ __(' sku  ') }}</label>
-                                            <input id="sku" type="text"
-                                                   class="form-control @error('sku') is-invalid @enderror"
-                                                   name="sku" value="{{$product->sku}}"
-                                                   autocomplete="sku" autofocus>
-
-                                            @error('sku')
-                                            <span class="invalid-feedback" role="alert">
+                                        @enderror
+                                    </div>
+                                    <div class="form-group">
+                                        <label for="sku">  {{ __('product.sku') }}</label>
+                                        <input id="sku" type="text"
+                                               class="form-control @error('sku') is-invalid @enderror"
+                                               name="sku" value="{{$product->sku}}"
+                                               autocomplete="sku" autofocus>
+                                        @error('sku')
+                                        <span class="invalid-feedback" role="alert">
                                             <strong>{{ $message }}</strong>
                                         </span>
-                                            @enderror
-
-                                        </div>
-
-                                        <div class="form-group">
-                                            <label for="price">  {{ __('قیمت  ') }}</label><i class="required">&nbsp; *</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">
+                                        @enderror
+                                    </div>
+                                    <div class="form-group">
+                                        <label for="price">  {{ __('product.price') }}</label><i class="required">&nbsp;
+                                            *</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>
                                         </span>
-                                            @enderror
-                                        </div>
-
-                                        <div class="form-group">
-                                            <label for="sale_price">{{ __(' قیمت فروش ویژه') }}</label>
-                                            <input id="sale_price" type="text"
-                                                   class="form-control price @error('sale_price') is-invalid @enderror"
-                                                   name="sale_price"
-                                                   value="{{$product->sale_price}}"  autocomplete="sale_price">
-
-                                            @error('sale_price')
-                                            <span class="invalid-feedback" role="alert">
+                                        @enderror
+                                    </div>
+                                    <div class="form-group">
+                                        <label for="sale_price">{{ __('product.sale_price') }}</label>
+                                        <input id="sale_price" type="text"
+                                               class="form-control price @error('sale_price') is-invalid @enderror"
+                                               name="sale_price"
+                                               value="{{$product->sale_price}}" autocomplete="sale_price">
+                                        @error('sale_price')
+                                        <span class="invalid-feedback" role="alert">
                                             <strong>{{ $message }}</strong>
                                         </span>
-                                            @enderror
-                                        </div>
-                                        <div class="form-group">
-                                            <label for="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>
-                                                @foreach($categories as $cat)
-                                                    <option value="{{$cat->id}}" <?php
-                                                        if (in_array($cat->id,$product->categories->pluck('id')->toArray()))echo 'selected'
-                                                        ?>>{{$cat->title}}</option>
-                                                @endforeach
-                                            </select>
-
-
-                                            @error('status')
-                                            <span class="invalid-feedback" role="alert">
+                                        @enderror
+                                    </div>
+                                    <div class="form-group">
+                                        <label for="type">{{ __('product.type') }}</label><i class="required">&nbsp;
+                                            *</i>
+                                        <select id="type" type="text"
+                                                class="form-control @error('type') is-invalid @enderror" name="type"
+                                                autocomplete="type">
+                                            <option value="0" @if($product->type==='ساده') selected='selected' @endif>
+                                                ساده
+                                            </option>
+                                            <option value="1" @if($product->type==='متغیر') selected='selected' @endif>
+                                                متغیر
+                                            </option>
+                                            <option value="2" @if($product->type==='باندل') selected='selected' @endif>
+                                                باندل
+                                            </option>
+                                        </select>
+                                        @error('type')
+                                        <span class="invalid-feedback" role="alert">
                                             <strong>{{ $message }}</strong>
                                         </span>
-                                            @enderror
-                                        </div>
-                                        <div class="form-group">
-                                            <label for="type">{{ __(' نوع محصول') }}</label><i class="required">&nbsp; *</i>
-                                            <select id="type" type="text"
-                                                    class="form-control @error('type') is-invalid @enderror" name="type"
-                                                     autocomplete="type">
-                                                <option value="0" @if($product->type==='ساده') selected='selected' @endif>ساده</option>
-                                                <option value="1" @if($product->type==='متغیر') selected='selected' @endif>متغیر</option>
-                                                <option value="2" @if($product->type==='باندل') selected='selected' @endif>باندل</option>
-                                            </select>
-
-                                            @error('type')
-                                            <span class="invalid-feedback" role="alert">
+                                        @enderror
+                                    </div>
+                                    <div class="form-group">
+                                        <label for="status">{{ __('product.status') }}</label></label><i
+                                            class="required">&nbsp; *</i>
+                                        <select id="status" type="text"
+                                                class="form-control @error('status') is-invalid @enderror"
+                                                name="status"
+                                                value="{{$product->status}}" required autocomplete="status">
+                                            <option value="0">ناموجود</option>
+                                            <option value="1" <?php if ($product->status == 1) echo 'selected'?> >
+                                                موجود
+                                            </option>
+                                        </select>
+                                        @error('status')
+                                        <span class="invalid-feedback" role="alert">
                                             <strong>{{ $message }}</strong>
                                         </span>
-                                            @enderror
-                                        </div>
-
-                                        <div class="form-group">
-                                            <label for="status">{{ __(' وضعیت محصول') }}</label></label><i class="required">&nbsp; *</i>
-                                            <select id="status" type="text"
-                                                    class="form-control @error('status') is-invalid @enderror"
-                                                    name="status"
-                                                    value="{{$product->status}}" required autocomplete="status">
-                                                <option value="0">ناموجود</option>
-                                                <option value="1" <?php if ($product->status == 1) echo 'selected'?> >
-                                                    موجود
-                                                </option>
-                                            </select>
-
-
-                                            @error('status')
-                                            <span class="invalid-feedback" role="alert">
+                                        @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 @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="discription">{{ __(' توضیحات  محصول') }}</label><i class="required">&nbsp; *</i>
-                                            <textarea id="discription" type="text"
-                                                      class="form-control @error('discription') is-invalid @enderror"
-                                                      name="discription"
-
-                                                      autocomplete="discription">{{$product->discription}}</textarea>
-
-                                            @error('discription')
-                                            <span class="invalid-feedback" role="alert">
+                                        @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>
+                                            @foreach($categories as $cat)
+                                                <option value="{{$cat->id}}" <?php
+                                                    if (in_array($cat->id, $product->categories->pluck('id')->toArray())) echo 'selected'
+                                                    ?>>{{$cat->title}}</option>
+                                            @endforeach
+                                        </select>
+                                        @error('status')
+                                        <span class="invalid-feedback" role="alert">
                                             <strong>{{ $message }}</strong>
                                         </span>
-                                            @enderror
+                                        @enderror
+                                    </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>
                                         </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>
-
-                                            </div>
-                                        </div>
-                                    </form>
-                                </div>
-
+                                    </div>
+                                </form>
+                            </div>
                             <div class="card-footer">
-
                             </div>
                         </div>
                     </div>
@@ -213,9 +193,6 @@
             </div>
         </div>
     @endslot
-
     @slot('script')
-
     @endslot
-
 @endcomponent

+ 1 - 0
resources/js/app.js

@@ -6,3 +6,4 @@ require('sweetalert');
 require('owl.carousel');
 require('croppie/croppie');
 window.select2 = require('select2/dist/js/select2.js');
+

+ 11 - 0
resources/lang/fa/category.php

@@ -0,0 +1,11 @@
+<?php
+return [
+    'title'         => 'عنوان دسته بندی',
+  'parent'          => ' parent ',
+  'slug'          => ' slug ',
+  'category_type'   => 'نوع دسته بندی',
+  'discription'     => ' توضیحات دسته بندی',
+
+];
+
+

+ 13 - 0
resources/lang/fa/product.php

@@ -0,0 +1,13 @@
+<?php
+return [
+  'categories' => 'دسته بندی',
+  'sale_price'   => 'قیمت فروش ویژه',
+  'price'        => 'قیمت ',
+  'discription'   => ' توضیحات محصول',
+  'status'   => 'وضعیت محصول',
+  'type'   => ' نوع محصول',
+  'sku'   => 'sku ',
+  'slug'   => 'slug',
+  'title'   => 'عنوان',
+];
+

+ 4 - 2
resources/lang/fa/validation.php

@@ -141,7 +141,9 @@ return [
     |
     */
 
-    'attributes' => [
+    'attributes' => array_merge(
+        __('product'),__('category'),
+        [
         'name'                  => 'نام',
         'username'              => 'نام کاربری',
         'email'                 => 'ایمیل',
@@ -175,5 +177,5 @@ return [
         'terms'                 => 'شرایط',
         'province'              => 'استان',
         'g-recaptcha-response'  => 'راستی آزمایی',
-    ],
+    ]),
 ];

+ 5 - 5
resources/views/panel/categories/create.blade.php

@@ -41,7 +41,7 @@
                                     @csrf
 
                                     <div class="form-group">
-                                        <label for="title">{{ __('نام دسته ') }}</label><i class="required">&nbsp; *</i>
+                                        <label for="title">{{ __('category.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>
@@ -55,7 +55,7 @@
                                     </div>
 
                                     <div class="form-group">
-                                        <label for="slug">  {{ __('slug  ') }}</label>
+                                        <label for="slug">{{ __('category.slug') }}</label>
                                         <input id="slug" type="text"
                                                class="form-control @error('slug') is-invalid @enderror"
                                                name="slug" value="{{ old('slug') }}"
@@ -69,7 +69,7 @@
 
                                     </div>
                                     <div class="form-group">
-                                        <label for="parent">  {{ __('parent') }}</label><i class="required">&nbsp;*</i>
+                                        <label for="parent">{{ __('category.parent') }}</label><i class="required">&nbsp;*</i>
                                         <input id="parent" type="text"
                                                class="form-control @error('parent') is-invalid @enderror"
                                                name="parent" value="{{ old('parent') }}"
@@ -84,7 +84,7 @@
                                     </div>
 
                                     <div class="form-group">
-                                        <label for="category_type">{{ __(' نوع دسته ') }}</label><i class="required">&nbsp;
+                                        <label for="category_type">{{ __('category.category_type') }}</label><i class="required">&nbsp;
                                             *</i>
                                         <select id="category_type" type="text"
                                                 class="form-control @error('category_type') is-invalid @enderror"
@@ -105,7 +105,7 @@
 
 
                                     <div class="form-group">
-                                        <label for="discription">{{ __(' توضیحات دسته ') }}</label><i class="required">&nbsp; *</i>
+                                        <label for="discription">{{ __('category.discription') }}</label><i class="required">&nbsp; *</i>
                                         <textarea id="discription" type="text"
                                                   class="form-control @error('discription') is-invalid @enderror"
                                                   name="discription"

+ 13 - 5
resources/views/panel/categories/edit.blade.php

@@ -10,6 +10,14 @@
 
                 background-color: hsl(315, 22%, 86%);
             }
+
+            .required {
+                color: red;
+            }
+
+            .py-5 {
+                padding-top: 0 !important;
+            }
         </style>
     @endslot
     @slot('subject')
@@ -35,7 +43,7 @@
                                         @method('PUT')
                                     @endif
                                     <div class="form-group">
-                                        <label for="title">{{ __(' نام دسته بندی') }}</label>
+                                        <label for="title">{{ __('category.title') }}</label><i class="required">&nbsp; *</i>
                                         <input id="title" type="text"
                                                class="form-control @error('title') is-invalid @enderror" name="title"
                                                value="{{$category->title}}"  autocomplete="title" autofocus>
@@ -49,7 +57,7 @@
                                     </div>
 
                                     <div class="form-group">
-                                        <label for="slug">  {{ __('slug') }}</label>
+                                        <label for="slug">{{ __('category.slug') }}</label>
                                         <input id="slug" type="text"
                                                class="form-control @error('slug') is-invalid @enderror"
                                                name="slug" value="{{$category->slug}}"
@@ -63,7 +71,7 @@
 
                                     </div>
                                     <div class="form-group">
-                                        <label for="parent">  {{ __(' parent ') }}</label>
+                                        <label for="parent">{{ __('category.parent') }}</label><i class="required">&nbsp; *</i>
                                         <input id="parent" type="text"
                                                class="form-control @error('parent') is-invalid @enderror"
                                                name="parent" value="{{$category->parent}}"
@@ -78,7 +86,7 @@
                                     </div>
 
                                     <div class="form-group">
-                                        <label for="category_type">{{ __('  نوع دسته بندی') }}</label>
+                                        <label for="category_type">{{ __('category.category_type') }}</label><i class="required">&nbsp; *</i>
                                         <select id="category_type" type="text"
                                                 class="form-control @error('category_type') is-invalid @enderror"
                                                 name="category_type"
@@ -96,7 +104,7 @@
 
 
                                     <div class="form-group">
-                                        <label for="discription">{{ __(' توضیحات  دسته بندی') }}</label>
+                                        <label for="discription">{{ __('category.discription') }}</label><i class="required">&nbsp; *</i>
                                         <textarea id="discription" type="text"
                                                   class="form-control @error('discription') is-invalid @enderror"
                                                   name="discription"

+ 30 - 14
resources/views/panel/categories/index.blade.php

@@ -11,24 +11,40 @@
     @slot('breadcrumb')
         <li class="breadcrumb-item">دسته بندی </li>
     @endslot
-
     @slot('content')
         <div class="row">
             <div class="col-md-12">
-                @component('components.collapse-card' , ['title' => 'دسته بندی  '])
+                @component('product::components.message')
+                @endcomponent
+                @component('components.collapse-card' , ['title' => 'جست جو دسته بندی'])
                     @slot('body')
-                        @component('components.collapse-search')
-                            @slot('form')
-                                <form class="clearfix">
-                                    <div class="form-group">
-                                        <label for="text-name-input">نام دسته بندی</label>
-                                        <input type="text" class="form-control" id="text-name-input"
-                                               placeholder="نام دسته">
-                                    </div>
-                                    <button type="submit" class="btn btn-primary float-left">جستجو</button>
-                                </form>
-                            @endslot
-                        @endcomponent
+        <form method="GET" action="">
+            <div class="form-row">
+                <div class="col">
+                    <label for="categories">{{ __(' نام دسته بندی:') }}</label>
+                    <input type="text" class="form-control" placeholder="محصول..."
+                           name="categoryName" value="{{ request()->query('categoryName') }}">
+                </div>
+                <div class="col">
+                    <label for="categories">{{ __(' slug:') }}</label>
+                    <input type="text" class="form-control" placeholder="دسته بندی..."
+                            name="categorySlug"
+                            value="{{ request()->query('categorySlug') }}">
+
+                </div>
+                <div class="col">
+                    <label for="categories">{{ __('  نام ثبت کننده:') }}</label>
+                    <input type="text" class="form-control" placeholder="ایجاد کننده دسته بندی..."
+                            name="productCreator_id" value="{{ request()->query('productCreator_id') }}">
+
+
+                </div>
+            </div>
+
+            <button type="submit" class="btn btn-primary float-left btnSearch" id="show">جستجو
+            </button>
+{{--            <p class="searchNaum">{{$products->count()}}{{ __(' :مورد یافت شد.') }}</p>--}}
+        </form>
 
                         <div class="mt-4">
                             <a href="{{ route('categories.create') }}" type="button" class="btn btn-primary"><i