mirror of
https://github.com/snipe/snipe-it.git
synced 2025-03-05 20:52:15 -08:00
Tinkering with routes for breadcrumbs
Signed-off-by: snipe <snipe@snipe.net>
This commit is contained in:
parent
4d25e8f7f0
commit
972bd1ef83
|
@ -244,16 +244,11 @@ class AssetsController extends Controller
|
|||
* @since [v1.0]
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function edit($assetId = null) : View | RedirectResponse
|
||||
public function edit(Asset $asset) : View | RedirectResponse
|
||||
{
|
||||
if (! $item = Asset::find($assetId)) {
|
||||
// Redirect to the asset management page with error
|
||||
return redirect()->route('hardware.index')->with('error', trans('admin/hardware/message.does_not_exist'));
|
||||
}
|
||||
//Handles company checks and permissions.
|
||||
$this->authorize($item);
|
||||
$this->authorize($asset);
|
||||
|
||||
return view('hardware/edit', compact('item'))
|
||||
return view('hardware/edit', compact('asset'))
|
||||
->with('statuslabel_list', Helper::statusLabelList())
|
||||
->with('statuslabel_types', Helper::statusTypeList());
|
||||
}
|
||||
|
@ -267,15 +262,14 @@ class AssetsController extends Controller
|
|||
* @since [v1.0]
|
||||
* @return \Illuminate\Contracts\View\View
|
||||
*/
|
||||
public function show($assetId = null) : View | RedirectResponse
|
||||
public function show(Asset $asset) : View | RedirectResponse
|
||||
{
|
||||
$asset = Asset::withTrashed()->find($assetId);
|
||||
$this->authorize('view', $asset);
|
||||
$settings = Setting::getSettings();
|
||||
|
||||
if (isset($asset)) {
|
||||
$audit_log = Actionlog::where('action_type', '=', 'audit')
|
||||
->where('item_id', '=', $assetId)
|
||||
->where('item_id', '=', $asset->id)
|
||||
->where('item_type', '=', Asset::class)
|
||||
->orderBy('created_at', 'DESC')->first();
|
||||
|
||||
|
@ -291,7 +285,7 @@ class AssetsController extends Controller
|
|||
|
||||
$qr_code = (object) [
|
||||
'display' => $settings->qr_code == '1',
|
||||
'url' => route('qr_code/hardware', $asset->id),
|
||||
//'url' => route('qr_code/hardware', ['asset' => $asset]),
|
||||
];
|
||||
|
||||
return view('hardware/view', compact('asset', 'qr_code', 'settings'))
|
||||
|
@ -531,12 +525,12 @@ class AssetsController extends Controller
|
|||
* @param int $assetId
|
||||
* @since [v1.0]
|
||||
*/
|
||||
public function getQrCode($assetId = null) : Response | BinaryFileResponse | string | bool
|
||||
public function getQrCode(Asset $asset) : Response | BinaryFileResponse | string | bool
|
||||
{
|
||||
$settings = Setting::getSettings();
|
||||
|
||||
if (($settings->qr_code == '1') && ($settings->label2_2d_type !== 'none')) {
|
||||
$asset = Asset::withTrashed()->find($assetId);
|
||||
|
||||
if ($asset) {
|
||||
$size = Helper::barcodeDimensions($settings->label2_2d_type);
|
||||
$qr_file = public_path().'/uploads/barcodes/qr-'.str_slug($asset->asset_tag).'-'.str_slug($asset->id).'.png';
|
||||
|
|
37
app/Providers/BreadcrumbsServiceProvider.php
Normal file
37
app/Providers/BreadcrumbsServiceProvider.php
Normal file
|
@ -0,0 +1,37 @@
|
|||
<?php namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Tabuna\Breadcrumbs\Breadcrumbs;
|
||||
use App\Models\Asset;
|
||||
use Tabuna\Breadcrumbs\Trail;
|
||||
|
||||
class BreadcrumbsServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* Bootstrap any application services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
|
||||
Breadcrumbs::for('home', fn (Trail $trail) =>
|
||||
$trail->push('Home', route('home'))
|
||||
);
|
||||
|
||||
Breadcrumbs::for('hardware.index', fn (Trail $trail) =>
|
||||
$trail->parent('home', route('home'))
|
||||
->push(trans('general.assets'), route('hardware.index'))
|
||||
);
|
||||
|
||||
Breadcrumbs::for('hardware.create', fn (Trail $trail) =>
|
||||
$trail->parent('hardware.index', route('hardware.index'))
|
||||
->push(trans('general.create'), route('home'))
|
||||
);
|
||||
|
||||
Breadcrumbs::for('hardware.show', fn (Trail $trail, Asset $asset) =>
|
||||
$trail->parent('hardware.index', route('hardware.index'))
|
||||
->push($asset->asset_tag, route('home'))
|
||||
);
|
||||
}
|
||||
}
|
|
@ -66,6 +66,7 @@
|
|||
"rollbar/rollbar-laravel": "^8.0",
|
||||
"spatie/laravel-backup": "^8.8",
|
||||
"spatie/laravel-ignition": "^2.0",
|
||||
"tabuna/breadcrumbs": "^4.2",
|
||||
"tecnickcom/tc-lib-barcode": "^1.15",
|
||||
"tecnickcom/tcpdf": "^6.5",
|
||||
"unicodeveloper/laravel-password": "^1.0",
|
||||
|
|
68
composer.lock
generated
68
composer.lock
generated
|
@ -4,7 +4,7 @@
|
|||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "2a6e7f5e039ee2f40605aefc5c5baf08",
|
||||
"content-hash": "8966b3d72c2db545cd54772d7f049804",
|
||||
"packages": [
|
||||
{
|
||||
"name": "alek13/slack",
|
||||
|
@ -10938,6 +10938,72 @@
|
|||
],
|
||||
"time": "2024-11-08T15:28:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "tabuna/breadcrumbs",
|
||||
"version": "4.2.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/tabuna/breadcrumbs.git",
|
||||
"reference": "1d9047306f67e7fcc86fc7e608f1432f247636da"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/tabuna/breadcrumbs/zipball/1d9047306f67e7fcc86fc7e608f1432f247636da",
|
||||
"reference": "1d9047306f67e7fcc86fc7e608f1432f247636da",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"laravel/framework": "^10.0|^11.0",
|
||||
"laravel/serializable-closure": "^1.0|^2.0",
|
||||
"php": "^8.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"orchestra/testbench": "^8.0|^9.0",
|
||||
"phpunit/php-code-coverage": "^10.|^11.0",
|
||||
"phpunit/phpunit": "^10.5|^11.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"laravel": {
|
||||
"aliases": {
|
||||
"Breadcrumbs": "Tabuna\\Breadcrumbs\\Breadcrumbs"
|
||||
},
|
||||
"providers": [
|
||||
"Tabuna\\Breadcrumbs\\BreadcrumbsServiceProvider"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Tabuna\\Breadcrumbs\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Alexandr Chernyaev",
|
||||
"email": "bliz48rus@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Dwight Watson",
|
||||
"email": "dwight@studentservices.com.au"
|
||||
},
|
||||
{
|
||||
"name": "Dave James Miller",
|
||||
"email": "dave@davejamesmiller.com"
|
||||
}
|
||||
],
|
||||
"description": "An easy way to add breadcrumbs to your Laravel app.",
|
||||
"support": {
|
||||
"issues": "https://github.com/tabuna/breadcrumbs/issues",
|
||||
"source": "https://github.com/tabuna/breadcrumbs/tree/4.2.1"
|
||||
},
|
||||
"time": "2024-11-26T12:21:27+00:00"
|
||||
},
|
||||
{
|
||||
"name": "tecnickcom/tc-lib-barcode",
|
||||
"version": "1.18.4",
|
||||
|
|
|
@ -316,6 +316,7 @@ return [
|
|||
App\Providers\LivewireServiceProvider::class,
|
||||
App\Providers\MacroServiceProvider::class,
|
||||
App\Providers\SamlServiceProvider::class,
|
||||
App\Providers\BreadcrumbsServiceProvider::class,
|
||||
|
||||
],
|
||||
|
||||
|
|
|
@ -181,7 +181,7 @@
|
|||
@if ($asset->deleted_at=='')
|
||||
@can('update', $asset)
|
||||
<div class="col-md-12 hidden-print" style="padding-top: 5px;">
|
||||
<a href="{{ route('hardware.edit', $asset->id) }}" class="btn btn-sm btn-warning btn-social btn-block hidden-print">
|
||||
<a href="{{ route('hardware.edit', $asset) }}" class="btn btn-sm btn-warning btn-social btn-block hidden-print">
|
||||
<x-icon type="edit" />
|
||||
{{ trans('admin/hardware/general.edit') }}
|
||||
</a>
|
||||
|
|
|
@ -813,7 +813,6 @@ dir="{{ Helper::determineLanguageDirection() }}">
|
|||
<!-- Content Wrapper. Contains page content -->
|
||||
|
||||
<div class="content-wrapper" role="main" id="setting-list">
|
||||
<barepay></barepay>
|
||||
|
||||
@if ($debug_in_production)
|
||||
<div class="row" style="margin-bottom: 0px; background-color: red; color: white; font-size: 15px;">
|
||||
|
@ -828,6 +827,37 @@ dir="{{ Helper::determineLanguageDirection() }}">
|
|||
|
||||
<!-- Content Header (Page header) -->
|
||||
<section class="content-header" style="padding-bottom: 30px;">
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12" style="margin-bottom: 10px;">
|
||||
|
||||
<style>
|
||||
.breadcrumb-item {
|
||||
display: inline;
|
||||
list-style: none;
|
||||
font-size: 110%;
|
||||
}
|
||||
</style>
|
||||
|
||||
@if(Breadcrumbs::has())
|
||||
@foreach (Breadcrumbs::current() as $crumbs)
|
||||
@if ($crumbs->url() && !$loop->last)
|
||||
<li class="breadcrumb-item">
|
||||
<a href="{{ $crumbs->url() }}">
|
||||
{{ $crumbs->title() }}
|
||||
</a> <i class="fa-solid fa-angle-right"></i>
|
||||
</li>
|
||||
@else
|
||||
<li class="breadcrumb-item active">
|
||||
{{ $crumbs->title() }}
|
||||
</li>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h1 class="pull-left pagetitle">@yield('title') </h1>
|
||||
|
||||
@if (isset($helpText))
|
||||
|
|
|
@ -26,6 +26,7 @@ use App\Http\Controllers\Auth\ForgotPasswordController;
|
|||
use App\Http\Controllers\Auth\ResetPasswordController;
|
||||
use App\Livewire\Importer;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Tabuna\Breadcrumbs\Trail;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
Route::group(['middleware' => 'auth'], function () {
|
||||
|
@ -521,14 +522,6 @@ Route::group(['middleware' => 'web'], function () {
|
|||
Route::get('google/callback', 'App\Http\Controllers\GoogleAuthController@handleGoogleCallback')->name('google.callback');
|
||||
|
||||
|
||||
Route::get(
|
||||
'/',
|
||||
[
|
||||
'as' => 'home',
|
||||
'middleware' => ['auth'],
|
||||
'uses' => 'DashboardController@getIndex' ]
|
||||
);
|
||||
|
||||
// need to keep GET /logout for SAML SLO
|
||||
Route::get(
|
||||
'logout',
|
||||
|
@ -554,4 +547,7 @@ Route::withoutMiddleware(['web'])->get(
|
|||
Route::middleware(['auth'])->get(
|
||||
'/',
|
||||
[DashboardController::class, 'index']
|
||||
)->name('home');
|
||||
)->name('home')
|
||||
->breadcrumbs(fn (Trail $trail) =>
|
||||
$trail->push('Home', route('home'))
|
||||
);
|
||||
|
|
|
@ -6,6 +6,7 @@ use App\Http\Controllers\Assets\BulkAssetsController;
|
|||
use App\Http\Controllers\Assets\AssetCheckoutController;
|
||||
use App\Http\Controllers\Assets\AssetCheckinController;
|
||||
use App\Http\Controllers\Assets\AssetFilesController;
|
||||
use Tabuna\Breadcrumbs\Trail;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
/*
|
||||
|
@ -26,11 +27,18 @@ Route::group(
|
|||
|
||||
Route::get('bulkaudit',
|
||||
[AssetsController::class, 'quickScan']
|
||||
)->name('assets.bulkaudit');
|
||||
)
|
||||
->name('assets.bulkaudit')
|
||||
->breadcrumbs(fn (Trail $trail) =>
|
||||
$trail->parent('home')->push(trans('general.assets'), route('hardware.index'))
|
||||
);
|
||||
|
||||
Route::get('quickscancheckin',
|
||||
[AssetsController::class, 'quickScanCheckin']
|
||||
)->name('hardware/quickscancheckin');
|
||||
)->name('hardware/quickscancheckin')
|
||||
->breadcrumbs(fn (Trail $trail) =>
|
||||
$trail->parent('hardware.index')->push('Quickscan Checkin', route('hardware/quickscancheckin'))
|
||||
);
|
||||
|
||||
// Asset Maintenances
|
||||
Route::resource('maintenances',
|
||||
|
@ -108,7 +116,7 @@ Route::group(
|
|||
return redirect()->route('hardware.show', ['hardware' => $assetId]);
|
||||
});
|
||||
|
||||
Route::get('{assetId}/qr_code',
|
||||
Route::get('{asset}/qr_code',
|
||||
[AssetsController::class, 'getQrCode']
|
||||
)->name('qr_code/hardware');
|
||||
|
||||
|
@ -167,9 +175,10 @@ Route::resource('hardware',
|
|||
AssetsController::class,
|
||||
[
|
||||
'middleware' => ['auth'],
|
||||
'parameters' => ['asset' => 'asset_id',
|
||||
'parameters' => [
|
||||
'names' => [
|
||||
'show' => 'view',
|
||||
'index' => 'index',
|
||||
],
|
||||
],
|
||||
]);
|
||||
|
|
Loading…
Reference in a new issue