/app/controllers/admin/ModelsController.php
PHP | 291 lines | 172 code | 46 blank | 73 comment | 32 complexity | 019fbd7f752bec1a58688d4c8b58a727 MD5 | raw file
- <?php namespace Controllers\Admin;
- use AdminController;
- use Image;
- use Input;
- use Lang;
- use Model;
- use Redirect;
- use Setting;
- use Sentry;
- use DB;
- use Depreciation;
- use Manufacturer;
- use Str;
- use Validator;
- use View;
- class ModelsController extends AdminController
- {
- /**
- * Show a list of all the models.
- *
- * @return View
- */
- public function getIndex()
- {
- // Grab all the models
- $models = Model::orderBy('created_at', 'DESC')->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->depreciation_id = e(Input::get('depreciation_id'));
- $model->manufacturer_id = e(Input::get('manufacturer_id'));
- $model->category_id = e(Input::get('category_id'));
- $model->user_id = Sentry::getId();
- //$model->eol = e(Input::get('eol'));
- 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'));
- 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'));
- }
- }
- /**
- * Get the asset information to present to the model view page
- *
- * @param int $assetId
- * @return View
- **/
- public function getView($modelId = null)
- {
- $model = Model::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;
-
- }
- }