Renamed blade

This commit is contained in:
snipe
2026-04-29 16:59:16 +01:00
parent ad0199f662
commit 88f87db4fd
5 changed files with 176 additions and 18 deletions
+9 -9
View File
@@ -1218,7 +1218,7 @@ class ReportsController extends Controller
->filter(fn ($unaccepted) => $unaccepted->checkoutable)
->map(fn ($unaccepted) => Checkoutable::fromAcceptance($unaccepted));
return view('reports/unaccepted_assets', compact('itemsForReport', 'showDeleted'));
return view('reports/unaccepted_items', compact('itemsForReport', 'showDeleted'));
}
/**
@@ -1251,7 +1251,7 @@ class ReportsController extends Controller
Log::debug('No pending acceptances');
// Redirect to the unaccepted items report page with error
return redirect()->route('reports/unaccepted_assets')->with('error', trans('general.bad_data'));
return redirect()->route('reports/unaccepted_items')->with('error', trans('general.bad_data_or_already_accepted'));
}
$item = $acceptance->checkoutable;
$assignee = $acceptance->assignedTo ?? $item->assignedTo ?? null;
@@ -1263,7 +1263,7 @@ class ReportsController extends Controller
if (is_null($acceptance->created_at)) {
Log::debug('No acceptance created_at');
return redirect()->route('reports/unaccepted_assets')->with('error', trans('general.bad_data'));
return redirect()->route('reports/unaccepted_items')->with('error', trans('general.bad_data_or_already_accepted'));
} else {
if ($item instanceof LicenseSeat) {
$logItem_res = $item->license->checkouts()->with('adminuser')->where('created_at', '=', $acceptance->created_at)->get();
@@ -1273,18 +1273,18 @@ class ReportsController extends Controller
if ($logItem_res->isEmpty()) {
Log::debug('Acceptance date mismatch');
return redirect()->route('reports/unaccepted_assets')->with('error', trans('general.bad_data'));
return redirect()->route('reports/unaccepted_items')->with('error', trans('general.bad_data_or_already_accepted'));
}
$logItem = $logItem_res[0];
}
if (is_null($email) || $email === '') {
return redirect()->route('reports/unaccepted_assets')->with('error', trans('general.no_email'));
return redirect()->route('reports/unaccepted_items')->with('error', trans('general.no_email'));
}
$mailable = $this->getCheckoutMailType($acceptance, $logItem);
Mail::to($email)->send($mailable->locale($locale));
return redirect()->route('reports/unaccepted_assets')->with('success', trans('admin/reports/general.reminder_sent'));
return redirect()->route('reports/unaccepted_items')->with('success', trans('admin/reports/general.reminder_sent'));
}
private function getCheckoutMailType(CheckoutAcceptance $acceptance, $logItem): Mailable
@@ -1321,13 +1321,13 @@ class ReportsController extends Controller
if (! $acceptance = CheckoutAcceptance::pending()->find($acceptanceId)) {
// Redirect to the unaccepted assets report page with error
return redirect()->route('reports/unaccepted_assets')->with('error', trans('general.bad_data'));
return redirect()->route('reports/unaccepted_items')->with('error', trans('general.bad_data_or_already_accepted'));
}
if ($acceptance->delete()) {
return redirect()->route('reports/unaccepted_assets')->with('success', trans('admin/reports/general.acceptance_deleted'));
return redirect()->route('reports/unaccepted_items')->with('success', trans('admin/reports/general.acceptance_deleted'));
} else {
return redirect()->route('reports/unaccepted_assets')->with('error', trans('general.deletion_failed'));
return redirect()->route('reports/unaccepted_items')->with('error', trans('general.deletion_failed'));
}
}
+7 -4
View File
@@ -2,6 +2,8 @@
namespace App\Http\Requests;
use App\Models\CheckoutAcceptance;
use App\Models\User;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
@@ -15,24 +17,25 @@ class AcceptSignatureRequest extends FormRequest
$acceptance = $this->route('acceptance');
$user = Auth::user();
if (!$acceptance || !$user) {
if (! $acceptance || ! $user) {
return false;
}
if (is_string($acceptance)) {
$acceptance = \App\Models\CheckoutAcceptance::find($acceptance);
if (!$acceptance) {
$acceptance = CheckoutAcceptance::find($acceptance);
if (! $acceptance) {
return false;
}
}
if (!$user instanceof \App\Models\User) {
if (! $user instanceof User) {
return false;
}
// Only allow if the user is the assigned user or sign-in-place admin
$assignedToId = $acceptance->assigned_to_id ?? null;
$isSignInPlaceAdmin = session('sign_in_place_acceptance_id') === $acceptance->id && $user->can('checkout', $acceptance->checkoutable);
return $user->id === $assignedToId || $isSignInPlaceAdmin;
}
+1
View File
@@ -54,6 +54,7 @@ return [
'avatar_upload' => 'Upload Avatar',
'back' => 'Back',
'bad_data' => 'Nothing found. Maybe bad data?',
'bad_data_or_already_accepted' => 'No corresponding acceptance was found. You might not have permission to perform this action, or it may have already been accepted',
'bulkaudit' => 'Scanner Bulk Audit',
'bulkaudit_status' => 'Audit Status',
'bulk_checkout' => 'Bulk Checkout',
@@ -0,0 +1,154 @@
<?php
?>
@extends('layouts/default')
{{-- Page title --}}
@section('title')
{{ trans('general.unaccepted_asset_report') }}
@parent
@stop
@section('header_right')
<div class="btn-toolbar" role="toolbar">
<div class="btn-group mr-2" role="group">
@if($showDeleted)
<a href="{{ route('reports/unaccepted_items') }}" class="btn btn-default"><i class="fa fa-trash icon-white" aria-hidden="true"></i> {{ trans('general.hide_deleted') }}
</a>
@else
<a href="{{ route('reports/unaccepted_items', ['deleted' => 'deleted']) }}" class="btn btn-default"><i class="fa fa-trash icon-white" aria-hidden="true"></i> {{ trans('general.show_deleted') }}
</a>
@endif
</div>
<div class="btn-group mr-2" role="group">
<form method="POST" action="{{ route('reports/export/unaccepted_items') }}" accept-charset="UTF-8" class="form-horizontal">
{{csrf_field()}}
<button type="submit" class="btn btn-default">
<i class="fa fa-download icon-white" aria-hidden="true"></i> {{ trans('general.download_all') }}
</button>
</form>
</div>
</div>
@stop
{{-- Page content --}}
@section('content')
<div class="row">
<div class="col-md-12">
<div class="box box-default">
<div class="box-body">
<table
data-cookie-id-table="unacceptedItemsReport"
data-id-table="unacceptedItemsReport"
data-side-pagination="client"
data-sort-order="asc"
data-sort-name="created_at"
data-advanced-search="false"
id="unacceptedItemsReport"
data-fixed-number="false"
data-fixed-right-number="false"
class="table table-striped snipe-table"
data-export-options='{
"fileName": "unaccepted-items-report-{{ date('Y-m-d') }}",
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"]
}'>
<thead>
<tr role="row">
<th class="col-sm-1" data-field="created_at" data-searchable="false" data-sortable="true">{{ trans('general.date') }}</th>
<th class="col-sm-1" data-sortable="true">{{ trans('general.type') }}</th>
<th class="col-sm-1" data-sortable="true">{{ trans('admin/companies/table.title') }}</th>
<th class="col-sm-1" data-sortable="true">{{ trans('general.category') }}</th>
<th class="col-sm-1" data-sortable="true">{{ trans('admin/hardware/form.model') }}</th>
<th class="col-sm-1" data-sortable="true">{{ trans('general.name') }}</th>
<th class="col-sm-1" data-sortable="true">{{ trans('admin/hardware/table.asset_tag') }}</th>
<th class="col-sm-1" data-sortable="true">{{ trans('admin/hardware/table.checkoutto') }}</th>
@if(auth()->user()?->isAdmin() || auth()->user()?->isSuperUser())
<th class="col-md-1"><span class="line"></span>{{ trans('table.actions') }}</th>
@endif
</tr>
</thead>
<tbody>
@if ($itemsForReport)
@foreach ($itemsForReport as $item)
<tr @if($item->acceptance->trashed()) style="text-decoration: line-through" @endif>
{{-- Created date --}}
<td>
{{ Helper::getFormattedDateObject($item->acceptance->created_at, 'datetime', false) }}
</td>
{{-- Item Type --}}
<td>{{ $item->type }}</td>
{{-- Company name --}}
<td>{{ $item->plain_text_company }}</td>
{{-- Category --}}
<td>{{ $item->plain_text_category }}</td>
{{-- Model --}}
<td>{{ $item->plain_text_model }}</td>
{{-- Name --}}
<td>{{ $item->plain_text_name }}</td>
{{-- Asset tag or blank --}}
<td>{{ $item->asset_tag }}</td>
{{-- Assigned To (with soft-delete strike if needed) --}}
<td @if(!$item->assignee || (method_exists($item->assignee, 'trashed') && $item->assignee->trashed())) style="text-decoration: line-through" @endif>
{!! $item->assignee
? optional($item->assignee->present())->nameUrl() ?? e($item->assignee->name)
: trans('admin/reports/general.deleted_user') !!}
</td>
{{-- Actions: send reminder / delete --}}
@if(auth()->user()?->isAdmin() || auth()->user()?->isSuperUser())
<td class="text-nowrap">
@unless($item->acceptance->trashed())
<form method="post" class="white-space: nowrap;" action="{{ route('reports/unaccepted_items_sent_reminder') }}">
@csrf
<input type="hidden" name="acceptance_id" value="{{ $item->acceptance_id }}">
@if ($item->assignee && $item->assignee->email)
<button class="btn btn-sm btn-warning" data-tooltip="true" data-title="{{ trans('admin/reports/general.send_reminder') }}">
<i class="fa fa-repeat" aria-hidden="true"></i>
</button>
@else
<span data-tooltip="true" data-title="{{ trans('admin/reports/general.cannot_send_reminder') }}">
<a class="btn btn-sm btn-warning disabled" href="#">
<i class="fa fa-repeat" aria-hidden="true"></i>
</a>
</span>
@endif
<a href="{{ route('reports/unaccepted_items_delete', ['acceptanceId' => $item->acceptance_id]) }}"
class="btn btn-sm btn-danger delete-asset"
data-tooltip="true"
data-toggle="modal"
data-content="{{ trans('general.delete_confirm', ['item' => trans('admin/reports/general.acceptance_request')]) }}"
data-title="{{ trans('general.delete') }}"
onClick="return false;">
<i class="fa fa-trash"></i>
</a>
</form>
@endunless
</td>
@endif
</tr>
@endforeach
@endif
</tbody>
<tfoot>
<tr>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
</div>
@stop
@section('moar_scripts')
@include ('partials.bootstrap-table')
@stop
+5 -5
View File
@@ -545,19 +545,19 @@ Route::group(['prefix' => 'reports', 'middleware' => ['auth']], function () {
->name('reports.activity.post');
Route::get('unaccepted_assets/{deleted?}', [ReportsController::class, 'getAssetAcceptanceReport'])
->name('reports/unaccepted_assets')
->name('reports/unaccepted_items')
->breadcrumbs(fn (Trail $trail) => $trail->parent('home')
->push(trans('general.unaccepted_asset_report'), route('reports/unaccepted_assets')));
->push(trans('general.unaccepted_asset_report'), route('reports/unaccepted_items')));
Route::post('unaccepted_assets/sent_reminder', [ReportsController::class, 'sentAssetAcceptanceReminder'])
->name('reports/unaccepted_assets_sent_reminder');
->name('reports/unaccepted_items_sent_reminder');
Route::delete('unaccepted_assets/{acceptanceId}/delete', [ReportsController::class, 'deleteAssetAcceptance'])
->name('reports/unaccepted_assets_delete');
->name('reports/unaccepted_items_delete');
Route::post(
'unaccepted_assets/{deleted?}', [ReportsController::class, 'postAssetAcceptanceReport'])
->name('reports/export/unaccepted_assets');
->name('reports/export/unaccepted_items');
});