Files
snipe-it/resources/views/groups/edit.blade.php
T
2025-10-21 19:22:36 +01:00

233 lines
9.2 KiB
PHP
Executable File

@extends('layouts/edit-form', [
'createText' => trans('admin/groups/titles.create') ,
'updateText' => trans('admin/groups/titles.update'),
'item' => $group,
'formAction' => ($group !== null && $group->id !== null) ? route('groups.update', ['group' => $group->id]) : route('groups.store'),
])
@section('content')
@parent
@stop
@section('inputFields')
<!-- Name -->
<div class="form-group {{ $errors->has('name') ? ' has-error' : '' }}">
<label for="name" class="col-md-3 control-label">{{ trans('admin/groups/titles.group_name') }}</label>
<div class="col-md-8 required">
<input class="form-control" type="text" name="name" id="name" value="{{ old('name', $group->name) }}" required />
{!! $errors->first('name', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}
</div>
</div>
<div class="form-group{!! $errors->has('notes') ? ' has-error' : '' !!}">
<label for="notes" class="col-md-3 control-label">{{ trans('general.notes') }}</label>
<div class="col-md-8">
<x-input.textarea
name="notes"
id="notes"
:value="old('notes', $group->notes)"
placeholder="{{ trans('general.placeholders.notes') }}"
aria-label="notes"
rows="2"
/>
{!! $errors->first('notes', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}
</div>
</div>
<div class="form-group{{ $errors->has('associated_users') ? ' has-error' : '' }}">
<label for="associated_users[]" class="col-md-3 control-label">
{{ trans('general.users') }}
</label>
<div class="col-md-7">
<select class="js-data-ajax"
data-endpoint="users"
data-placeholder="{{ trans('general.select_user') }}"
name="associated_users[]"
style="width: 100%"
id="associated_users[]"
aria-label="associated_users[]" multiple>
<option value="" role="option">{{ trans('general.select_user') }}</option>
@if(isset($associated_users))
@foreach($associated_users as $associated_user)
<option value="{{ $associated_user->id }}" selected="selected" role="option" aria-selected="true"
role="option">
{{ $associated_user->present()->fullName }} ({{ $associated_user->username }})
</option>
@endforeach
@endif
</select>
</div>
{!! $errors->first('associated_users', '<div class="col-md-8 col-md-offset-3"><span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span></div>') !!}
</div>
<div class="col-md-12">
<div class="col-md-10">
<h4>{{ trans('admin/groups/titles.permission')}}</h4>
</div>
<div class="col-md-1 text-right">
<h4>{{ trans('admin/groups/titles.grant')}}</h4>
</div>
<div class="col-md-1 text-right">
<h4>{{ trans('admin/groups/titles.deny')}}</h4>
</div>
</div>
<div class="col-md-12">
@foreach ($permissions as $area => $area_permission)
<!-- handle superadmin and reports, and anything else with only one option -->
<?php $localPermission = $area_permission[0]; ?>
<div class="form-group{{ ($localPermission['permission']!='superuser') ? ' nonsuperuser' : '' }}{{ ( ($localPermission['permission']!='superuser') && ($localPermission['permission']!='admin')) ? ' nonadmin' : '' }}">
<div class="callout callout-legend col-md-12">
<div class="col-md-10">
<h4>
{{ $area }}
</h4>
@if ($localPermission['note']!='')
<p>{{ $localPermission['note'] }}</p>
@endif
</div>
<!-- Handle the checkall ALLOW radios -->
<div class="col-md-1 text-right header-row">
<label for="{{ $area }}">
<input
class="form-control {{ str_slug($area) }}"
data-checker-group="{{ str_slug($area) }}"
aria-label="{{ $area }}"
name="permission[{{ str_slug($area) }}]"
type="radio"
value="1"
>
<span class="sr-only">
{{ trans('admin/groups/titles.allow')}}
{{ $area }}
</span>
</label>
</div>
<!-- Handle the checkall DENY radios -->
<div class="col-md-1 header-row text-right">
<label>
<input
class="form-control {{ str_slug($area) }}"
data-checker-group="{{ str_slug($area) }}"
aria-label="{{ $area }}"
name="permission[{{ str_slug($area) }}]"
type="radio"
value="0"
>
<span class="sr-only">
{{ trans('admin/groups/titles.deny')}}
{{ $area }}
</span>
</label>
</div>
</div>
</div>
@if (count($area_permission) > 1)
@foreach ($area_permission as $index => $this_permission)
@if ($this_permission['display'])
<div class="{{ ($localPermission['permission']!='superuser') ? ' nonsuperuser' : '' }}{{ ( ($localPermission['permission']!='superuser') && ($localPermission['permission']!='admin')) ? ' nonadmin' : '' }}">
<div class="form-group" style="border-bottom: 1px solid #eee; margin-right: 15px;">
<div class="col-md-10">
{{ $this_permission['label'] }}
</div>
<div class="col-md-1 text-right">
<label for="{{ 'permission['.$this_permission['permission'].']' }}">
<input
class="form-control radiochecker-{{ str_slug($area) }}"
aria-label="permission[{{ $this_permission['permission'] }}]"
@checked(array_key_exists($this_permission['permission'], $groupPermissions) && $groupPermissions[$this_permission['permission']] == '1')
name="permission[{{ $this_permission['permission'] }}]"
type="radio"
value="1"
>
<span class="sr-only">{{ trans('admin/groups/titles.allow')}}
{{ 'permission['.$this_permission['permission'].']' }}
</span>
</label>
</div>
<div class="col-md-1 text-right">
<label for="{{ 'permission['.$this_permission['permission'].']' }}">
<input
class="form-control radiochecker-{{ str_slug($area) }}"
aria-label="permission[{{ $this_permission['permission'] }}]"
@checked(array_key_exists($this_permission['permission'], $groupPermissions) && $groupPermissions[$this_permission['permission']] == '0')
name="permission[{{ $this_permission['permission'] }}]"
type="radio"
value="0"
>
</label>
</div>
</div>
</div>
@endif
@endforeach
@endif
@endforeach
</div>
@stop
@section('moar_scripts')
<script nonce="{{ csrf_token() }}">
$(document).ready(function(){
$(".superuser").change(function() {
if ($(this).val() == '1') {
$(".nonsuperuser").fadeOut();
} else if ($(this).val() == '0') {
$(".nonsuperuser").fadeIn();
}
});
$(".admin").change(function() {
if ($(this).val() == '1') {
$(".nonadmin").fadeOut();
} else if ($(this).val() == '0') {
$(".nonadmin").fadeIn();
}
});
// Check/Uncheck all radio buttons in the group
$('.header-row input:radio').change(function() {
value = $(this).attr('value');
area = $(this).data('checker-group');
$('.radiochecker-'+area+'[value='+value+']').prop('checked', true);
});
});
</script>
@stop