mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Refactor User Permissions UI (#2155)
This commit is contained in:
parent
65ed46358b
commit
40003ef052
@ -53,34 +53,58 @@
|
|||||||
->text(trans('texts.administrator'))
|
->text(trans('texts.administrator'))
|
||||||
->help(trans('texts.administrator_help')) !!}
|
->help(trans('texts.administrator_help')) !!}
|
||||||
|
|
||||||
@foreach (json_decode(PERMISSION_ENTITIES,1) as $permissionEntity)
|
<div class="panel-body">
|
||||||
|
<table class="table table-striped data-table" >
|
||||||
|
<thead>
|
||||||
|
<th></th>
|
||||||
|
<th>{!! Former::checkbox('create')
|
||||||
|
->text( trans('texts.create') )
|
||||||
|
->value('create_')
|
||||||
|
->label(' ')
|
||||||
|
->id('create_all') !!}</th>
|
||||||
|
<th>{!! Former::checkbox('view')
|
||||||
|
->text( trans('texts.view') )
|
||||||
|
->value('view_')
|
||||||
|
->label(' ')
|
||||||
|
->id('view_all') !!}</th>
|
||||||
|
<th>{!! Former::checkbox('edit')
|
||||||
|
->text( trans('texts.edit') )
|
||||||
|
->value('edit_')
|
||||||
|
->label(' ')
|
||||||
|
->id('edit_all') !!}</th>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach (json_decode(PERMISSION_ENTITIES,1) as $permissionEntity)
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
if($user)
|
if($user)
|
||||||
$permissions = json_decode($user->permissions,1);
|
$permissions = json_decode($user->permissions,1);
|
||||||
else
|
else
|
||||||
$permissions = [];
|
$permissions = [];
|
||||||
?>
|
?>
|
||||||
|
|
||||||
{!! Former::checkboxes('permissions[]')
|
<tr>
|
||||||
->label(ucfirst($permissionEntity))
|
<td>{{ ucfirst($permissionEntity) }}</td>
|
||||||
->checkboxes([
|
<td>{!! Former::checkbox('permissions[create_' . $permissionEntity . ']')
|
||||||
trans('texts.create') => ['id'=> 'create_' . $permissionEntity,
|
->label(' ')
|
||||||
'name' => 'permissions[create_' . $permissionEntity . ']',
|
->value('create_' . $permissionEntity . '')
|
||||||
'value' => 'create_' . $permissionEntity . '',
|
->id('create_' . $permissionEntity . '')
|
||||||
'checked' => is_array($permissions) && in_array('create_' . $permissionEntity, $permissions, FALSE) ? true : false],
|
->check(is_array($permissions) && in_array('create_' . $permissionEntity, $permissions, FALSE) ? true : false) !!}</td>
|
||||||
|
<td>{!! Former::checkbox('permissions[view_' . $permissionEntity . ']')
|
||||||
trans('texts.view') => ['id'=> 'view_' . $permissionEntity,
|
->label(' ')
|
||||||
'name' => 'permissions[view_' . $permissionEntity . ']',
|
->value('view_' . $permissionEntity . '')
|
||||||
'value' => 'view_' . $permissionEntity . '',
|
->id('view_' . $permissionEntity . '')
|
||||||
'checked' => is_array($permissions) && in_array('view_' . $permissionEntity, $permissions, FALSE) ? true : false],
|
->check(is_array($permissions) && in_array('view_' . $permissionEntity, $permissions, FALSE) ? true : false) !!}</td>
|
||||||
|
<td>{!! Former::checkbox('permissions[edit_' . $permissionEntity . ']')
|
||||||
trans('texts.edit') => ['id'=> 'edit_' . $permissionEntity,
|
->label(' ')
|
||||||
'name' => 'permissions[edit_' . $permissionEntity . ']',
|
->value('edit_' . $permissionEntity . '')
|
||||||
'value' => 'edit_' . $permissionEntity . '',
|
->id('edit_' . $permissionEntity . '')
|
||||||
'checked' => is_array($permissions) && in_array('edit_' . $permissionEntity, $permissions, FALSE) ? true : false],
|
->check(is_array($permissions) && in_array('edit_' . $permissionEntity, $permissions, FALSE) ? true : false) !!}</td>
|
||||||
]) !!}
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -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
|
@stop
|
||||||
|
Loading…
x
Reference in New Issue
Block a user