From 9d5cd27575465bbc694a5d17e14e4c4249a6a273 Mon Sep 17 00:00:00 2001 From: Minaev Dmitriy Date: Wed, 31 Oct 2018 16:06:38 +0300 Subject: [PATCH] New save mechanic --- .../Api/PredefinedKitsController.php | 12 +- .../Kits/PredefinedKitsController.php | 163 ++++++++++++---- app/Http/Controllers/ModalController.php | 7 + .../PredefinedKitsTransformer.php | 72 +++++++ app/Models/PredefinedKit.php | 106 +++++++++++ app/Models/SnipeItPivot.php | 11 ++ app/Presenters/PredefinedKitPresenter.php | 178 ++++++++++++++++++ resources/views/kits/create.blade.php | 10 + resources/views/kits/edit.blade.php | 18 +- resources/views/kits/index.blade.php | 24 ++- resources/views/kits/model-edit.blade.php | 58 ++++++ resources/views/modals/kit-model.blade.php | 38 ++++ .../views/partials/bootstrap-table.blade.php | 73 ++----- routes/web.php | 2 + routes/web/kits.php | 41 ++-- 15 files changed, 685 insertions(+), 128 deletions(-) create mode 100644 app/Http/Transformers/PredefinedKitsTransformer.php create mode 100644 app/Models/PredefinedKit.php create mode 100644 app/Models/SnipeItPivot.php create mode 100644 app/Presenters/PredefinedKitPresenter.php create mode 100644 resources/views/kits/create.blade.php create mode 100644 resources/views/kits/model-edit.blade.php create mode 100644 resources/views/modals/kit-model.blade.php diff --git a/app/Http/Controllers/Api/PredefinedKitsController.php b/app/Http/Controllers/Api/PredefinedKitsController.php index 72b99aa97..03740bfc3 100644 --- a/app/Http/Controllers/Api/PredefinedKitsController.php +++ b/app/Http/Controllers/Api/PredefinedKitsController.php @@ -36,7 +36,7 @@ class PredefinedKitsController extends Controller $total = $kits->count(); $kits = $kits->skip($offset)->take($limit)->get(); - return (new PredefinedKitsTransformer)->transformPrdefinedKits($kits, $total); + return (new PredefinedKitsTransformer)->transformPredefinedKits($kits, $total); } @@ -74,7 +74,7 @@ class PredefinedKitsController extends Controller { $this->authorize('view', PredefinedKit::class); $kit = PredefinedKit::findOrFail($id); - return (new PredefinedKitsTransformer)->transformPrdefinedKit($kit); + return (new PredefinedKitsTransformer)->transformPredefinedKit($kit); } @@ -247,16 +247,20 @@ class PredefinedKitsController extends Controller */ public function storeModel(Request $request, $kit_id) { + //return response()->json(Helper::formatStandardApiResponse('error', 'string11', dd($request))); // TODO: trans + $this->authorize('update', PredefinedKit::class); $kit = PredefinedKit::findOrFail($kit_id); + $quantity = $request->input('quantity', 1); if( $quantity < 1) { $quantity = 1; } + //echo $request->get('model'); $kit->models()->attach( $request->get('model'), ['quantity' => $quantity]); - - return response()->json(Helper::formatStandardApiResponse('success', $kit, 'License added successfull')); // TODO: trans + + return response()->json(Helper::formatStandardApiResponse('success', $kit, 'Model added successfull')); // TODO: trans } /** diff --git a/app/Http/Controllers/Kits/PredefinedKitsController.php b/app/Http/Controllers/Kits/PredefinedKitsController.php index 36ebb27d5..93c64553f 100644 --- a/app/Http/Controllers/Kits/PredefinedKitsController.php +++ b/app/Http/Controllers/Kits/PredefinedKitsController.php @@ -1,5 +1,5 @@ authorize('create', PredefinedKit::class); - return view('kits/edit')->with('item', new PredefinedKit); + return view('kits/create')->with('item', new PredefinedKit); } /** @@ -83,7 +88,7 @@ class PredefinedKitsController extends Controller if(!$success) { return redirect()->back()->withInput()->withErrors($kit->getErrors()); } - return redirect()->route("models.index")->with('success', 'Kit was successfully created.'); // TODO: trans() + return redirect()->route("kits.index")->with('success', 'Kit was successfully created.'); // TODO: trans() } /** @@ -91,13 +96,13 @@ class PredefinedKitsController extends Controller * * @author [A. Gianotto] [] * @since [v1.0] - * @param int $kitId + * @param int $kit_id * @return View */ - public function edit($kitId = null) + public function edit($kit_id = null) { $this->authorize('update', PredefinedKit::class); - if ($kit = PredefinedKit::find($kitId)) { + if ($kit = PredefinedKit::find($kit_id)) { return view('kits/edit') ->with('item', $kit) ->with('models', $kit->models) @@ -113,40 +118,21 @@ class PredefinedKitsController extends Controller * * @author [A. Gianotto] [] * @since [v1.0] - * @param int $kitId + * @param int $kit_id * @return Redirect */ - public function update(ImageUploadRequest $request, $kitId = null) + public function update(ImageUploadRequest $request, $kit_id = null) { $this->authorize('update', PredefinedKit::class); // Check if the kit exists - if (is_null($kit = PredefinedKit::find($kitId))) { + if (is_null($kit = PredefinedKit::find($kit_id))) { // Redirect to the kits management page return redirect()->route('kits.index')->with('error','Kit does not exist'); // TODO: trans } $kit->name = $request->input('name'); - - // update models - $new_model_ids = $request->input('models'); - $old_model_ids = $kit->models()->pluck('id'); // METODO: проверить - // для получения ид надо что-то такое https://stackoverflow.com/questions/34308169/eloquent-orm-laravel-5-get-array-of-ids - // project built on Laravel 5.4 - list($add_model_ids, $remove_model_ids) = $this->getAddingDeletingElements($new_model_ids, $old_model_ids); // METODO: тут ошибка, надо именно ид-шки получать, а не сами модели - - $new_licence_ids = $request->input('licences'); - $old_licence_ids = $kit->licences()->pluck('id'); // METODO: проверить - list($add_licence_ids, $remove_licence_ids) = $this->getAddingDeletingElements($new_licence_ids, $old_licence_ids); - - $success = DB::transaction(function() use($kit, $add_models, $remove_models, $add_licences, $remove_licences) { - $kit->models()->detach($remove_models); - $kit->models()->attach($add_models); - $kit->licenses()->detach($remove_licenses); - $kit->licenses()->attach($add_licenses); - return $kit->save(); - }); - - if ($success) { + + if ($kit->save()) { return redirect()->route("kits.index")->with('success', 'Kit was successfully updated'); // TODO: trans } return redirect()->back()->withInput()->withErrors($kit->getErrors()); @@ -158,14 +144,14 @@ class PredefinedKitsController extends Controller * * @author [A. Gianotto] [] * @since [v1.0] - * @param int $kitId + * @param int $kit_id * @return Redirect */ - public function destroy($kitId) + public function destroy($kit_id) { $this->authorize('delete', PredefinedKit::class); // Check if the kit exists - if (is_null($kit = PredefinedKit::find($kitId))) { + if (is_null($kit = PredefinedKit::find($kit_id))) { return redirect()->route('kits.index')->with('error', 'Kit not found'); // TODO: trans } @@ -180,28 +166,123 @@ class PredefinedKitsController extends Controller } /** - * Get the model information to present to the model view page + * Get the kit information to present to the kit view page * * @author [A. Gianotto] [] * @since [v1.0] * @param int $modelId * @return View */ - public function show($modelId = null) + public function show($kit_id = null) { - $this->authorize('view', AssetModel::class); - $model = AssetModel::withTrashed()->find($modelId); + $this->authorize('view', PredefinedKit::class); + $kit = PredefinedKit::find($kit_id); - if (isset($model->id)) { - return view('models/view', compact('model')); + if (isset($kit->id)) { + return view('kits/view', compact('kit')); } // Prepare the error message - $error = trans('admin/models/message.does_not_exist', compact('id')); + $error = 'Kit does not exist.'; // TODO: trans // Redirect to the user management page - return redirect()->route('models.index')->with('error', $error); + return redirect()->route('kits.index')->with('error', $error); } + + /** + * Returns a view containing the Predefined Kit edit form. + * + * @author [A. Gianotto] [] + * @since [v1.0] + * @param int $kit_id + * @return View + */ + public function editModel($kit_id, $model_id) + { + $this->authorize('update', PredefinedKit::class); + if ( ($kit = PredefinedKit::find($kit_id)) + && ($model = $kit->models()->find($model_id)) ) { + // $item = $model->pivot; + // $item->name1 = 'tesn1'; + // dd($item); + //dd($model->pivot); + // $item = $model->pivot; + + return view('kits/model-edit', [ + 'kit' => $kit, + 'model' => $model, + 'item' => $model->pivot + ]); + } + return redirect()->route('kits.index')->with('error', 'Kit does not exist'); // TODO: trans + } + + /** + * Get the kit information to present to the kit view page + * + * @author [A. Gianotto] [] + * @since [v1.0] + * @param int $modelId + * @return View + */ + public function updateModel(Request $request, $kit_id) { + $this->authorize('update', PredefinedKit::class); + if (is_null($kit = PredefinedKit::find($kit_id))) { + // Redirect to the kits management page + return redirect()->route('kits.index')->with('error','Kit does not exist'); // TODO: trans + } + //return view('kits/create-model')->with('item', $kit); + + + // $quantity = $request->input('quantity', 1); + // if( $quantity < 1) { + // $quantity = 1; + // } + + $validator = \Validator::make($request->all(), $kit->modelRules); + if ($validator->fails()) { + return redirect()->back()->withInput()->withErrors($validator); + } + // $kit->models()->sync([$request->input('model_id') => ['quantity' => $request->input('quantity')]]); + // $kit->models()->updateExistingPivot($request->input('pivot_id'), ['model_id' => $request->input('model_id'), 'quantity' => $request->input('quantity')]); + // $s = [$request->input('pivot_id') => ['model_id' => $request->input('model_id'), 'quantity' => $request->input('quantity')]]; + //dd($s); + // $changes = $kit->models()->syncWithoutDetaching([$request->input('pivot_id') => ['model_id' => $request->input('model_id'), 'quantity' => $request->input('quantity')]]); + // $changes = $kit->models()->syncWithoutDetaching(['1' => ['model_id' => '2', 'quantity' => '35']]); + $pivot = $kit->models()->wherePivot('id', $request->input('pivot_id'))->first()->pivot; + // $pivot = $kit->models()->newPivotStatement()->find('1'); + // $ret = $kit->models()->newPivotStatement()->find('1'); + $pivot->model_id = $request->input('model_id'); + $pivot->quantity = $request->input('quantity'); + $pivot->save(); + + // return $this->edit($kit_id)->with('success', 'Model updated successfully.'); + return redirect()->route('kits.edit', $kit_id)->with('success', 'Model updated successfully.'); // TODO: trans + } + + /** + * Get the kit information to present to the kit view page + * + * @author [A. Gianotto] [] + * @since [v1.0] + * @param int $modelId + * @return View + */ + public function detachModel($kit_id, $model_id) { + $this->authorize('update', PredefinedKit::class); + if (is_null($kit = PredefinedKit::find($kit_id))) { + // Redirect to the kits management page + return redirect()->route('kits.index')->with('error','Kit does not exist'); // TODO: trans + } + + // Delete childs + $kit->models()->detach($model_id); + + // Redirect to the kit management page + return redirect()->route('kits.index')->with('success', 'Kit was successfully deleted'); // TODO: trans + } + + /** * Returns true if a fieldset is set, 'add default values' is ticked and if * any default values were entered into the form. diff --git a/app/Http/Controllers/ModalController.php b/app/Http/Controllers/ModalController.php index c55ad04a4..791d342a8 100644 --- a/app/Http/Controllers/ModalController.php +++ b/app/Http/Controllers/ModalController.php @@ -36,4 +36,11 @@ class ModalController extends Controller return view('modals.manufacturer'); } + function kitModel() { + return view('modals.kit-model'); + } + + function kitLicense() { + return view('modals.kit-license'); + } } diff --git a/app/Http/Transformers/PredefinedKitsTransformer.php b/app/Http/Transformers/PredefinedKitsTransformer.php new file mode 100644 index 000000000..9efa11fc4 --- /dev/null +++ b/app/Http/Transformers/PredefinedKitsTransformer.php @@ -0,0 +1,72 @@ +transformDatatables($array, $total); + } + + public function transformPredefinedKit (PredefinedKit $kit) + { + $array = [ + 'id' => (int) $kit->id, + 'name' => e($kit->name) + ]; + + $permissions_array['available_actions'] = [ + 'update' => Gate::allows('update', PredefinedKit::class), + 'delete' => Gate::allows('delete', PredefinedKit::class), + // 'clone' => Gate::allows('create', PredefinedKit::class), + // 'restore' => Gate::allows('create', PredefinedKit::class), + ]; + + $array += $permissions_array; + return $array; + } + + public function transformElements(Collection $elements, $total) { + $array = array(); + foreach ($elements as $element) { + $array[] = self::transformElement($element); + } + return (new DatatablesTransformer)->transformDatatables($array, $total); + } + + public function transformElement(SnipeModel $element) { + $array = [ + 'id' => (int) $element->id, + 'pivot_id' => (int) $element->pivot->id, + 'owner_id' => (int) $element->pivot->kit_id, + 'quantity' => (int) $element->pivot->quantity, + 'name' => e($element->name) + ]; + + $permissions_array['available_actions'] = [ + 'update' => Gate::allows('update', PredefinedKit::class), + 'delete' => Gate::allows('delete', PredefinedKit::class), + ]; + + $array += $permissions_array; + return $array; + } + + public function transformPredefinedKitsDatatable($kits) { + return (new DatatablesTransformer)->transformDatatables($kits); + } + + +} diff --git a/app/Models/PredefinedKit.php b/app/Models/PredefinedKit.php new file mode 100644 index 000000000..5f2b46f4c --- /dev/null +++ b/app/Models/PredefinedKit.php @@ -0,0 +1,106 @@ + 'required|min:1|max:255|unique' + ); + + use ValidatingTrait; + + public $modelRules = [ + 'model_id' => 'required|exists:models,id', + 'quantity' => 'required|integer|min:1', + 'pivot_id' => 'integer|exists:kits_models,id' + ]; + + public $licenseRules = [ + 'license_id' => 'required|exists:licenses,id', + 'quantity' => 'required|integer|min:1', + 'pivot_id' => 'integer|exists:kits_licenses,id' + ]; + + + /** + * The attributes that are mass assignable. + * + * @var array + */ + protected $fillable = [ + 'name' + ]; + + use Searchable; + + /** + * The attributes that should be included when searching the model. + * + * @var array + */ + protected $searchableAttributes = ['name']; + + /** + * The relations and their attributes that should be included when searching the model. + * + * @var array + */ + protected $searchableRelations = []; + + + /** + * Establishes the kits -> models relationship + * + * @author [A. Gianotto] [] + * @since [v2.0] + * @return \Illuminate\Database\Eloquent\Relations\Relation + */ + public function models() + { + return $this->belongsToMany('\App\Models\AssetModel', 'kits_models', 'kit_id', 'model_id')->withPivot('id', 'quantity'); + } + + /** + * Establishes the kits -> licenses relationship + * + * @author [A. Gianotto] [] + * @since [v4.3] + * @return \Illuminate\Database\Eloquent\Relations\Relation + */ + public function licenses() + { + return $this->belongsToMany('\App\Models\License', 'kits_licenses', 'kit_id', 'license_id')->withPivot('id', 'quantity'); + } + + + + /** + * ----------------------------------------------- + * BEGIN QUERY SCOPES + * ----------------------------------------------- + **/ + +} diff --git a/app/Models/SnipeItPivot.php b/app/Models/SnipeItPivot.php new file mode 100644 index 000000000..143185420 --- /dev/null +++ b/app/Models/SnipeItPivot.php @@ -0,0 +1,11 @@ + "id", + "searchable" => false, + "sortable" => true, + "switchable" => true, + "title" => trans('general.id'), + "visible" => false + ], [ + "field" => "name", + "searchable" => true, + "sortable" => true, + "title" => 'Name', // TODO: trans + "formatter" => "kitsLinkFormatter" + ] + ]; + + $layout[] = [ + "field" => "actions", + "searchable" => false, + "sortable" => false, + "switchable" => false, + "title" => trans('table.actions'), + "formatter" => "kitsActionsFormatter", + ]; + + + return json_encode($layout); + } + + + /** + * Json Column Layout for bootstrap table + * @return string + */ + public static function dataTableModels() + { + $layout = [ + [ + "field" => "id", + "searchable" => false, + "sortable" => true, + "switchable" => true, + "title" => trans('general.id'), + "visible" => false + ], [ + "field" => "pivot_id", + "searchable" => false, + "sortable" => true, + "switchable" => true, + "title" => trans('general.id'), + "visible" => false + ], [ + "field" => "owner_id", + "searchable" => false, + "sortable" => true, + "switchable" => true, + "title" => trans('general.id'), + "visible" => false + ], [ + "field" => "name", + "searchable" => true, + "sortable" => true, + "title" => 'Name', // TODO: trans + "formatter" => "modelsLinkFormatter" + ], [ + "field" => "quantity", + "searchable" => false, + "sortable" => false, + "title" => 'Quantity', // TODO: trans + ], [ + "field" => "actions", + "searchable" => false, + "sortable" => false, + "switchable" => false, + "title" => trans('table.actions'), + "formatter" => "kits_modelsActionsFormatter", + ] + ]; + + return json_encode($layout); + } + + /** + * Json Column Layout for bootstrap table + * @return string + */ + public static function dataTableLicenses() + { + $layout = [ + [ + "field" => "id", + "searchable" => false, + "sortable" => true, + "switchable" => true, + "title" => trans('general.id'), + "visible" => false + ], [ + "field" => "pivot_id", + "searchable" => false, + "sortable" => true, + "switchable" => true, + "title" => trans('general.id'), + "visible" => false + ], [ + "field" => "owner_id", + "searchable" => false, + "sortable" => true, + "switchable" => true, + "title" => trans('general.id'), + "visible" => false + ], [ + "field" => "name", + "searchable" => true, + "sortable" => true, + "title" => 'Name', // TODO: trans + "formatter" => "licensesLinkFormatter" + ], [ + "field" => "actions", + "searchable" => false, + "sortable" => false, + "switchable" => false, + "title" => trans('table.actions'), + "formatter" => "kits_licensesActionsFormatter", + ] + ]; + + return json_encode($layout); + } + + + + /** + * Link to this kit Name + * @return string + */ + public function nameUrl() + { + return (string)link_to_route('kits.show', $this->name, $this->id); + } + + /** + * Link to this kit Name + * @return string + */ + public function fullName() + { + return $this->name; + } + + /** + * Url to view this item. + * @return string + */ + public function viewUrl() + { + return route('kits.show', $this->id); + } +} diff --git a/resources/views/kits/create.blade.php b/resources/views/kits/create.blade.php new file mode 100644 index 000000000..4be2bb5dc --- /dev/null +++ b/resources/views/kits/create.blade.php @@ -0,0 +1,10 @@ +@extends('layouts/edit-form', [ + 'createText' => 'Create kit', + 'updateText' => 'Update kit', + 'formAction' => ($item) ? route('kits.update', ['kit' => $item->id]) : route('kits.store'), +]) + +{{-- Page content --}} +@section('inputFields') +@include ('partials.forms.edit.name', ['translated_name' => 'Name']) {{-- TODO: trans --}} +@stop \ No newline at end of file diff --git a/resources/views/kits/edit.blade.php b/resources/views/kits/edit.blade.php index d16d63e11..6e6ab8742 100644 --- a/resources/views/kits/edit.blade.php +++ b/resources/views/kits/edit.blade.php @@ -6,7 +6,7 @@ {{-- Page content --}} @section('inputFields') -@include ('partials.forms.edit.name') +@include ('partials.forms.edit.name', ['translated_name' => 'Name']) {{-- TODO: trans --}} @stop @section('content') @@ -15,13 +15,14 @@
-

Models

+ {{--

Models Append

--}} +

Models

@@ -54,7 +56,7 @@ +@stop + +@section('moar_scripts') +@include ('partials.bootstrap-table') @stop \ No newline at end of file diff --git a/resources/views/kits/index.blade.php b/resources/views/kits/index.blade.php index c5e492f7b..6cf41e73f 100644 --- a/resources/views/kits/index.blade.php +++ b/resources/views/kits/index.blade.php @@ -21,7 +21,7 @@ Kits
+ {{--

Test

+
+ +
+
--}} diff --git a/resources/views/kits/model-edit.blade.php b/resources/views/kits/model-edit.blade.php new file mode 100644 index 000000000..7a283c580 --- /dev/null +++ b/resources/views/kits/model-edit.blade.php @@ -0,0 +1,58 @@ +@extends('layouts/edit-form', [ + 'createText' => 'Append model', // TODO: trans + 'updateText' => 'Update appended model', // TODO: trans + 'formAction' => ($item) ? route('kits.models.update', ['kit_id' => $kit->id, 'model_id' => $item->model_id]) : route('kits.models.store', ['kit_id' => $kit->id]), +]) + +{{-- Page content --}} +@section('inputFields') +{{--
+ +
+ + @if ($model_id = Input::old('model_id', (isset($item)) ? $item->model_id : '')) + + @else + + @endif + + +
+
+ @can('create', \App\Models\AssetModel::class) + @if ((!isset($hide_new)) || ($hide_new!='true')) + New + + @endif + @endcan +
+ + {!! $errors->first('model_id', '
:message
') !!} +
--}} +
+ +
+
+ +
+ {!! $errors->first('quantity', ' :message') !!} +
+
+ + +{{-- --}} + +@stop diff --git a/resources/views/modals/kit-model.blade.php b/resources/views/modals/kit-model.blade.php new file mode 100644 index 000000000..4f90f2572 --- /dev/null +++ b/resources/views/modals/kit-model.blade.php @@ -0,0 +1,38 @@ +{{-- See snipeit_modals.js for what powers this --}} + diff --git a/resources/views/partials/bootstrap-table.blade.php b/resources/views/partials/bootstrap-table.blade.php index e96f88d1a..28f93dad7 100644 --- a/resources/views/partials/bootstrap-table.blade.php +++ b/resources/views/partials/bootstrap-table.blade.php @@ -150,22 +150,26 @@ } // Make the edit/delete buttons - function genericActionsFormatter(destination) { + function genericActionsFormatter(owner_name, element_name = '') { return function (value,row) { var actions = ''; // Add some overrides for any funny urls we have - var dest = destination; + var dest = owner_name; - if (destination=='groups') { + if (dest =='groups') { var dest = 'admin/groups'; } - if (destination=='maintenances') { + if (dest =='maintenances') { var dest = 'hardware/maintenances'; } + if(element_name != '') { + dest = dest + '/' + row.owner_id + '/' + element_name; + } + if ((row.available_actions) && (row.available_actions.clone === true)) { actions += ' '; } @@ -195,52 +199,6 @@ }; } - // This only works for model index pages because it uses the row's model ID - function genericChildActionsFormatter(parent, child) { - return function (value,row) { - - var actions = ''; - - // Add some overrides for any funny urls we have - var dest = destination; - - if (destination=='groups') { - var dest = 'admin/groups'; - } - - if (destination=='maintenances') { - var dest = 'hardware/maintenances'; - } - - if ((row.available_actions) && (row.available_actions.clone === true)) { - actions += ' '; - } - - if ((row.available_actions) && (row.available_actions.update === true)) { - actions += ' '; - } - - if ((row.available_actions) && (row.available_actions.delete === true)) { - actions += '' - + ' '; - } else { - actions += ' '; - } - - if ((row.available_actions) && (row.available_actions.restore === true)) { - actions += ' '; - } - - actions +=''; - return actions; - - }; - } - // This handles the icons and display of polymorphic entries function polymorphicItemFormatter(value) { @@ -370,10 +328,7 @@ 'depreciations', 'fieldsets', 'groups', - 'kits', - // METODO: проверить, что эти пути работают - 'kits.models', - 'kits.licenses', + 'kits' ]; for (var i in formatters) { @@ -383,15 +338,15 @@ window[formatters[i] + 'InOutFormatter'] = genericCheckinCheckoutFormatter(formatters[i]); } - var childFormatters = [ + var child_formatters = [ ['kits', 'models'], ['kits', 'licenses'], ]; - for (var i in childFormatters) { - var parentName = childFormatters[i][0]; - var childName = childFormatters[i][2]; - window[childFormatters[i][0] + 'ChildsActionsFormatter'] = genericChildActionsFormatter(childFormatters[i][0], childFormatters[i][1]); + for (var i in child_formatters) { + var owner_name = child_formatters[i][0]; + var child_name = child_formatters[i][1]; + window[owner_name + '_' + child_name + 'ActionsFormatter'] = genericActionsFormatter(owner_name, child_name); } diff --git a/routes/web.php b/routes/web.php index f59362c76..827088ed8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -87,6 +87,8 @@ Route::group(['middleware' => 'auth','prefix' => 'modals'], function () { 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']); }); /* diff --git a/routes/web/kits.php b/routes/web/kits.php index cecd86f59..204af83f8 100644 --- a/routes/web/kits.php +++ b/routes/web/kits.php @@ -1,7 +1,7 @@ ['auth'], 'parameters' => ['kit' => 'kit_id'] ]); @@ -10,12 +10,12 @@ Route::resource('kit', 'Kits\PredefinedKitController', [ Route::group([ 'prefix' => 'kits/{kit_id}', 'middleware' => ['auth'] ], function () { - Route::get('licenses', - [ - 'as' => 'kits.licenses.index', - 'uses' => 'Kits\PredefinedKitsController@indexLicenses', - ] - ); + // Route::get('licenses', + // [ + // 'as' => 'kits.licenses.index', + // 'uses' => 'Kits\PredefinedKitsController@indexLicenses', + // ] + // ); Route::post('licenses', [ @@ -33,18 +33,18 @@ Route::group([ 'prefix' => 'kits/{kit_id}', 'middleware' => ['auth'] ], function Route::delete('licenses/{license_id}', [ - 'as' => 'kits.licenses.destroy', - 'uses' => 'Kits\PredefinedKitsController@destroyLicense', + 'as' => 'kits.licenses.detach', + 'uses' => 'Kits\PredefinedKitsController@detachLicense', ] ); - Route::get('models', - [ - 'as' => 'kits.models.index', - 'uses' => 'Kits\PredefinedKitsController@indexModels', - ] - ); + // Route::get('models', + // [ + // 'as' => 'kits.models.index', + // 'uses' => 'Kits\PredefinedKitsController@indexModels', + // ] + // ); Route::post('models', [ @@ -59,11 +59,18 @@ Route::group([ 'prefix' => 'kits/{kit_id}', 'middleware' => ['auth'] ], function 'uses' => 'Kits\PredefinedKitsController@updateModel', ] ); + + Route::get('models/{model_id}/edit', + [ + 'as' => 'kits.models.edit', + 'uses' => 'Kits\PredefinedKitsController@editModel', + ] + ); Route::delete('models/{model_id}', [ - 'as' => 'kits.models.destroy', - 'uses' => 'Kits\PredefinedKitsController@destroyModel', + 'as' => 'kits.models.detach', + 'uses' => 'Kits\PredefinedKitsController@detachModel', ] );