Added asset, license, user and model cloning

This commit is contained in:
Cordeos Team
2014-08-12 13:41:17 +09:00
parent 62a3ed671b
commit b1fafa7ca4
11 changed files with 146 additions and 15 deletions
+24
View File
@@ -234,6 +234,30 @@ class ModelsController extends AdminController
}
}
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);
return $view;
}
+57
View File
@@ -544,5 +544,62 @@ class UsersController extends AdminController
return Redirect::route('users')->with('error', $error);
}
}
public function getClone($id = null)
{
// We need to reverse the UI specific logic for our
// permissions here before we update the user.
$permissions = Input::get('permissions', array());
$this->decodePermissions($permissions);
app('request')->request->set('permissions', $permissions);
try {
// Get the user information
$user_to_clone = Sentry::getUserProvider()->findById($id);
$user = clone $user_to_clone;
$user->first_name = '';
$user->last_name = '';
$user->email = substr($user->email, ($pos = strpos($user->email, '@')) !== false ? $pos : 0);;
$user->id = null;
// Get this user groups
$userGroups = $user_to_clone->groups()->lists('group_id', 'name');
// Get this user permissions
$userPermissions = array_merge(Input::old('permissions', array('superuser' => -1)), $user_to_clone->getPermissions());
$this->encodePermissions($userPermissions);
// Get a list of all the available groups
$groups = Sentry::getGroupProvider()->findAll();
// Get all the available permissions
$permissions = Config::get('permissions');
$this->encodeAllPermissions($permissions);
$location_list = array('' => '') + Location::lists('name', 'id');
$manager_list = array('' => 'Select a User') + DB::table('users')
->select(DB::raw('concat(first_name," ",last_name) as full_name, id'))
->whereNull('deleted_at')
->where('id','!=',$id)
->orderBy('last_name', 'asc')
->orderBy('first_name', 'asc')
->lists('full_name', 'id');
// Show the page
return View::make('backend/users/edit', compact('groups', 'userGroups', 'permissions', 'userPermissions'))
->with('location_list',$location_list)
->with('manager_list',$manager_list)
->with('user',$user)
->with('clone_user',$user_to_clone);
} catch (UserNotFoundException $e) {
// Prepare the error message
$error = Lang::get('admin/users/message.user_not_found', compact('id'));
// Redirect to the user management page
return Redirect::route('users')->with('error', $error);
}
}
}
+2
View File
@@ -12,4 +12,6 @@ return array(
'update' => 'Update Asset Model',
'view' => 'View Asset Model',
'update' => 'Update Model',
'clone' => 'Clone Model',
'edit' => 'Edit Model',
);
+8
View File
@@ -0,0 +1,8 @@
<?php
return array(
'edit' => 'Edit User',
'clone' => 'Clone User',
);
+1
View File
@@ -25,5 +25,6 @@ return array(
'phone' => 'Phone',
'title' => 'Title',
'updateuser' => 'Update User',
'cloneuser' => 'Clone User',
'viewusers' => 'View Users',
);
+4
View File
@@ -35,6 +35,8 @@ Route::group(array('prefix' => 'hardware'), function () {
Route::post('create', 'Controllers\Admin\ModelsController@postCreate');
Route::get('{modelId}/edit', array('as' => 'update/model', 'uses' => 'Controllers\Admin\ModelsController@getEdit'));
Route::post('{modelId}/edit', 'Controllers\Admin\ModelsController@postEdit');
Route::get('{modelId}/clone', array('as' => 'clone/model', 'uses' => 'Controllers\Admin\ModelsController@getClone'));
Route::post('{modelId}/clone', 'Controllers\Admin\ModelsController@postCreate');
Route::get('{modelId}/delete', array('as' => 'delete/model', 'uses' => 'Controllers\Admin\ModelsController@getDelete'));
Route::get('{modelId}/view', array('as' => 'view/model', 'uses' => 'Controllers\Admin\ModelsController@getView'));
});
@@ -156,6 +158,8 @@ Route::group(array('prefix' => 'admin'), function () {
Route::post('create', 'Controllers\Admin\UsersController@postCreate');
Route::get('{userId}/edit', array('as' => 'update/user', 'uses' => 'Controllers\Admin\UsersController@getEdit'));
Route::post('{userId}/edit', 'Controllers\Admin\UsersController@postEdit');
Route::get('{userId}/clone', array('as' => 'clone/user', 'uses' => 'Controllers\Admin\UsersController@getClone'));
Route::post('{userId}/clone', 'Controllers\Admin\UsersController@postCreate');
Route::get('{userId}/delete', array('as' => 'delete/user', 'uses' => 'Controllers\Admin\UsersController@getDelete'));
Route::get('{userId}/restore', array('as' => 'restore/user', 'uses' => 'Controllers\Admin\UsersController@getRestore'));
Route::get('{userId}/view', array('as' => 'view/user', 'uses' => 'Controllers\Admin\UsersController@getView'));
@@ -9,13 +9,6 @@
{{-- Page content --}}
@section('content')
<!--<div class="row header">
<div class="col-md-12">
<a href="{{ route('update/license', $license->id) }}" class="btn btn-warning pull-right"> @lang('admin/licenses/form.update')</a>
<h3 class="name">@lang('general.history_for') {{ $license->name }}</h3>
</div>
</div>-->
<div class="row header">
<div class="col-md-12">
<div class="btn-group pull-right">
+27 -1
View File
@@ -12,7 +12,7 @@
{{-- Page content --}}
@section('content')
<div class="row header">
<!--<div class="row header">
<div class="col-md-12">
<a href="{{ URL::previous() }}" class="btn-flat gray pull-right"><i class="icon-circle-arrow-left icon-white"></i> @lang('general.back')</a>
<h3>
@@ -23,6 +23,32 @@
@endif
</h3>
</div>
</div>-->
<div class="row header">
<div class="col-md-12">
<div class="btn-group pull-right">
<button class="btn gray">@lang('button.actions')</button>
<button class="btn glow dropdown-toggle" data-toggle="dropdown">
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
@if ($model->id)
<li><a href="{{ route('clone/model', $model->id) }}">@lang('admin/models/table.clone')</a></li>
@endif
<li><a href="{{ URL::previous() }}">@lang('general.cancel')</a></li>
</ul>
</div>
<h3>
@if ($model->id)
@lang('admin/models/table.update')
@else
@lang('admin/models/table.create')
@endif
</h3>
</div>
</div>
<div class="row form-wrapper">
View File
+6 -4
View File
@@ -21,10 +21,12 @@
</div>
<h3>
@if ($user->id)
@lang('admin/users/table.updateuser')
{{ $user->fullName() }}
@else
@lang('admin/users/table.createuser')
@lang('admin/users/table.updateuser')
{{ $user->fullName() }}
@elseif(isset($clone_user))
@lang('admin/users/table.cloneuser')
@else
@lang('admin/users/table.createuser')
@endif
</h3>
</div>
+17 -3
View File
@@ -5,7 +5,7 @@
View User {{{ $user->fullName() }}} ::
@parent
@stop
xxx
{{-- Page content --}}
@section('content')
@@ -26,8 +26,22 @@ xxx
<a href="{{ route('restore/user', $user->id) }}" class="btn-flat white large pull-right edit"><i class="icon-pencil"></i> Restore This User</a>
@else
<a href="{{ route('update/user', $user->id) }}" class="btn btn-warning pull-right edit"><i class="icon-pencil"></i> @lang('button.edit') This User</a>
<!--<a href="{{ route('update/user', $user->id) }}" class="btn btn-warning pull-right edit"><i class="icon-pencil"></i> @lang('button.edit') This User</a>-->
<div class="row header">
<div class="btn-group pull-right">
<button class="btn gray">@lang('button.actions')</button>
<!-- Height being thrown off by sub-container -->
<button class="btn glow dropdown-toggle" style="height: 27.5" data-toggle="dropdown">
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="{{ route('update/user', $user->id) }}">@lang('admin/users/general.edit')</a></li>
<li><a href="{{ route('clone/user', $user->id) }}">@lang('admin/users/general.clone')</a></li>
</ul>
</div>
</div>
@endif
</div>
<div>All the users!</div>