Browse Source

added get params of main pages to session, reverts

Alexander Musikhin 6 months ago
parent
commit
bccab4bced

+ 4 - 4
app/Http/Controllers/MafOrderController.php

@@ -36,7 +36,7 @@ class MafOrderController extends Controller
     public function index(Request $request)
     {
         $model = new MafOrder;
-
+        session(['gp_maf_order' => $request->all()]);
         $this->createDateFilters($model, 'created_at');
         $this->createFilters($model, 'user_id', 'quantity');
         $this->createRangeFilters($model, 'in_stock', 'quantity');
@@ -56,7 +56,7 @@ class MafOrderController extends Controller
     public function store(StoreMafOrderRequest $request)
     {
         MafOrder::query()->create($request->validated() + ['user_id' => $request->user()->id, 'in_stock' => 0]);
-        return redirect()->route('maf_order.index');
+        return redirect()->route('maf_order.index', session('gp_maf_order'));
     }
 
     public function show(Request $request, MafOrder $maf_order)
@@ -70,13 +70,13 @@ class MafOrderController extends Controller
     {
         MafOrder::query()->where('id', $maf_order->id)->update($request->validated());
 
-        return redirect()->route('maf_order.index');
+        return redirect()->route('maf_order.index', session('gp_maf_order'));
     }
 
     public function destroy(MafOrder $maf_order)
     {
         $maf_order->delete();
-        return redirect()->route('maf_order.index');
+        return redirect()->route('maf_order.index', session('gp_maf_order'));
     }
 
     public function setInStock(MafOrder $maf_order)

+ 2 - 1
app/Http/Controllers/OrderController.php

@@ -70,6 +70,7 @@ class OrderController extends Controller
      */
     public function index(Request $request)
     {
+        session(['gp_orders' => $request->all()]);
         $model = new Order;
         // fill filters
         $this->createFilters($model, 'user_id', 'district_id', 'area_id', 'object_type_id', 'brigadier_id', 'order_status_id', 'ready_to_mount');
@@ -197,7 +198,7 @@ class OrderController extends Controller
     {
         Order::query()->where('id', $order->id)->delete();
         ProductSKU::query()->where('order_id', $order->id)->delete();
-        return redirect()->route('order.index');
+        return redirect()->route('order.index', session('gp_orders'));
     }
 
     public function revertMaf(Order $order)

+ 8 - 6
app/Http/Controllers/ProductController.php

@@ -57,6 +57,7 @@ class ProductController extends Controller
 
     public function index(Request $request)
     {
+        session(['gp_catalog' => $request->query()]);
         $model = new Product;
         // fill filters
         $this->createFilters($model, 'type_tz', 'type', 'certificate_id');
@@ -78,7 +79,7 @@ class ProductController extends Controller
 
     public function show(Request $request, Product $product)
     {
-        $this->data['previous_url'] = $request->get('previous_url') ?? '';
+        $this->data['previous_url'] = $request->get('previous_url');
         $this->data['product'] = $product;
         return view('catalog.edit', $this->data);
     }
@@ -92,21 +93,21 @@ class ProductController extends Controller
     public function store(StoreProductRequest $request)
     {
         Product::create($request->validated());
-        $previous_url = $request->get('previous_url') ?? route('catalog.index');
+        $previous_url = $request->get('previous_url') ?? route('catalog.index', session('gp_catalog'));
         return redirect()->to($previous_url);
     }
 
     public function update(StoreProductRequest $request, Product $product)
     {
         $product->update($request->validated());
-        $previous_url = $request->get('previous_url') ?? route('catalog.index');
+        $previous_url = $request->get('previous_url') ?? route('catalog.index', session('gp_catalog'));
         return redirect()->to($previous_url);
     }
 
     public function delete(Product $product)
     {
         $product->delete();
-        return redirect()->route('catalog.index');
+        return redirect()->route('catalog.index', session('gp_catalog'));
     }
 
     /**
@@ -127,7 +128,7 @@ class ProductController extends Controller
         // dispatch job
         ImportCatalog::dispatch($path, year(), $request->user()->id);
         Log::info('ImportCatalog job created!');
-        return redirect()->route('catalog.index')->with(['success' => 'Задача импорта успешно создана!']);
+        return redirect()->route('catalog.index', session('gp_catalog'))->with(['success' => 'Задача импорта успешно создана!']);
     }
 
     public function export(Request $request)
@@ -145,10 +146,11 @@ class ProductController extends Controller
         Log::info('ExportCatalog job created!');
 
 
-        return redirect()->route('catalog.index')->with(['success' => 'Задача экспорта успешно создана!']);
+        return redirect()->route('catalog.index', session('gp_catalog'))->with(['success' => 'Задача экспорта успешно создана!']);
     }
 
     /**
+     * ajax
      * @param Request $request
      * @return array
      */

+ 2 - 1
app/Http/Controllers/ProductSKUController.php

@@ -58,6 +58,7 @@ class ProductSKUController extends Controller
     ];
     public function index(Request $request)
     {
+        session(['gp_sku' => $request->all()]);
         $model = new ProductSKU;
 
         $this->createFilters($model, 'status', 'passport_id');
@@ -79,7 +80,7 @@ class ProductSKUController extends Controller
 
     public function update(ProductSKUStoreRequest $request, ProductSKU $product_sku)
     {
-        $url = $request->previous_url ?? route('product_sku.index');
+        $url = $request->previous_url ?? route('product_sku.index', session('gp_sku'));
 
         $product_sku->update($request->validated());
         return redirect($url);

+ 28 - 23
app/Http/Controllers/ReclamationController.php

@@ -54,6 +54,7 @@ class ReclamationController extends Controller
 
     public function index(Request $request)
     {
+        session(['gp_reclamations' => $request->all()]);
         $model = new Reclamation();
         // fill filters
         $this->createFilters($model, 'user_id', 'status_id');
@@ -82,12 +83,13 @@ class ReclamationController extends Controller
         ]);
         $skus = $request->validated('skus');
         $reclamation->skus()->attach($skus);
-        return redirect()->route('reclamations.show', $reclamation);
+        return redirect()->route('reclamations.show', ['reclamation' => $reclamation, 'previous_url' => url()->previous()]);
     }
 
-    public function show(Reclamation $reclamation)
+    public function show(Request $request, Reclamation $reclamation)
     {
         $this->data['reclamation'] = $reclamation;
+        $this->data['previous_url'] = $request->get('previous_url');
         return view('reclamations.edit', $this->data);
     }
 
@@ -95,7 +97,8 @@ class ReclamationController extends Controller
     {
         $data = $request->validated();
         $reclamation->update($data);
-        return redirect()->route('reclamations.show', $reclamation);
+        $url = $request->previous_url ?? route('reclamations.index', session('gp_reclamations'));
+        return redirect($url);
     }
 
     public function uploadPhotoBefore(Request $request, Reclamation $reclamation, FileService $fileService)
@@ -109,7 +112,7 @@ class ReclamationController extends Controller
         }
         $reclamation->photos_before()->syncWithoutDetaching($f);
 
-        return redirect()->route('reclamations.show', $reclamation);
+        return redirect()->route('reclamations.show', ['reclamation' => $reclamation, 'previous_url' => $request->get('previous_url')]);
     }
 
     public function uploadPhotoAfter(Request $request, Reclamation $reclamation, FileService $fileService)
@@ -123,23 +126,23 @@ class ReclamationController extends Controller
         }
         $reclamation->photos_after()->syncWithoutDetaching($f);
 
-        return redirect()->route('reclamations.show', $reclamation);
+        return redirect()->route('reclamations.show', ['reclamation' => $reclamation, 'previous_url' => $request->get('previous_url')]);
     }
 
-    public function deletePhotoBefore(Reclamation $reclamation, File $file, FileService $fileService)
+    public function deletePhotoBefore(Request $request, Reclamation $reclamation, File $file, FileService $fileService)
     {
         $reclamation->photos_before()->detach($file);
         Storage::disk('public')->delete($file->path);
         $file->delete();
-        return redirect()->route('reclamations.show', $reclamation);
+        return redirect()->route('reclamations.show', ['reclamation' => $reclamation, 'previous_url' => $request->get('previous_url')]);
     }
 
-    public function deletePhotoAfter(Reclamation $reclamation, File $file, FileService $fileService)
+    public function deletePhotoAfter(Request $request, Reclamation $reclamation, File $file, FileService $fileService)
     {
         $reclamation->photos_after()->detach($file);
         Storage::disk('public')->delete($file->path);
         $file->delete();
-        return redirect()->route('reclamations.show', $reclamation);
+        return redirect()->route('reclamations.show', ['reclamation' => $reclamation, 'previous_url' => $request->get('previous_url')]);
     }
 
     public function uploadDocument(Request $request, Reclamation $reclamation, FileService $fileService)
@@ -153,15 +156,15 @@ class ReclamationController extends Controller
         }
         $reclamation->documents()->syncWithoutDetaching($f);
 
-        return redirect()->route('reclamations.show', $reclamation);
+        return redirect()->route('reclamations.show', ['reclamation' => $reclamation, 'previous_url' => $request->get('previous_url')]);
     }
 
-    public function deleteDocument(Reclamation $reclamation, File $file)
+    public function deleteDocument(Request $request, Reclamation $reclamation, File $file)
     {
         $reclamation->documents()->detach($file);
         Storage::disk('public')->delete($file->path);
         $file->delete();
-        return redirect()->route('reclamations.show', $reclamation);
+        return redirect()->route('reclamations.show', ['reclamation' => $reclamation, 'previous_url' => $request->get('previous_url')]);
     }
 
     public function uploadAct(Request $request, Reclamation $reclamation, FileService $fileService)
@@ -175,15 +178,15 @@ class ReclamationController extends Controller
         }
         $reclamation->acts()->syncWithoutDetaching($f);
 
-        return redirect()->route('reclamations.show', $reclamation);
+        return redirect()->route('reclamations.show', ['reclamation' => $reclamation, 'previous_url' => $request->get('previous_url')]);
     }
 
-    public function deleteAct(Reclamation $reclamation, File $file)
+    public function deleteAct(Request $request, Reclamation $reclamation, File $file)
     {
         $reclamation->acts()->detach($file);
         Storage::disk('public')->delete($file->path);
         $file->delete();
-        return redirect()->route('reclamations.show', $reclamation);
+        return redirect()->route('reclamations.show', ['reclamation' => $reclamation, 'previous_url' => $request->get('previous_url')]);
     }
 
     public function updateDetails(StoreReclamationDetailsRequest $request, Reclamation $reclamation)
@@ -208,25 +211,27 @@ class ReclamationController extends Controller
                     ->delete();
             }
         }
-        return redirect()->route('reclamations.show', $reclamation);
+        return redirect()->route('reclamations.show', ['reclamation' => $reclamation, 'previous_url' => $request->get('previous_url')]);
     }
 
-    public function generateReclamationPack(Reclamation $reclamation)
+    public function generateReclamationPack(Request $request, Reclamation $reclamation)
     {
         GenerateReclamationPack::dispatch($reclamation, auth()->user()->id);
-        return redirect()->route('reclamations.show', $reclamation)->with(['success' => 'Задача генерации документов создана!']);
+        return redirect()->route('reclamations.show', ['reclamation' => $reclamation, 'previous_url' => $request->get('previous_url')])
+            ->with(['success' => 'Задача генерации документов создана!']);
     }
 
-    public function generatePhotosBeforePack(Reclamation $reclamation)
+    public function generatePhotosBeforePack(Request $request, Reclamation $reclamation)
     {
         GenerateFilesPack::dispatch($reclamation, $reclamation->photos_before, auth()->user()->id, 'Фото проблемы');
-        return redirect()->back()->with(['success' => 'Задача архивации создана!']);
+        return redirect()->route('reclamations.show', ['reclamation' => $reclamation, 'previous_url' => $request->get('previous_url')])
+            ->with(['success' => 'Задача архивации создана!']);
     }
 
-    public function generatePhotosAfterPack(Reclamation $reclamation)
+    public function generatePhotosAfterPack(Request $request, Reclamation $reclamation)
     {
         GenerateFilesPack::dispatch($reclamation, $reclamation->photos_after, auth()->user()->id, 'Фото после');
-        return redirect()->back()->with(['success' => 'Задача архивации создана!']);
-    }
+        return redirect()->route('reclamations.show', ['reclamation' => $reclamation, 'previous_url' => $request->get('previous_url')])
+            ->with(['success' => 'Задача архивации создана!']);    }
 
 }

+ 7 - 7
resources/views/layouts/menu.blade.php

@@ -1,25 +1,25 @@
 @if(auth()->check())
-    <li class="nav-item"><a class="nav-link @if($active == 'orders') active @endif" href="{{ route('order.index') }}">Площадки</a>
+    <li class="nav-item"><a class="nav-link @if($active == 'orders') active @endif" href="{{ route('order.index', session('gp_orders')) }}">Площадки</a>
     </li>
     <li class="nav-item"><a class="nav-link @if($active == 'product_sku') active @endif"
-                            href="{{ route('product_sku.index') }}">МАФ</a></li>
+                            href="{{ route('product_sku.index', session('gp_sku')) }}">МАФ</a></li>
     <li class="nav-item"><a class="nav-link @if($active == 'maf_order') active @endif"
-                            href="{{ route('maf_order.index') }}">Заказы МАФ</a></li>
+                            href="{{ route('maf_order.index', session('gp_maf_order')) }}">Заказы МАФ</a></li>
     <li class="nav-item"><a class="nav-link @if($active == 'reclamations') active @endif"
-                            href="{{ route('reclamations.index') }}">Рекламации</a></li>
+                            href="{{ route('reclamations.index', session('gp_reclamations')) }}">Рекламации</a></li>
 
     <li class="nav-item"><a class="nav-link @if($active == 'catalog') active @endif"
-                            href="{{ route('catalog.index') }}">Каталог</a></li>
+                            href="{{ route('catalog.index', session('gp_catalog')) }}">Каталог</a></li>
 
     @if(hasrole('admin'))
-        <li class="nav-item"><a class="nav-link @if($active == 'contracts') active @endif"
-                                href="{{ route('contract.index') }}">Договоры</a></li>
+
         <li class="nav-item dropdown">
             <a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown"
                aria-haspopup="true" aria-expanded="false">
                 Администрирование
             </a>
             <ul class="dropdown-menu dropdown-menu-end">
+                <li class="dropdown-item"><a class="nav-link" href="{{ route('contract.index') }}">Договоры</a></li>
                 <li class="dropdown-item"><a class="nav-link" href="{{ route('user.index') }}">Пользователи</a></li>
                 <li class="dropdown-item"><a class="nav-link" href="{{ route('responsible.index') }}">Ответственные</a>
                 </li>

+ 2 - 2
resources/views/orders/show.blade.php

@@ -30,7 +30,7 @@ use App\Models\Order;
                 @if($order->canCreateHandover())
                     <a href="{{ route('order.generate-handover-pack', $order) }}" class="btn btn-primary">Документы для сдачи</a>
                 @endif
-                <a href="{{ $previous_url ?? route('order.index') }}" class="btn btn-outline-secondary">Назад</a>
+                <a href="{{ $previous_url ?? route('order.index', session('gp_orders')) }}" class="btn btn-outline-secondary">Назад</a>
 
             </div>
         </div>
@@ -57,7 +57,7 @@ use App\Models\Order;
                     Рекламации
                     @foreach($order->reclamations as $reclamation)
                         <div>
-                            <a href="{{ route('reclamations.show', $reclamation) }}">
+                            <a href="{{ route('reclamations.show', ['reclamation' => $reclamation, 'previous_url' => url()->current()]) }}">
                                 Рекламация № {{ $reclamation->id }} от {{ $reclamation->create_date }}
                             </a>
                         </div>

+ 1 - 1
resources/views/reclamations/edit.blade.php

@@ -18,6 +18,7 @@
 
                     @csrf
                     <input type="hidden" id="order_id" name="order_id" value="{{ $reclamation->order_id}}">
+                    <input type="text" name="previous_url" value="{{ $previous_url ?? '' }}">
 
                     @include('partials.input', ['name' => 'order_name', 'title' => 'Площадка', 'disabled' => true, 'value' => $reclamation->order->common_name ?? ''])
                     @include('partials.select', ['name' => 'status_id', 'title' => 'Статус', 'options' => $statuses, 'value' => $reclamation->status_id ?? old('status_id')])
@@ -27,7 +28,6 @@
                     @include('partials.select', ['name' => 'reason', 'title' => 'Причина', 'size' => 6, 'value' => $reclamation->reason ?? '', 'options' => ['Вандализм', 'Гарантия', 'Сервисное обслуживание'], 'key_as_val' => true])
                     @include('partials.textarea', ['name' => 'guarantee', 'title' => 'Гарантии', 'size' => 6, 'value' => $reclamation->guarantee ?? ''])
                     @include('partials.textarea', ['name' => 'whats_done', 'title' => 'Что сделано', 'size' => 6, 'value' => $reclamation->whats_done ?? ''])
-                    <input type="hidden" name="redirect_url" value="{{ url()->previous() }}">
                     @include('partials.submit', ['name' => 'Сохранить', 'offset' => 5])
                 </form>
             </div>