From 40003ef052ddac31b3e899b2047572c658157482 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 8 Jun 2018 21:57:39 +1000 Subject: [PATCH] Refactor User Permissions UI (#2155) --- resources/views/users/edit.blade.php | 93 ++++++++++++++++++++-------- 1 file changed, 67 insertions(+), 26 deletions(-) diff --git a/resources/views/users/edit.blade.php b/resources/views/users/edit.blade.php index cf36f72fa2a6..4832e06e6e16 100644 --- a/resources/views/users/edit.blade.php +++ b/resources/views/users/edit.blade.php @@ -53,34 +53,58 @@ ->text(trans('texts.administrator')) ->help(trans('texts.administrator_help')) !!} - @foreach (json_decode(PERMISSION_ENTITIES,1) as $permissionEntity) +
+ + + + + + + + + @foreach (json_decode(PERMISSION_ENTITIES,1) as $permissionEntity) - permissions,1); - else - $permissions = []; - ?> + permissions,1); + else + $permissions = []; + ?> - {!! Former::checkboxes('permissions[]') - ->label(ucfirst($permissionEntity)) - ->checkboxes([ - trans('texts.create') => ['id'=> 'create_' . $permissionEntity, - 'name' => 'permissions[create_' . $permissionEntity . ']', - 'value' => 'create_' . $permissionEntity . '', - 'checked' => is_array($permissions) && in_array('create_' . $permissionEntity, $permissions, FALSE) ? true : false], - - trans('texts.view') => ['id'=> 'view_' . $permissionEntity, - 'name' => 'permissions[view_' . $permissionEntity . ']', - 'value' => 'view_' . $permissionEntity . '', - 'checked' => is_array($permissions) && in_array('view_' . $permissionEntity, $permissions, FALSE) ? true : false], - - trans('texts.edit') => ['id'=> 'edit_' . $permissionEntity, - 'name' => 'permissions[edit_' . $permissionEntity . ']', - 'value' => 'edit_' . $permissionEntity . '', - 'checked' => is_array($permissions) && in_array('edit_' . $permissionEntity, $permissions, FALSE) ? true : false], - ]) !!} - @endforeach + + + + + + + @endforeach + +
{!! Former::checkbox('create') + ->text( trans('texts.create') ) + ->value('create_') + ->label(' ') + ->id('create_all') !!}{!! Former::checkbox('view') + ->text( trans('texts.view') ) + ->value('view_') + ->label(' ') + ->id('view_all') !!}{!! Former::checkbox('edit') + ->text( trans('texts.edit') ) + ->value('edit_') + ->label(' ') + ->id('edit_all') !!}
{{ ucfirst($permissionEntity) }}{!! Former::checkbox('permissions[create_' . $permissionEntity . ']') + ->label(' ') + ->value('create_' . $permissionEntity . '') + ->id('create_' . $permissionEntity . '') + ->check(is_array($permissions) && in_array('create_' . $permissionEntity, $permissions, FALSE) ? true : false) !!}{!! Former::checkbox('permissions[view_' . $permissionEntity . ']') + ->label(' ') + ->value('view_' . $permissionEntity . '') + ->id('view_' . $permissionEntity . '') + ->check(is_array($permissions) && in_array('view_' . $permissionEntity, $permissions, FALSE) ? true : false) !!}{!! Former::checkbox('permissions[edit_' . $permissionEntity . ']') + ->label(' ') + ->value('edit_' . $permissionEntity . '') + ->id('edit_' . $permissionEntity . '') + ->check(is_array($permissions) && in_array('edit_' . $permissionEntity, $permissions, FALSE) ? true : false) !!}
+
@@ -154,6 +178,23 @@ }); + $('#create_all, #view_all, #edit_all').change(function(){ + + var checked = $(this).is(':checked'); + var permission_type = $(this).val(); + + $("input[type='checkbox'][id^=" + permission_type + "]").each(function() { + + var entity = $(this).attr('id').split("_")[1].replace("]",""); //get entity name + $('#' + permission_type + entity).prop('checked', checked); //set state of edit checkbox + + if(!$('#view_' + entity).is(':checked')) { + $('#edit_' + entity).prop('checked', false); //remove checkbox value from edit dependant on View state. + } + + }); + + }); @stop