diff --git a/app/Http/Controllers/Auth/Roles.php b/app/Http/Controllers/Auth/Roles.php index d371c2b83..746714d14 100644 --- a/app/Http/Controllers/Auth/Roles.php +++ b/app/Http/Controllers/Auth/Roles.php @@ -29,9 +29,21 @@ class Roles extends Controller */ public function create() { - $permissions = Permission::all(); + $names = $permissions = []; + $allPermissions = Permission::all(); - return view('auth.roles.create', compact('permissions')); + foreach ($allPermissions as $permission) { + // permission code explode - and get permission type + $n = explode('-', $permission->name); + + if (!in_array($n[0], $names)) { + $names[] = $n[0]; + } + + $permissions[$n[0]][] = $permission; + } + + return view('auth.roles.create', compact('names', 'permissions')); } /** @@ -66,11 +78,23 @@ class Roles extends Controller public function edit(Role $role) { //$permissions = Permission::all()->sortBy('display_name'); - $permissions = Permission::all(); + $names = $permissions = []; + $allPermissions = Permission::all(); $rolePermissions = $role->permissions->pluck('id', 'id')->toArray(); - return view('auth.roles.edit', compact('role', 'permissions', 'rolePermissions')); + foreach ($allPermissions as $permission) { + // permission code explode - and get permission type + $n = explode('-', $permission->name); + + if (!in_array($n[0], $names)) { + $names[] = $n[0]; + } + + $permissions[$n[0]][] = $permission; + } + + return view('auth.roles.edit', compact('role', 'names', 'permissions', 'rolePermissions')); } /** diff --git a/public/css/app.css b/public/css/app.css index 1e3737f8f..60b091985 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -678,10 +678,54 @@ input[type="number"] { margin-top: -30px; } -.pager { - margin: inherit !important; +#role-permissions .form-group.col-md-12 .col-md-3 { + overflow: hidden; } -.pager li>a, .pager li>span { - border-radius: 3px !important; +.input-checkbox { + white-space: nowrap; +} + +.input-checkbox:after { + content: ""; + position: absolute; + right: -10px; + height: 25px; + width: 25px; + background-image: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(100%, rgba(255, 255, 255, 1))); + background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1)); + background: linear-gradient(to right, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 1)); +} + +#role-permissions .permission-select-button { + cursor: pointer; +} + +#role-permissions .permission-unselect-button { + cursor: pointer; +} + +#role-permissions .nav-tabs-custom { + margin-top: 15px; + box-shadow: 0 1px 0px rgba(0,0,0,0.1); +} + +#role-permissions .nav-tabs-custom .nav.nav-tabs { + border-style: unset; +} + +#role-permissions .nav-tabs-custom .tab-content { + padding: 0px; +} + +#role-permissions .nav-tabs-custom .tab-content .tab-pane { + block-size: 0; +} + +#role-permissions .nav-tabs-custom .tab-content .tab-pane .permission-button-group { + padding: 15px 0 0 30px; +} + +#role-permissions .nav-tabs-custom .tab-content .form-group.col-md-12 .col-md-3 .input-checkbox { + font-weight: normal; } diff --git a/resources/lang/en-GB/general.php b/resources/lang/en-GB/general.php index b87dece6e..5270aa638 100644 --- a/resources/lang/en-GB/general.php +++ b/resources/lang/en-GB/general.php @@ -104,7 +104,8 @@ return [ 'export' => 'Export', 'enable' => 'Enable', 'disable' => 'Disable', - + 'select_all' => 'Select All', + 'remove_selections' => 'Remove Selections', 'title' => [ 'new' => 'New :type', 'edit' => 'Edit :type', diff --git a/resources/views/auth/roles/create.blade.php b/resources/views/auth/roles/create.blade.php index c80961c2c..eee3b83a8 100644 --- a/resources/views/auth/roles/create.blade.php +++ b/resources/views/auth/roles/create.blade.php @@ -14,7 +14,48 @@ {{ Form::textareaGroup('description', trans('general.description')) }} - {{ Form::checkboxGroup('permissions', trans_choice('general.permissions', 2), $permissions, 'display_name') }} +