withTrashed()->Deleted(); } $models = $models->with('category','assets','depreciation')->get(); // Show the page return View::make('backend/models/index', compact('models')); } /** * Model create. * * @return View */ public function getCreate() { // Show the page $depreciation_list = array('' => 'Do Not Depreciate') + Depreciation::lists('name', 'id'); $manufacturer_list = array('' => 'Select One') + Manufacturer::lists('name', 'id'); $category_list = array('' => '') + DB::table('categories')->whereNull('deleted_at')->lists('name', 'id'); $view = View::make('backend/models/edit'); $view->with('category_list',$category_list); $view->with('depreciation_list',$depreciation_list); $view->with('manufacturer_list',$manufacturer_list); $view->with('model',new Model); return $view; } /** * Model create form processing. * * @return Redirect */ public function postCreate() { // get the POST data $new = Input::all(); // Create a new manufacturer $model = new Model; // attempt validation if ($model->validate($new)) { if ( e(Input::get('depreciation_id')) == '') { $model->depreciation_id = 0; } else { $model->depreciation_id = e(Input::get('depreciation_id')); } if ( e(Input::get('eol')) == '') { $model->eol = 0; } else { $model->eol = e(Input::get('eol')); } // Save the model data $model->name = e(Input::get('name')); $model->modelno = e(Input::get('modelno')); $model->manufacturer_id = e(Input::get('manufacturer_id')); $model->category_id = e(Input::get('category_id')); $model->user_id = Sentry::getId(); $model->show_mac_address = e(Input::get('show_mac_address', '0')); if (Input::file('image')) { $image = Input::file('image'); $file_name = str_random(25).".".$image->getClientOriginalExtension(); $path = public_path('uploads/models/'.$file_name); Image::make($image->getRealPath())->resize(300, null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->save($path); $model->image = $file_name; } // Was it created? if($model->save()) { // Redirect to the new model page return Redirect::to("hardware/models")->with('success', Lang::get('admin/models/message.create.success')); } } else { // failure $errors = $model->errors(); return Redirect::back()->withInput()->withErrors($errors); } // Redirect to the model create page return Redirect::to('hardware/models/create')->with('error', Lang::get('admin/models/message.create.error')); } /** * Model update. * * @param int $modelId * @return View */ public function getEdit($modelId = null) { // Check if the model exists if (is_null($model = Model::find($modelId))) { // Redirect to the model management page return Redirect::to('assets/models')->with('error', Lang::get('admin/models/message.does_not_exist')); } $depreciation_list = array('' => 'Do Not Depreciate') + Depreciation::lists('name', 'id'); $manufacturer_list = array('' => 'Select One') + Manufacturer::lists('name', 'id'); $category_list = array('' => '') + DB::table('categories')->lists('name', 'id'); $view = View::make('backend/models/edit', compact('model')); $view->with('category_list',$category_list); $view->with('depreciation_list',$depreciation_list); $view->with('manufacturer_list',$manufacturer_list); return $view; } /** * Model update form processing page. * * @param int $modelId * @return Redirect */ public function postEdit($modelId = null) { // Check if the model exists if (is_null($model = Model::find($modelId))) { // Redirect to the models management page return Redirect::to('admin/models')->with('error', Lang::get('admin/models/message.does_not_exist')); } //attempt to validate $validator = Validator::make(Input::all(), $model->validationRules($modelId)); if ($validator->fails()) { // The given data did not pass validation return Redirect::back()->withInput()->withErrors($validator->messages()); } // attempt validation else { if ( e(Input::get('depreciation_id')) == '') { $model->depreciation_id = 0; } else { $model->depreciation_id = e(Input::get('depreciation_id')); } if ( e(Input::get('eol')) == '') { $model->eol = 0; } else { $model->eol = e(Input::get('eol')); } // Update the model data $model->name = e(Input::get('name')); $model->modelno = e(Input::get('modelno')); $model->manufacturer_id = e(Input::get('manufacturer_id')); $model->category_id = e(Input::get('category_id')); $model->show_mac_address = e(Input::get('show_mac_address', '0')); if (Input::file('image')) { $image = Input::file('image'); $file_name = str_random(25).".".$image->getClientOriginalExtension(); $path = public_path('uploads/models/'.$file_name); Image::make($image->getRealPath())->resize(300, null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); })->save($path); $model->image = $file_name; } if (Input::get('image_delete') == 1 && Input::file('image') == "") { $model->image = NULL; } // Was it created? if($model->save()) { // Redirect to the new model page return Redirect::to("hardware/models")->with('success', Lang::get('admin/models/message.update.success')); } } // Redirect to the model create page return Redirect::to("hardware/models/$modelId/edit")->with('error', Lang::get('admin/models/message.update.error')); } /** * Delete the given model. * * @param int $modelId * @return Redirect */ public function getDelete($modelId) { // Check if the model exists if (is_null($model = Model::find($modelId))) { // Redirect to the blogs management page return Redirect::to('hardware/models')->with('error', Lang::get('admin/models/message.not_found')); } if ($model->assets->count() > 0) { // Throw an error that this model is associated with assets return Redirect::to('hardware/models')->with('error', Lang::get('admin/models/message.assoc_users')); } else { // Delete the model $model->delete(); // Redirect to the models management page return Redirect::to('hardware/models')->with('success', Lang::get('admin/models/message.delete.success')); } } public function getRestore($modelId = null) { // Get user information $model = Model::withTrashed()->find($modelId); if (isset($model->id)) { // Restore the model $model->restore(); // Prepare the success message $success = Lang::get('admin/models/message.restore.success'); // Redirect back return Redirect::back()->with('success', $success); } else { return Redirect::back()->with('error', Lang::get('admin/models/message.not_found')); } } /** * Get the asset information to present to the model view page * * @param int $assetId * @return View **/ public function getView($modelId = null) { $model = Model::withTrashed()->find($modelId); if (isset($model->id)) { return View::make('backend/models/view', compact('model')); } else { // Prepare the error message $error = Lang::get('admin/models/message.does_not_exist', compact('id')); // Redirect to the user management page return Redirect::route('models')->with('error', $error); } } public function getClone($modelId = null) { // Check if the model exists if (is_null($model_to_clone = Model::find($modelId))) { // Redirect to the model management page return Redirect::to('assets/models')->with('error', Lang::get('admin/models/message.does_not_exist')); } $model = clone $model_to_clone; $model->id = null; // Show the page $depreciation_list = array('' => 'Do Not Depreciate') + Depreciation::lists('name', 'id'); $manufacturer_list = array('' => 'Select One') + Manufacturer::lists('name', 'id'); $category_list = array('' => '') + DB::table('categories')->whereNull('deleted_at')->lists('name', 'id'); $view = View::make('backend/models/edit'); $view->with('category_list',$category_list); $view->with('depreciation_list',$depreciation_list); $view->with('manufacturer_list',$manufacturer_list); $view->with('model',$model); $view->with('clone_model',$model_to_clone); return $view; } }