From 7ea862787c734317b3128d50ef4608418cef1e42 Mon Sep 17 00:00:00 2001
From: Daniel Meltzer <dmeltzer.devel@gmail.com>
Date: Sat, 23 May 2020 12:19:19 -0400
Subject: [PATCH] Refactor controller to use one method that shows all modals
 based on name.

---
 .gitattributes                                |  4 +-
 app/Http/Controllers/ModalController.php      | 52 ++++---------------
 resources/assets/js/snipeit_modals.js         |  2 +-
 resources/views/kits/edit.blade.php           |  8 +--
 .../views/modals/kit-accessory.blade.php      |  4 +-
 .../views/modals/kit-consumable.blade.php     |  4 +-
 resources/views/modals/kit-license.blade.php  |  4 +-
 resources/views/modals/kit-model.blade.php    |  2 +-
 .../forms/edit/category-select.blade.php      |  2 +-
 .../partials/forms/edit/kit-select.blade.php  |  2 +-
 .../forms/edit/location-select.blade.php      |  2 +-
 .../forms/edit/manufacturer-select.blade.php  |  2 +-
 .../forms/edit/model-select.blade.php         |  2 +-
 .../partials/forms/edit/status.blade.php      |  2 +-
 .../forms/edit/supplier-select.blade.php      |  2 +-
 .../partials/forms/edit/supplier.blade.php    |  2 +-
 .../partials/forms/edit/user-select.blade.php |  2 +-
 routes/web.php                                | 12 +----
 18 files changed, 35 insertions(+), 75 deletions(-)

diff --git a/.gitattributes b/.gitattributes
index 212566614..5ad9d096e 100755
--- a/.gitattributes
+++ b/.gitattributes
@@ -1 +1,3 @@
-* text=auto
\ No newline at end of file
+* text=auto
+public/js/** binary
+public/css/** binary
diff --git a/app/Http/Controllers/ModalController.php b/app/Http/Controllers/ModalController.php
index d5b993d3a..61a3cf10b 100644
--- a/app/Http/Controllers/ModalController.php
+++ b/app/Http/Controllers/ModalController.php
@@ -6,47 +6,15 @@ use App\Helpers\Helper;
 
 class ModalController extends Controller
 {
-    function location() {
-        return view('modals.location');
-    }
-
-    function model() {
-        return view('modals.model');
-    }
-
-    function statuslabel() {
-        return view('modals.statuslabel')->with('statuslabel_types', Helper::statusTypeList());
-    }
-
-    function supplier() {
-        return view('modals.supplier');
-    }
-
-    function user() {
-        return view('modals.user');
-    }
-
-    function category() {
-        return view('modals.category');
-    }
-
-    function manufacturer() {
-        return view('modals.manufacturer');
-    }
-
-    function kitModel() {
-        return view('modals.kit-model');
-    }
-
-    function kitLicense() {
-        return view('modals.kit-license');
-    }
-
-    function kitConsumable() {
-        return view('modals.kit-consumable');
-    }
-
-    function kitAccessory() {
-        return view('modals.kit-accessory');
+    function show($type, $itemId = null) {
+        $view = view("modals.${type}");
+
+        if($type == "statuslabel") {
+            $view->with('statuslabel_types', Helper::statusTypeList());
+        }
+        if(in_array($type, ['kit-model', 'kit-license', 'kit-consumable', 'kit-accessory'])) {
+            $view->with('kitId', $itemId);
+        }
+        return $view;
     }
 }
diff --git a/resources/assets/js/snipeit_modals.js b/resources/assets/js/snipeit_modals.js
index 6866802b6..f1301b03f 100644
--- a/resources/assets/js/snipeit_modals.js
+++ b/resources/assets/js/snipeit_modals.js
@@ -11,7 +11,7 @@
 
  Create a Button looking like this:
 
- <a href='{{ route('modal.user') }}' data-toggle="modal"  data-target="#createModal" data-select='assigned_to' class="btn btn-sm btn-primary">New</a>
+ <a href='{{ route('modal.show', 'user') }}' data-toggle="modal"  data-target="#createModal" data-select='assigned_to' class="btn btn-sm btn-primary">New</a>
 
  If you don't have access to Blade commands (like {{ and }}, etc), you can hard-code a URL as the 'href'
 
diff --git a/resources/views/kits/edit.blade.php b/resources/views/kits/edit.blade.php
index 791de26d8..22c584557 100644
--- a/resources/views/kits/edit.blade.php
+++ b/resources/views/kits/edit.blade.php
@@ -39,7 +39,7 @@
                 "ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"]
                 }'>
                 </table>
-                <a href="{{ route('modal.kit.model', ['kit' => $item->id]) }}" data-refresh="kitModelsTable" data-toggle="modal" data-target="#createModal" class="btn btn-primary pull-right"><i class="fa fa-plus icon-white"></i> Append</a>
+                <a href="{{ route('modal.show', ['type' => 'kit-model', 'itemId' => $item->id]) }}" data-refresh="kitModelsTable" data-toggle="modal" data-target="#createModal" class="btn btn-primary pull-right"><i class="fa fa-plus icon-white"></i> Append</a>
                 </div>
             </div> <!--.box-body-->
         </div> <!-- /.box.box-default-->
@@ -73,7 +73,7 @@
                     "ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"]
                     }'>
                     </table>
-                    <a href="{{ route('modal.kit.license', ['kit' => $item->id]) }}" data-refresh="kitLicensesTable" data-toggle="modal" data-target="#createModal" class="btn btn-primary pull-right"><i class="fa fa-plus icon-white"></i> Append{{-- TODO: trans --}}</a>
+                    <a href="{{ route('modal.show', [ 'type' => 'kit-license', 'itemId' => $item->id]) }}" data-refresh="kitLicensesTable" data-toggle="modal" data-target="#createModal" class="btn btn-primary pull-right"><i class="fa fa-plus icon-white"></i> Append{{-- TODO: trans --}}</a>
                     </div>
                 </div> <!--.box-body-->
             </div> <!-- /.box.box-default-->
@@ -107,7 +107,7 @@
                     "ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"]
                     }'>
                     </table>
-                    <a href="{{ route('modal.kit.consumable', ['kit' => $item->id]) }}" data-refresh="kitConsumablesTable" data-toggle="modal" data-target="#createModal" class="btn btn-primary pull-right"><i class="fa fa-plus icon-white"></i> Append{{-- TODO: trans --}}</a>
+                    <a href="{{ route('modal.show', ['type' => 'kit-consumable', 'itemId' => $item->id]) }}" data-refresh="kitConsumablesTable" data-toggle="modal" data-target="#createModal" class="btn btn-primary pull-right"><i class="fa fa-plus icon-white"></i> Append{{-- TODO: trans --}}</a>
                     </div>
                 </div> <!--.box-body-->
             </div> <!-- /.box.box-default-->
@@ -141,7 +141,7 @@
                     "ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"]
                     }'>
                     </table>
-                    <a href="{{ route('modal.kit.accessory', ['kit' => $item->id]) }}" data-refresh="kitAccessoriesTable" data-toggle="modal" data-target="#createModal" class="btn btn-primary pull-right"><i class="fa fa-plus icon-white"></i> Append{{-- TODO: trans --}}</a>
+                    <a href="{{ route('modal.show', ['type' => 'kit-accessory', 'itemId' => $item->id]) }}" data-refresh="kitAccessoriesTable" data-toggle="modal" data-target="#createModal" class="btn btn-primary pull-right"><i class="fa fa-plus icon-white"></i> Append{{-- TODO: trans --}}</a>
                     </div>
                 </div> <!--.box-body-->
             </div> <!-- /.box.box-default-->
diff --git a/resources/views/modals/kit-accessory.blade.php b/resources/views/modals/kit-accessory.blade.php
index 61d004f4f..6e5fd6807 100644
--- a/resources/views/modals/kit-accessory.blade.php
+++ b/resources/views/modals/kit-accessory.blade.php
@@ -7,11 +7,11 @@
             <h4 class="modal-title">Append accessory{{-- TODO: trans --}}</h4>
         </div>
         <div class="modal-body">
-            <form action="{{ route('api.kits.accessories.store', ['kit_id' => request('kit')]) }}" onsubmit="return false">
+            <form action="{{ route('api.kits.accessories.store', $kitId) }}" onsubmit="return false">
                 {{ csrf_field() }}
                 <div class="alert alert-danger" id="modal_error_msg" style="display:none">
                 </div>
-                
+
                 <div class="dynamic-form-row">
                     <div class="col-md-4 col-xs-12"><label for="modal-accessory_id">{{ trans('general.accessory') }}:
                         </label></div>
diff --git a/resources/views/modals/kit-consumable.blade.php b/resources/views/modals/kit-consumable.blade.php
index 764055b6e..bdf027557 100644
--- a/resources/views/modals/kit-consumable.blade.php
+++ b/resources/views/modals/kit-consumable.blade.php
@@ -7,11 +7,11 @@
             <h4 class="modal-title">Append consumable{{-- TODO: trans --}}</h4>
         </div>
         <div class="modal-body">
-            <form action="{{ route('api.kits.consumables.store', ['kit_id' => request('kit')]) }}" onsubmit="return false">
+            <form action="{{ route('api.kits.consumables.store', $kitId) }}" onsubmit="return false">
                 {{ csrf_field() }}
                 <div class="alert alert-danger" id="modal_error_msg" style="display:none">
                 </div>
-                
+
                 <div class="dynamic-form-row">
                     <div class="col-md-4 col-xs-12"><label for="modal-consumable_id">{{ trans('general.consumable') }}:
                         </label></div>
diff --git a/resources/views/modals/kit-license.blade.php b/resources/views/modals/kit-license.blade.php
index 2d2295648..dc2d30cf9 100644
--- a/resources/views/modals/kit-license.blade.php
+++ b/resources/views/modals/kit-license.blade.php
@@ -7,11 +7,11 @@
             <h4 class="modal-title">Append license{{-- TODO: trans --}}</h4>
         </div>
         <div class="modal-body">
-            <form action="{{ route('api.kits.licenses.store', ['kit_id' => request('kit')]) }}" onsubmit="return false">
+            <form action="{{ route('api.kits.licenses.store', $kitId) }}" onsubmit="return false">
                 {{ csrf_field() }}
                 <div class="alert alert-danger" id="modal_error_msg" style="display:none">
                 </div>
-                
+
                 <div class="dynamic-form-row">
                     <div class="col-md-4 col-xs-12"><label for="modal-license_id">{{ trans('general.license') }}:
                         </label></div>
diff --git a/resources/views/modals/kit-model.blade.php b/resources/views/modals/kit-model.blade.php
index 33b9cfd67..d994c61a9 100644
--- a/resources/views/modals/kit-model.blade.php
+++ b/resources/views/modals/kit-model.blade.php
@@ -7,7 +7,7 @@
             <h4 class="modal-title">Append model{{-- TODO: trans --}}</h4>
         </div>
         <div class="modal-body">
-            <form action="{{ route('api.kits.models.store', ['kit_id' => request('kit')]) }}" onsubmit="return false">
+            <form action="{{ route('api.kits.models.store', $kitId) }}" onsubmit="return false">
                 {{ csrf_field() }}
                 <div class="alert alert-danger" id="modal_error_msg" style="display:none">
                 </div>
diff --git a/resources/views/partials/forms/edit/category-select.blade.php b/resources/views/partials/forms/edit/category-select.blade.php
index 10f0f8c0c..36f7d284e 100644
--- a/resources/views/partials/forms/edit/category-select.blade.php
+++ b/resources/views/partials/forms/edit/category-select.blade.php
@@ -18,7 +18,7 @@
     <div class="col-md-1 col-sm-1 text-left">
         @can('create', \App\Models\Category::class)
             @if ((!isset($hide_new)) || ($hide_new!='true'))
-                <a href='{{ route('modal.category',['category_type' => isset($category_type) ? $category_type : 'assets' ]) }}' data-toggle="modal"  data-target="#createModal" data-select='category_select_id' class="btn btn-sm btn-primary">New</a>
+                <a href='{{ route('modal.show',['type' => 'category', 'category_type' => isset($category_type) ? $category_type : 'assets' ]) }}' data-toggle="modal"  data-target="#createModal" data-select='category_select_id' class="btn btn-sm btn-primary">New</a>
             @endif
         @endcan
     </div>
diff --git a/resources/views/partials/forms/edit/kit-select.blade.php b/resources/views/partials/forms/edit/kit-select.blade.php
index fdbb31de8..98941a3e8 100644
--- a/resources/views/partials/forms/edit/kit-select.blade.php
+++ b/resources/views/partials/forms/edit/kit-select.blade.php
@@ -17,7 +17,7 @@
     <div class="col-md-1 col-sm-1 text-left">
         @can('create', \App\Models\PredefinedKit::class)
             @if ((!isset($hide_new)) || ($hide_new!='true'))
-                {{--  <a href='{{ route('modal.kit') }}' data-toggle="modal"  data-target="#createModal" data-select='kit_id_select' class="btn btn-sm btn-default">New</a>  --}}
+                {{--  <a href='{{ route('modal.show, 'kit') }}' data-toggle="modal"  data-target="#createModal" data-select='kit_id_select' class="btn btn-sm btn-default">New</a>  --}}
             @endif
         @endcan
     </div>
diff --git a/resources/views/partials/forms/edit/location-select.blade.php b/resources/views/partials/forms/edit/location-select.blade.php
index 4fa0351dc..2c2e0045a 100644
--- a/resources/views/partials/forms/edit/location-select.blade.php
+++ b/resources/views/partials/forms/edit/location-select.blade.php
@@ -17,7 +17,7 @@
     <div class="col-md-1 col-sm-1 text-left">
         @can('create', \App\Models\Location::class)
             @if ((!isset($hide_new)) || ($hide_new!='true'))
-            <a href='{{ route('modal.location') }}' data-toggle="modal"  data-target="#createModal" data-select='{{ $fieldname }}_location_select' class="btn btn-sm btn-primary">New</a>
+            <a href='{{ route('modal.show', 'location') }}' data-toggle="modal"  data-target="#createModal" data-select='{{ $fieldname }}_location_select' class="btn btn-sm btn-primary">New</a>
             @endif
         @endcan
     </div>
diff --git a/resources/views/partials/forms/edit/manufacturer-select.blade.php b/resources/views/partials/forms/edit/manufacturer-select.blade.php
index fa5a858f5..17af4ac8d 100644
--- a/resources/views/partials/forms/edit/manufacturer-select.blade.php
+++ b/resources/views/partials/forms/edit/manufacturer-select.blade.php
@@ -19,7 +19,7 @@
     <div class="col-md-1 col-sm-1 text-left">
         @can('create', \App\Models\Manufacturer::class)
             @if ((!isset($hide_new)) || ($hide_new!='true'))
-                <a href='{{ route('modal.manufacturer') }}' data-toggle="modal"  data-target="#createModal" data-select='manufacturer_select_id' class="btn btn-sm btn-primary">New</a>
+                <a href='{{ route('modal.show', 'manufacturer') }}' data-toggle="modal"  data-target="#createModal" data-select='manufacturer_select_id' class="btn btn-sm btn-primary">New</a>
             @endif
         @endcan
     </div>
diff --git a/resources/views/partials/forms/edit/model-select.blade.php b/resources/views/partials/forms/edit/model-select.blade.php
index 638aabe06..6010cb492 100644
--- a/resources/views/partials/forms/edit/model-select.blade.php
+++ b/resources/views/partials/forms/edit/model-select.blade.php
@@ -18,7 +18,7 @@
     <div class="col-md-1 col-sm-1 text-left">
         @can('create', \App\Models\AssetModel::class)
             @if ((!isset($hide_new)) || ($hide_new!='true'))
-                <a href='{{ route('modal.model') }}' data-toggle="modal"  data-target="#createModal" data-select='model_select_id' class="btn btn-sm btn-primary">New</a>
+                <a href='{{ route('modal.show', 'model') }}' data-toggle="modal"  data-target="#createModal" data-select='model_select_id' class="btn btn-sm btn-primary">New</a>
                 <span class="mac_spinner" style="padding-left: 10px; color: green; display:none; width: 30px;">
                     <i class="fa fa-spinner fa-spin" aria-hidden="true"></i>
                 </span>
diff --git a/resources/views/partials/forms/edit/status.blade.php b/resources/views/partials/forms/edit/status.blade.php
index 4c657f5e6..2800ff3e2 100644
--- a/resources/views/partials/forms/edit/status.blade.php
+++ b/resources/views/partials/forms/edit/status.blade.php
@@ -8,7 +8,7 @@
     <div class="col-md-2 col-sm-2 text-left">
 
         @can('create', \App\Models\Statuslabel::class)
-            <a href='{{ route('modal.statuslabel') }}' data-toggle="modal"  data-target="#createModal" data-select='status_select_id' class="btn btn-sm btn-primary">New</a>
+            <a href='{{ route('modal.show', 'statuslabel') }}' data-toggle="modal"  data-target="#createModal" data-select='status_select_id' class="btn btn-sm btn-primary">New</a>
         @endcan
 
         <span class="status_spinner" style="padding-left: 10px; color: green; display:none; width: 30px;"><i class="fa fa-spinner fa-spin" aria-hidden="true"></i> </span>
diff --git a/resources/views/partials/forms/edit/supplier-select.blade.php b/resources/views/partials/forms/edit/supplier-select.blade.php
index 9315b8d5f..345153926 100644
--- a/resources/views/partials/forms/edit/supplier-select.blade.php
+++ b/resources/views/partials/forms/edit/supplier-select.blade.php
@@ -17,7 +17,7 @@
     <div class="col-md-1 col-sm-1 text-left">
         @can('create', \App\Models\Supplier::class)
             @if ((!isset($hide_new)) || ($hide_new!='true'))
-                <a href='{{ route('modal.supplier') }}' data-toggle="modal"  data-target="#createModal" data-select='supplier_select' class="btn btn-sm btn-primary">New</a>
+                <a href='{{ route('modal.show', 'supplier') }}' data-toggle="modal"  data-target="#createModal" data-select='supplier_select' class="btn btn-sm btn-primary">New</a>
             @endif
         @endcan
     </div>
diff --git a/resources/views/partials/forms/edit/supplier.blade.php b/resources/views/partials/forms/edit/supplier.blade.php
index 422c88707..f49c7cc34 100644
--- a/resources/views/partials/forms/edit/supplier.blade.php
+++ b/resources/views/partials/forms/edit/supplier.blade.php
@@ -6,6 +6,6 @@
         {!! $errors->first('supplier_id', '<span class="alert-msg" aria-hidden="true"><i class="fa fa-times" aria-hidden="true"></i> :message</span>') !!}
     </div>
     <div class="col-md-1 col-sm-1 text-left">
-             <a href='{{ route('modal.supplier') }}' data-toggle="modal"  data-target="#createModal" data-dependency="supplier" data-select='supplier_select_id' class="btn btn-sm btn-primary">New</a>
+             <a href='{{ route('modal.show', 'supplier') }}' data-toggle="modal"  data-target="#createModal" data-dependency="supplier" data-select='supplier_select_id' class="btn btn-sm btn-primary">New</a>
     </div>
 </div>
diff --git a/resources/views/partials/forms/edit/user-select.blade.php b/resources/views/partials/forms/edit/user-select.blade.php
index 9d30dfd1b..1b98398b8 100644
--- a/resources/views/partials/forms/edit/user-select.blade.php
+++ b/resources/views/partials/forms/edit/user-select.blade.php
@@ -17,7 +17,7 @@
     <div class="col-md-1 col-sm-1 text-left">
         @can('create', \App\Models\User::class)
             @if ((!isset($hide_new)) || ($hide_new!='true'))
-                <a href='{{ route('modal.user') }}' data-toggle="modal"  data-target="#createModal" data-select='assigned_user_select' class="btn btn-sm btn-primary">New</a>
+                <a href='{{ route('modal.show', 'user') }}' data-toggle="modal"  data-target="#createModal" data-select='assigned_user_select' class="btn btn-sm btn-primary">New</a>
             @endif
         @endcan
     </div>
diff --git a/routes/web.php b/routes/web.php
index 7ecc4b1fe..a9cf2162d 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -80,17 +80,7 @@ Route::group(['middleware' => 'auth'], function () {
 */
 
 Route::group(['middleware' => 'auth','prefix' => 'modals'], function () {
-    Route::get('location',['as' => 'modal.location','uses' => 'ModalController@location']);
-    Route::get('category',['as' => 'modal.category','uses' => 'ModalController@category']);
-    Route::get('manufacturer',['as' => 'modal.manufacturer','uses' => 'ModalController@manufacturer']);
-    Route::get('model',['as' => 'modal.model','uses' => 'ModalController@model']);
-    Route::get('statuslabel',['as' => 'modal.statuslabel','uses' => 'ModalController@statuslabel']);
-    Route::get('supplier',['as' => 'modal.supplier','uses' => 'ModalController@supplier']);
-    Route::get('user',['as' => 'modal.user','uses' => 'ModalController@user']);
-    Route::get('kit-model',['as' => 'modal.kit.model','uses' => 'ModalController@kitModel']);
-    Route::get('kit-license',['as' => 'modal.kit.license','uses' => 'ModalController@kitLicense']);
-    Route::get('kit-consumable',['as' => 'modal.kit.consumable','uses' => 'ModalController@kitConsumable']);
-    Route::get('kit-accessory',['as' => 'modal.kit.accessory','uses' => 'ModalController@kitAccessory']);
+    Route::get('{type}/{itemId?}',['as' => 'modal.show', 'uses' => 'ModalController@show']);
 });
 
 /*
-- 
GitLab