diff --git a/app/Http/Controllers/AssetModelsController.php b/app/Http/Controllers/AssetModelsController.php index 707d2a0c6..e2598aedc 100755 --- a/app/Http/Controllers/AssetModelsController.php +++ b/app/Http/Controllers/AssetModelsController.php @@ -394,4 +394,73 @@ class AssetModelsController extends Controller return $data; } + + + /** + * Returns a view that allows the user to bulk edit model attrbutes + * + * @author [A. Gianotto] [] + * @since [v1.7] + * @return \Illuminate\Contracts\View\View + */ + public function postBulkEdit(Request $request) + { + $models_raw_array = Input::get('ids'); + $models = AssetModel::whereIn('id', $models_raw_array)->get(); + $nochange = ['NC' => 'No Change']; + $fieldset_list = $nochange + Helper::customFieldsetList(); + $depreciation_list = $nochange + Helper::depreciationList(); + $category_list = $nochange + Helper::categoryList('asset'); + $manufacturer_list = $nochange + Helper::manufacturerList(); + + + return View::make('models/bulk-edit', compact('models')) + ->with('manufacturer_list', $manufacturer_list) + ->with('category_list', $category_list) + ->with('fieldset_list', $fieldset_list) + ->with('depreciation_list', $depreciation_list); + + } + + + + /** + * Returns a view that allows the user to bulk edit model attrbutes + * + * @author [A. Gianotto] [] + * @since [v1.7] + * @return \Illuminate\Contracts\View\View + */ + public function postBulkEditSave(Request $request) + { + + $models_raw_array = Input::get('ids'); + $update_array = array(); + + if (($request->has('manufacturer_id') && ($request->input('manufacturer_id')!='NC'))) { + $update_array['manufacturer_id'] = $request->input('manufacturer_id'); + } + if (($request->has('category_id') && ($request->input('category_id')!='NC'))) { + $update_array['category_id'] = $request->input('category_id'); + } + if ($request->input('fieldset_id')!='NC') { + $update_array['fieldset_id'] = $request->input('fieldset_id'); + } + if ($request->input('depreciation_id')!='NC') { + $update_array['depreciation_id'] = $request->input('depreciation_id'); + } + + + + if (count($update_array) > 0) { + AssetModel::whereIn('id', $models_raw_array)->update($update_array); + return redirect()->route('models.index') + ->with('success', trans('admin/models/message.bulkedit.success')); + } + + return redirect()->route('models.index') + ->with('warning', trans('admin/models/message.bulkedit.error')); + + } + } diff --git a/resources/lang/en/admin/models/message.php b/resources/lang/en/admin/models/message.php index fe51cb8d4..5b1b9a1a1 100644 --- a/resources/lang/en/admin/models/message.php +++ b/resources/lang/en/admin/models/message.php @@ -28,4 +28,9 @@ return array( 'success' => 'Model restored successfully.' ), + 'bulkedit' => array( + 'error' => 'No fields were changed, so nothing was updated.', + 'success' => 'Models updated.' + ), + ); diff --git a/resources/views/hardware/bulk-edit.blade.php b/resources/views/hardware/bulk-edit.blade.php new file mode 100644 index 000000000..e69de29bb diff --git a/resources/views/models/bulk-edit.blade.php b/resources/views/models/bulk-edit.blade.php new file mode 100644 index 000000000..13d94e64c --- /dev/null +++ b/resources/views/models/bulk-edit.blade.php @@ -0,0 +1,91 @@ +@extends('layouts/default') + +{{-- Page title --}} +@section('title') + Bulk Edit + @parent +@stop + + +@section('header_right') + + {{ trans('general.back') }} +@stop + +{{-- Page content --}} +@section('content') +
+
+ + + + +
+ {{ csrf_field() }} + +
+
+ + + + +
+ +
+ {{ Form::select('manufacturer_id', $manufacturer_list , Input::old('manufacturer_id', 'NC'), array('class'=>'select2', 'style'=>'width:350px')) }} + {!! $errors->first('manufacturer_id', ' :message') !!} +
+
+ + +
+ +
+ {{ Form::select('category_id', $category_list , Input::old('category_id', 'NC'), array('class'=>'select2', 'style'=>'width:350px')) }} + {!! $errors->first('category_id', ' :message') !!} +
+
+ + +
+ +
+ {{ Form::select('fieldset_id', $fieldset_list , Input::old('fieldset_id', 'NC'), array('class'=>'select2', 'style'=>'width:350px')) }} + {!! $errors->first('fieldset_id', ' :message') !!} +
+
+ + +
+ +
+ {{ Form::select('depreciation_id', $depreciation_list , Input::old('depreciation_id', 'NC'), array('class'=>'select2', 'style'=>'width:350px')) }} + {!! $errors->first('depreciation_id', ' :message') !!} +
+
+ + + + + + @foreach ($models as $model) + + @endforeach +
+ + +
+
+
+
+@stop diff --git a/resources/views/models/index.blade.php b/resources/views/models/index.blade.php index 290cefe73..917000c4b 100755 --- a/resources/views/models/index.blade.php +++ b/resources/views/models/index.blade.php @@ -20,21 +20,37 @@
+ {{ Form::open([ + 'method' => 'POST', + 'route' => ['models.bulkedit.index'], + 'class' => 'form-inline', + 'id' => 'bulkForm']) }} +
+
+
+ + +
+ + + + - @@ -46,6 +62,9 @@
{{ trans('general.id') }} {{ trans('general.name') }} {{ trans('admin/hardware/table.image') }} {{ trans('general.manufacturer') }}{{ trans('admin/models/table.modelnumber') }} {{ trans('admin/models/table.numassets') }} {{ trans('general.depreciation') }}
+ {{ Form::close() }} +
+
diff --git a/routes/web/models.php b/routes/web/models.php index 74b1203bf..e629307b3 100644 --- a/routes/web/models.php +++ b/routes/web/models.php @@ -8,6 +8,8 @@ Route::group([ 'prefix' => 'models', 'middleware' => ['auth'] ], function () { Route::get('{modelId}/view', [ 'as' => 'view/model', 'uses' => 'AssetModelsController@getView' ]); Route::get('{modelID}/restore', [ 'as' => 'restore/model', 'uses' => 'AssetModelsController@getRestore', 'middleware' => ['authorize:superuser'] ]); Route::get('{modelId}/custom_fields', ['as' => 'custom_fields/model','uses' => 'AssetModelsController@getCustomFields']); + Route::post('bulkedit', ['as' => 'models.bulkedit.index','uses' => 'AssetModelsController@postBulkEdit']); + Route::post('bulksave', ['as' => 'models.bulkedit.store','uses' => 'AssetModelsController@postBulkEditSave']); }); Route::resource('models', 'AssetModelsController', [