Merge pull request #14808 from snipe/fixes/small_redirect_tweaks
Small UI tweaks and redirects when asset model is invalid
This commit is contained in:
commit
46be0f6610
11 changed files with 235 additions and 76 deletions
|
@ -12,7 +12,6 @@ use App\Models\CheckoutAcceptance;
|
|||
use App\Models\LicenseSeat;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Redirect;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
use Illuminate\Support\Facades\View;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
@ -47,6 +46,10 @@ class AssetCheckinController extends Controller
|
|||
return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkin.already_checked_in'));
|
||||
}
|
||||
|
||||
if (!$asset->model) {
|
||||
return redirect()->route('hardware.show', $asset->id)->with('error', trans('admin/hardware/general.model_invalid_fix'));
|
||||
}
|
||||
|
||||
return view('hardware/checkin', compact('asset'))->with('statusLabel_list', Helper::statusLabelList())->with('backto', $backto)->with('table_name', 'Assets');
|
||||
}
|
||||
|
||||
|
@ -72,6 +75,11 @@ class AssetCheckinController extends Controller
|
|||
if (is_null($target = $asset->assignedTo)) {
|
||||
return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkin.already_checked_in'));
|
||||
}
|
||||
|
||||
if (!$asset->model) {
|
||||
return redirect()->route('hardware.show', $asset->id)->with('error', trans('admin/hardware/general.model_invalid_fix'));
|
||||
}
|
||||
|
||||
$this->authorize('checkin', $asset);
|
||||
|
||||
if ($asset->assignedType() == Asset::USER) {
|
||||
|
|
|
@ -34,12 +34,17 @@ class AssetCheckoutController extends Controller
|
|||
|
||||
$this->authorize('checkout', $asset);
|
||||
|
||||
if (!$asset->model) {
|
||||
return redirect()->route('hardware.show', $asset->id)->with('error', trans('admin/hardware/general.model_invalid_fix'));
|
||||
}
|
||||
|
||||
if ($asset->availableForCheckout()) {
|
||||
return view('hardware/checkout', compact('asset'))
|
||||
->with('statusLabel_list', Helper::deployableStatusLabelList())
|
||||
->with('table_name', 'Assets');
|
||||
}
|
||||
|
||||
|
||||
return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkout.not_available'));
|
||||
}
|
||||
|
||||
|
@ -62,6 +67,11 @@ class AssetCheckoutController extends Controller
|
|||
return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.checkout.not_available'));
|
||||
}
|
||||
$this->authorize('checkout', $asset);
|
||||
|
||||
if (!$asset->model) {
|
||||
return redirect()->route('hardware.show', $asset->id)->with('error', trans('admin/hardware/general.model_invalid_fix'));
|
||||
}
|
||||
|
||||
$admin = Auth::user();
|
||||
|
||||
$target = $this->determineCheckoutTarget();
|
||||
|
|
|
@ -15,8 +15,8 @@ return [
|
|||
'delete_confirm' => 'Are you sure you want to delete this asset?',
|
||||
'edit' => 'Edit Asset',
|
||||
'model_deleted' => 'This Assets model has been deleted. You must restore the model before you can restore the Asset.',
|
||||
'model_invalid' => 'The Model of this Asset is invalid.',
|
||||
'model_invalid_fix' => 'The Asset should be edited to correct this before attempting to check it in or out.',
|
||||
'model_invalid' => 'This model for this asset is invalid.',
|
||||
'model_invalid_fix' => 'The asset must be updated use a valid asset model this before attempting to check it in or out, or to audit it.',
|
||||
'requestable' => 'Requestable',
|
||||
'requested' => 'Requested',
|
||||
'not_requestable' => 'Not Requestable',
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
<div class="row">
|
||||
<!-- left column -->
|
||||
<div class="col-md-7">
|
||||
<div class="col-md-8 col-md-offset-2">
|
||||
<div class="box box-default">
|
||||
|
||||
{{ Form::open([
|
||||
|
@ -32,15 +32,28 @@
|
|||
</div>
|
||||
<div class="box-body">
|
||||
{{csrf_field()}}
|
||||
@if ($asset->model->name)
|
||||
<!-- Asset name -->
|
||||
|
||||
<!-- Asset model -->
|
||||
<div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
|
||||
{{ Form::label('name', trans('admin/hardware/form.model'), array('class' => 'col-md-3 control-label')) }}
|
||||
<div class="col-md-8">
|
||||
<p class="form-control-static">{{ $asset->model->name }}</p>
|
||||
<p class="form-control-static">
|
||||
@if (($asset->model) && ($asset->model->name))
|
||||
{{ $asset->model->name }}
|
||||
@else
|
||||
<span class="text-danger text-bold">
|
||||
<i class="fas fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ trans('admin/hardware/general.model_invalid')}}
|
||||
</span>
|
||||
{{ trans('admin/hardware/general.model_invalid_fix')}}
|
||||
<a href="{{ route('hardware.edit', $asset->id) }}">
|
||||
<strong>{{ trans('admin/hardware/general.edit') }}</strong>
|
||||
</a>
|
||||
@endif
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
<!-- Asset Name -->
|
||||
<div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
|
||||
|
@ -114,7 +127,10 @@
|
|||
</div> <!--/.box-body-->
|
||||
<div class="box-footer">
|
||||
<a class="btn btn-link" href="{{ URL::previous() }}"> {{ trans('button.cancel') }}</a>
|
||||
<button type="submit" class="btn btn-success pull-right"><i class="fas fa-check icon-white" aria-hidden="true"></i> {{ trans('general.audit') }}</button>
|
||||
<button type="submit" class="btn btn-success pull-right{{ (!$asset->model ? ' disabled' : '') }}"{!! (!$asset->model ? ' data-tooltip="true" title="'.trans('admin/hardware/general.model_invalid_fix').'" disabled' : '') !!}>
|
||||
<i class="fas fa-check icon-white" aria-hidden="true"></i>
|
||||
{{ trans('general.audit') }}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -16,50 +16,56 @@
|
|||
</style>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="row"><!-- .row -->
|
||||
<!-- left column -->
|
||||
<div class="col-md-9">
|
||||
<div class="box box-default">
|
||||
<div class="box-header with-border">
|
||||
<h2 class="box-title">{{ trans('admin/hardware/form.tag') }} {{ $asset->asset_tag }}</h2>
|
||||
<div class="col-md-7 col-sm-11 col-xs-12 col-md-offset-2">
|
||||
<div class="box box-default"><!-- .box-default -->
|
||||
<div class="box-header with-border"><!-- .box-header -->
|
||||
<h2 class="box-title">
|
||||
{{ trans('admin/hardware/form.tag') }}
|
||||
{{ $asset->asset_tag }}
|
||||
</h2>
|
||||
</div><!-- /.box-header -->
|
||||
|
||||
<div class="box-body">
|
||||
<div class="col-md-12">
|
||||
@if ($backto=='user')
|
||||
<div class="box-body"><!-- .box-body -->
|
||||
<div class="col-md-12"><!-- .col-md-12 -->
|
||||
|
||||
@if ($backto == 'user')
|
||||
<form class="form-horizontal" method="post" action="{{ route('hardware.checkin.store', array('assetId'=> $asset->id, 'backto'=>'user')) }}" autocomplete="off">
|
||||
@else
|
||||
<form class="form-horizontal" method="post"
|
||||
action="{{ route('hardware.checkin.store', array('assetId'=> $asset->id, 'backto'=>'user')) }}"
|
||||
autocomplete="off">
|
||||
@else
|
||||
<form class="form-horizontal" method="post"
|
||||
action="{{ route('hardware.checkin.store', array('assetId'=> $asset->id)) }}" autocomplete="off">
|
||||
@endif
|
||||
action="{{ route('hardware.checkin.store', array('assetId'=> $asset->id)) }}" autocomplete="off">
|
||||
@endif
|
||||
{{csrf_field()}}
|
||||
|
||||
<!-- AssetModel name -->
|
||||
<div class="form-group">
|
||||
{{ Form::label('model', trans('admin/hardware/form.model'), array('class' => 'col-md-3 control-label')) }}
|
||||
<div class="col-md-8">
|
||||
|
||||
<p class="form-control-static">
|
||||
@if (($asset->model) && ($asset->model->name))
|
||||
{{ $asset->model->name }}
|
||||
|
||||
@else
|
||||
<span class="text-danger text-bold">
|
||||
<i class="fas fa-exclamation-triangle"></i>{{ trans('admin/hardware/general.model_invalid')}}
|
||||
<a href="{{ route('hardware.edit', $asset->id) }}"></a> {{ trans('admin/hardware/general.model_invalid_fix')}}</span>
|
||||
<i class="fas fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ trans('admin/hardware/general.model_invalid')}}
|
||||
</span>
|
||||
{{ trans('admin/hardware/general.model_invalid_fix')}}
|
||||
<a href="{{ route('hardware.edit', $asset->id) }}">
|
||||
<strong>{{ trans('admin/hardware/general.edit') }}</strong>
|
||||
</a>
|
||||
@endif
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Asset Name -->
|
||||
<div class="form-group {{ $errors->has('name') ? 'error' : '' }}">
|
||||
{{ Form::label('name', trans('admin/hardware/form.name'), array('class' => 'col-md-3 control-label')) }}
|
||||
<div class="col-md-8">
|
||||
<input class="form-control" type="text" name="name" aria-label="name" id="name"
|
||||
value="{{ old('name', $asset->name) }}"/>
|
||||
<input class="form-control" type="text" name="name" aria-label="name" id="name" value="{{ old('name', $asset->name) }}"/>
|
||||
{!! $errors->first('name', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -67,7 +73,7 @@
|
|||
<!-- Status -->
|
||||
<div class="form-group {{ $errors->has('status_id') ? 'error' : '' }}">
|
||||
{{ Form::label('status_id', trans('admin/hardware/form.status'), array('class' => 'col-md-3 control-label')) }}
|
||||
<div class="col-md-7 required">
|
||||
<div class="col-md-8 required">
|
||||
{{ Form::select('status_id', $statusLabel_list, '', array('class'=>'select2', 'style'=>'width:100%','id' =>'modal-statuslabel_types', 'aria-label'=>'status_id')) }}
|
||||
{!! $errors->first('status_id', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}
|
||||
</div>
|
||||
|
@ -77,7 +83,9 @@
|
|||
|
||||
<!-- Checkout/Checkin Date -->
|
||||
<div class="form-group{{ $errors->has('checkin_at') ? ' has-error' : '' }}">
|
||||
|
||||
{{ Form::label('checkin_at', trans('admin/hardware/form.checkin_date'), array('class' => 'col-md-3 control-label')) }}
|
||||
|
||||
<div class="col-md-8">
|
||||
<div class="input-group col-md-5 required">
|
||||
<div class="input-group date" data-provide="datepicker" data-date-format="yyyy-mm-dd" data-autoclose="true">
|
||||
|
@ -89,25 +97,29 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Note -->
|
||||
<div class="form-group {{ $errors->has('note') ? 'error' : '' }}">
|
||||
|
||||
{{ Form::label('note', trans('admin/hardware/form.notes'), array('class' => 'col-md-3 control-label')) }}
|
||||
|
||||
<div class="col-md-8">
|
||||
<textarea class="col-md-6 form-control" id="note"
|
||||
name="note">{{ old('note', $asset->note) }}</textarea>
|
||||
<textarea class="col-md-6 form-control" id="note" name="note">{{ old('note', $asset->note) }}</textarea>
|
||||
{!! $errors->first('note', '<span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span>') !!}
|
||||
</div>
|
||||
</div>
|
||||
@include ('partials.forms.redirect_submit_options', ['route' => 'hardware.index', 'table_name' => $table_name, 'type'=> $asset->model->name, 'checkin' => true])
|
||||
</form>
|
||||
</div> <!--/.col-md-12-->
|
||||
</div> <!--/.box-body-->
|
||||
</div> <!--/.box-body-->
|
||||
</div> <!--/.box-body-->
|
||||
|
||||
</div> <!--/.box.box-default-->
|
||||
@include ('partials.forms.redirect_submit_options',
|
||||
[
|
||||
'route' => 'hardware.index',
|
||||
'table_name' => $table_name,
|
||||
'type'=> ($asset->model ? $asset->model->name : trans('general.asset_model')),
|
||||
'checkin' => true
|
||||
])
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@stop
|
|
@ -36,7 +36,8 @@
|
|||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<!-- AssetModel name -->
|
||||
|
||||
<!-- AssetModel name -->
|
||||
<div class="form-group">
|
||||
{{ Form::label('model', trans('admin/hardware/form.model'), array('class' => 'col-md-3 control-label')) }}
|
||||
<div class="col-md-8">
|
||||
|
@ -45,8 +46,14 @@
|
|||
{{ $asset->model->name }}
|
||||
@else
|
||||
<span class="text-danger text-bold">
|
||||
<i class="fas fa-exclamation-triangle"></i>{{ trans('admin/hardware/general.model_invalid')}}
|
||||
<a href="{{ route('hardware.edit', $asset->id) }}"></a> {{ trans('admin/hardware/general.model_invalid_fix')}}</span>
|
||||
<i class="fas fa-exclamation-triangle" aria-hidden="true"></i>
|
||||
{{ trans('admin/hardware/general.model_invalid')}}
|
||||
</span>
|
||||
|
||||
{{ trans('admin/hardware/general.model_invalid_fix')}}
|
||||
<a href="{{ route('hardware.edit', $asset->id) }}">
|
||||
<strong>{{ trans('admin/hardware/general.edit') }}</strong>
|
||||
</a>
|
||||
@endif
|
||||
</p>
|
||||
</div>
|
||||
|
@ -141,7 +148,13 @@
|
|||
@endif
|
||||
|
||||
</div> <!--/.box-body-->
|
||||
@include ('partials.forms.redirect_submit_options', ['route' => 'hardware.index', 'table_name' => $table_name, 'type'=> $asset->model->name, 'checkin' => false])
|
||||
@include ('partials.forms.redirect_submit_options',
|
||||
[
|
||||
'route' => 'hardware.index',
|
||||
'table_name' => $table_name,
|
||||
'type'=> ($asset->model ? $asset->model->name : trans('general.asset_model')),
|
||||
'checkin' => false
|
||||
])
|
||||
</form>
|
||||
</div>
|
||||
</div> <!--/.col-md-7-->
|
||||
|
|
|
@ -867,7 +867,7 @@
|
|||
'id' => 'bulkForm']) }}
|
||||
<input type="hidden" name="bulk_actions" value="labels" />
|
||||
<input type="hidden" name="ids[{{$asset->id}}]" value="{{ $asset->id }}" />
|
||||
<button class="btn btn-sm btn-default" id="bulkEdit" ><i class="fas fa-barcode" aria-hidden="true"></i> {{ trans_choice('button.generate_labels', 1) }}</button>
|
||||
<button class="btn btn-sm btn-default" id="bulkEdit"{{ (!$asset->model ? ' disabled' : '') }}{!! (!$asset->model ? ' data-tooltip="true" title="'.trans('admin/hardware/general.model_invalid').'"' : '') !!}><i class="fas fa-barcode" aria-hidden="true"></i> {{ trans_choice('button.generate_labels', 1) }}</button>
|
||||
|
||||
{{ Form::close() }}
|
||||
|
||||
|
@ -895,17 +895,21 @@
|
|||
@if (($asset->assigned_to != '') && ($asset->deleted_at==''))
|
||||
@can('checkin', \App\Models\Asset::class)
|
||||
<div class="col-md-12">
|
||||
<a href="{{ route('hardware.checkin.create', $asset->id) }}" style="width: 100%;" class="btn btn-sm btn-primary hidden-print">
|
||||
<span class="tooltip-wrapper"{!! (!$asset->model ? ' data-tooltip="true" title="'.trans('admin/hardware/general.model_invalid_fix').'"' : '') !!}>
|
||||
<a role="button" href="{{ route('hardware.checkin.create', $asset->id) }}" class="btn btn-sm btn-primary btn-block hidden-print{{ (!$asset->model ? ' disabled' : '') }}">
|
||||
{{ trans('admin/hardware/general.checkin') }}
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
@endcan
|
||||
@elseif (($asset->assigned_to == '') && ($asset->deleted_at==''))
|
||||
@can('checkout', \App\Models\Asset::class)
|
||||
<div class="col-md-12" style="padding-top: 5px;">
|
||||
<a href="{{ route('hardware.checkout.create', $asset->id) }}" style="width: 100%;" class="btn btn-sm btn-primary hidden-print">
|
||||
<span class="tooltip-wrapper"{!! (!$asset->model ? ' data-tooltip="true" title="'.trans('admin/hardware/general.model_invalid_fix').'"' : '') !!}>
|
||||
<a href="{{ route('hardware.checkout.create', $asset->id) }}" class="btn btn-sm btn-primary btn-block hidden-print{{ (!$asset->model ? ' disabled' : '') }}">
|
||||
{{ trans('admin/hardware/general.checkout') }}
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
@endcan
|
||||
@endif
|
||||
|
@ -915,7 +919,7 @@
|
|||
@can('update', $asset)
|
||||
@if ($asset->deleted_at=='')
|
||||
<div class="col-md-12" style="padding-top: 5px;">
|
||||
<a href="{{ route('hardware.edit', $asset->id) }}" style="width: 100%;" class="btn btn-sm btn-primary hidden-print">
|
||||
<a href="{{ route('hardware.edit', $asset->id) }}" class="btn btn-sm btn-primary btn-block hidden-print">
|
||||
{{ trans('admin/hardware/general.edit') }}
|
||||
</a>
|
||||
</div>
|
||||
|
@ -924,7 +928,7 @@
|
|||
|
||||
@can('create', $asset)
|
||||
<div class="col-md-12" style="padding-top: 5px;">
|
||||
<a href="{{ route('clone/hardware', $asset->id) }}" style="width: 100%;" class="btn btn-sm btn-primary hidden-print">
|
||||
<a href="{{ route('clone/hardware', $asset->id) }}" class="btn btn-sm btn-primary btn-block hidden-print">
|
||||
{{ trans('admin/hardware/general.clone') }}
|
||||
</a>
|
||||
</div>
|
||||
|
@ -932,21 +936,24 @@
|
|||
|
||||
@can('audit', \App\Models\Asset::class)
|
||||
<div class="col-md-12" style="padding-top: 5px;">
|
||||
<a href="{{ route('asset.audit.create', $asset->id) }}" style="width: 100%;" class="btn btn-sm btn-primary hidden-print">
|
||||
{{ trans('general.audit') }}
|
||||
<span class="tooltip-wrapper"{!! (!$asset->model ? ' data-tooltip="true" title="'.trans('admin/hardware/general.model_invalid_fix').'"' : '') !!}>
|
||||
<a href="{{ route('asset.audit.create', $asset->id) }}" class="btn btn-sm btn-primary btn-block hidden-print{{ (!$asset->model ? ' disabled' : '') }}">
|
||||
{{ trans('general.audit') }}
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
@endcan
|
||||
|
||||
@can('delete', $asset)
|
||||
<div class="col-md-12" style="padding-top: 30px; padding-bottom: 30px;">
|
||||
@if ($asset->deleted_at=='')
|
||||
<button class="btn btn-sm btn-block btn-danger delete-asset" data-toggle="modal" data-title="{{ trans('general.delete') }}" data-content="{{ trans('general.sure_to_delete_var', ['item' => $asset->asset_tag]) }}" data-target="#dataConfirmModal">{{ trans('general.delete') }} </button>
|
||||
<button class="btn btn-sm btn-block btn-danger delete-asset" data-toggle="modal" data-title="{{ trans('general.delete') }}" data-content="{{ trans('general.sure_to_delete_var', ['item' => $asset->asset_tag]) }}" data-target="#dataConfirmModal">{{ trans('general.delete') }}
|
||||
</button>
|
||||
<span class="sr-only">{{ trans('general.delete') }}</span>
|
||||
@else
|
||||
<form method="POST" action="{{ route('restore/hardware', ['assetId' => $asset->id]) }}">
|
||||
@csrf
|
||||
<button class="btn btn-sm btn-warning col-md-12">{{ trans('general.restore') }}</button>
|
||||
<button class="btn btn-sm btn-warning btn-block">{{ trans('general.restore') }}</button>
|
||||
</form>
|
||||
@endif
|
||||
</div>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
@endif
|
||||
|
||||
|
||||
@if ($message = Session::get('status'))
|
||||
@if ($message = session()->get('status'))
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert-success fade in">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
|
@ -23,7 +23,7 @@
|
|||
@endif
|
||||
|
||||
|
||||
@if ($message = Session::get('success'))
|
||||
@if ($message = session()->get('success'))
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert-success fade in">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
|
@ -35,7 +35,7 @@
|
|||
@endif
|
||||
|
||||
|
||||
@if ($message = Session::get('success-unescaped'))
|
||||
@if ($message = session()->get('success-unescaped'))
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert-success fade in">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
|
@ -47,7 +47,7 @@
|
|||
@endif
|
||||
|
||||
|
||||
@if ($assets = Session::get('assets'))
|
||||
@if ($assets = session()->get('assets'))
|
||||
@foreach ($assets as $asset)
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert-info fade in">
|
||||
|
@ -62,9 +62,9 @@
|
|||
<li><b>{{ trans('general.asset_name') }} </b> {{ $asset->model->name }}</li>
|
||||
@endisset
|
||||
<li><b>{{ trans('general.asset_tag') }}</b> {{ $asset->asset_tag }}</li>
|
||||
@isset ($asset->notes)
|
||||
<li><b>{{ trans('general.notes') }}</b> {{ $asset->notes }}</li>
|
||||
@endisset
|
||||
@isset ($asset->notes)
|
||||
<li><b>{{ trans('general.notes') }}</b> {{ $asset->notes }}</li>
|
||||
@endisset
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
@ -73,7 +73,7 @@
|
|||
@endif
|
||||
|
||||
|
||||
@if ($consumables = Session::get('consumables'))
|
||||
@if ($consumables = session()->get('consumables'))
|
||||
@foreach ($consumables as $consumable)
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert-info fade in">
|
||||
|
@ -87,7 +87,7 @@
|
|||
@endif
|
||||
|
||||
|
||||
@if ($accessories = Session::get('accessories'))
|
||||
@if ($accessories = session()->get('accessories'))
|
||||
@foreach ($accessories as $accessory)
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert-info fade in">
|
||||
|
@ -101,7 +101,7 @@
|
|||
@endif
|
||||
|
||||
|
||||
@if ($message = Session::get('error'))
|
||||
@if ($message = session()->get('error'))
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert alert-danger fade in">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
|
@ -113,7 +113,7 @@
|
|||
@endif
|
||||
|
||||
|
||||
@if ($messages = Session::get('error_messages'))
|
||||
@if ($messages = session()->get('error_messages'))
|
||||
@foreach ($messages as $message)
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert alert-danger fade in">
|
||||
|
@ -127,7 +127,7 @@
|
|||
@endif
|
||||
|
||||
|
||||
@if ($messages = Session::get('bulk_asset_errors'))
|
||||
@if ($messages = session()->get('bulk_asset_errors'))
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert alert-danger fade in">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
|
@ -146,7 +146,7 @@
|
|||
@endif
|
||||
|
||||
|
||||
@if ($message = Session::get('warning'))
|
||||
@if ($message = session()->get('warning'))
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert-warning fade in">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
|
@ -158,7 +158,7 @@
|
|||
@endif
|
||||
|
||||
|
||||
@if ($message = Session::get('info'))
|
||||
@if ($message = session()->get('info'))
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert-info fade in">
|
||||
<button type="button" class="close" data-dismiss="alert">×</button>
|
||||
|
|
|
@ -1,11 +1,36 @@
|
|||
<!-- begin redirect submit options -->
|
||||
|
||||
<div class="box-footer">
|
||||
<a class="btn btn-link" href="{{ route($route) }}">{{ trans('button.cancel') }}</a>
|
||||
<button type="submit" class="btn btn-primary pull-right"><i class="fas fa-check icon-white" aria-hidden="true"></i> {{$checkin ? trans('general.checkin') : trans('general.checkout') }}</button>
|
||||
<div class="btn-group pull-right" style="margin-right:5px;">
|
||||
<select class="redirect-options form-control" name="redirect_option">
|
||||
<option {{(Session::get('redirect_option')=="0" || (Session::get('redirect_option')=="2" && $checkin)) ? 'selected' : ''}} value="0">{{trans('admin/hardware/form.redirect_to_all', ['type' => $table_name])}}</option>
|
||||
<option {{Session::get('redirect_option')=="1" ? 'selected' : ''}} value="1">{{trans('admin/hardware/form.redirect_to_type', ['type' => $type])}}</option>
|
||||
<option {{Session::get('redirect_option')=="2" && !$checkin ? 'selected' : ''}}{{$checkin ? 'disabled hidden' : ''}} value="2" >{{trans('admin/hardware/form.redirect_to_checked_out_to')}}</option>
|
||||
</select>
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-3">
|
||||
<a class="btn btn-link" href="{{ route($route) }}">{{ trans('button.cancel') }}</a>
|
||||
</div>
|
||||
</div> <!-- /.box-->
|
||||
|
||||
<div class="col-md-9 text-right">
|
||||
<div class="btn-group text-left">
|
||||
|
||||
<select class="redirect-options form-control select2" name="redirect_option" style="min-width: 200px"{{ (!$asset->model ? ' disabled' : '') }}>
|
||||
|
||||
<option {{ (Session::get('redirect_option')=="0" || (Session::get('redirect_option')=="2" && $checkin)) ? 'selected' : '' }} value="0">
|
||||
{{ trans('admin/hardware/form.redirect_to_all', ['type' => $table_name]) }}
|
||||
</option>
|
||||
<option {{ Session::get('redirect_option')=="1" ? 'selected' : ''}} value="1">
|
||||
{{ trans('admin/hardware/form.redirect_to_type', ['type' => $type]) }}
|
||||
</option>
|
||||
<option {{ Session::get('redirect_option')=="2" && !$checkin ? 'selected' : ''}}{{ $checkin ? 'disabled hidden' : '' }} value="2" >
|
||||
{{ trans('admin/hardware/form.redirect_to_checked_out_to') }}
|
||||
</option>
|
||||
|
||||
</select>
|
||||
|
||||
<button type="submit" class="btn btn-primary pull-right{{ (!$asset->model ? ' disabled' : '') }}" style="margin-left:5px; border-radius: 3px;"{!! (!$asset->model ? ' data-tooltip="true" title="'.trans('admin/hardware/general.edit').'" disabled' : '') !!}>
|
||||
<i class="fas fa-check icon-white" aria-hidden="true"></i>
|
||||
{{ $checkin ? trans('general.checkin') : trans('general.checkout') }}
|
||||
</button>
|
||||
|
||||
</div><!-- /.btn-group -->
|
||||
</div><!-- /.col-md-9 -->
|
||||
</div><!-- /.row -->
|
||||
</div> <!-- /.box-footer -->
|
||||
<!-- end redirect submit options -->
|
|
@ -28,6 +28,16 @@ class AssetCheckinTest extends TestCase
|
|||
{
|
||||
$this->actingAs(User::factory()->checkinAssets()->create())
|
||||
->post(route('hardware.checkin.store', ['assetId' => Asset::factory()->create()->id]))
|
||||
->assertStatus(302)
|
||||
->assertSessionHas('error')
|
||||
->assertRedirect(route('hardware.index'));
|
||||
}
|
||||
|
||||
public function testCannotStoreAssetCheckinThatIsNotCheckedOut()
|
||||
{
|
||||
$this->actingAs(User::factory()->checkinAssets()->create())
|
||||
->get(route('hardware.checkin.store', ['assetId' => Asset::factory()->create()->id]))
|
||||
->assertStatus(302)
|
||||
->assertSessionHas('error')
|
||||
->assertRedirect(route('hardware.index'));
|
||||
}
|
||||
|
@ -159,4 +169,31 @@ class AssetCheckinTest extends TestCase
|
|||
return $event->action_date === '2023-01-02' && $event->note === 'hello';
|
||||
}, 1);
|
||||
}
|
||||
|
||||
public function testAssetCheckinPageIsRedirectedIfModelIsInvalid()
|
||||
{
|
||||
|
||||
$asset = Asset::factory()->assignedToUser()->create();
|
||||
$asset->model_id = 0;
|
||||
$asset->forceSave();
|
||||
|
||||
$this->actingAs(User::factory()->admin()->create())
|
||||
->get(route('hardware.checkin.create', ['assetId' => $asset->id]))
|
||||
->assertStatus(302)
|
||||
->assertSessionHas('error')
|
||||
->assertRedirect(route('hardware.show',['hardware' => $asset->id]));
|
||||
}
|
||||
|
||||
public function testAssetCheckinPagePostIsRedirectedIfModelIsInvalid()
|
||||
{
|
||||
$asset = Asset::factory()->assignedToUser()->create();
|
||||
$asset->model_id = 0;
|
||||
$asset->forceSave();
|
||||
|
||||
$this->actingAs(User::factory()->admin()->create())
|
||||
->post(route('hardware.checkin.store', ['assetId' => $asset->id]))
|
||||
->assertStatus(302)
|
||||
->assertSessionHas('error')
|
||||
->assertRedirect(route('hardware.show', ['hardware' => $asset->id]));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -236,4 +236,35 @@ class AssetCheckoutTest extends TestCase
|
|||
|
||||
$this->assertTrue(Carbon::parse($asset->last_checkout)->diffInSeconds(now()) < 2);
|
||||
}
|
||||
|
||||
public function testAssetCheckoutPageIsRedirectedIfModelIsInvalid()
|
||||
{
|
||||
|
||||
$asset = Asset::factory()->create();
|
||||
$asset->model_id = 0;
|
||||
$asset->forceSave();
|
||||
|
||||
$this->actingAs(User::factory()->admin()->create())
|
||||
->get(route('hardware.checkout.create', ['assetId' => $asset->id]))
|
||||
->assertStatus(302)
|
||||
->assertSessionHas('error')
|
||||
->assertRedirect(route('hardware.show',['hardware' => $asset->id]));
|
||||
}
|
||||
|
||||
public function testAssetCheckoutPagePostIsRedirectedIfModelIsInvalid()
|
||||
{
|
||||
$asset = Asset::factory()->create();
|
||||
$asset->model_id = 0;
|
||||
$asset->forceSave();
|
||||
$user = User::factory()->create();
|
||||
|
||||
$this->actingAs(User::factory()->admin()->create())
|
||||
->post(route('hardware.checkout.store', $asset), [
|
||||
'checkout_to_type' => 'user',
|
||||
'assigned_user' => $user->id,
|
||||
])
|
||||
->assertStatus(302)
|
||||
->assertSessionHas('error')
|
||||
->assertRedirect(route('hardware.show', ['hardware' => $asset->id]));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue