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]
|
* @since [v1.0]
|
||||||
* @return \Illuminate\Contracts\View\View
|
* @return \Illuminate\Contracts\View\View
|
||||||
*/
|
*/
|
||||||
public function edit($assetId = null) : View | RedirectResponse
|
public function edit(Asset $asset) : View | RedirectResponse
|
||||||
{
|
{
|
||||||
if (! $item = Asset::find($assetId)) {
|
$this->authorize($asset);
|
||||||
// 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);
|
|
||||||
|
|
||||||
return view('hardware/edit', compact('item'))
|
return view('hardware/edit', compact('asset'))
|
||||||
->with('statuslabel_list', Helper::statusLabelList())
|
->with('statuslabel_list', Helper::statusLabelList())
|
||||||
->with('statuslabel_types', Helper::statusTypeList());
|
->with('statuslabel_types', Helper::statusTypeList());
|
||||||
}
|
}
|
||||||
|
@ -267,15 +262,14 @@ class AssetsController extends Controller
|
||||||
* @since [v1.0]
|
* @since [v1.0]
|
||||||
* @return \Illuminate\Contracts\View\View
|
* @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);
|
$this->authorize('view', $asset);
|
||||||
$settings = Setting::getSettings();
|
$settings = Setting::getSettings();
|
||||||
|
|
||||||
if (isset($asset)) {
|
if (isset($asset)) {
|
||||||
$audit_log = Actionlog::where('action_type', '=', 'audit')
|
$audit_log = Actionlog::where('action_type', '=', 'audit')
|
||||||
->where('item_id', '=', $assetId)
|
->where('item_id', '=', $asset->id)
|
||||||
->where('item_type', '=', Asset::class)
|
->where('item_type', '=', Asset::class)
|
||||||
->orderBy('created_at', 'DESC')->first();
|
->orderBy('created_at', 'DESC')->first();
|
||||||
|
|
||||||
|
@ -291,7 +285,7 @@ class AssetsController extends Controller
|
||||||
|
|
||||||
$qr_code = (object) [
|
$qr_code = (object) [
|
||||||
'display' => $settings->qr_code == '1',
|
'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'))
|
return view('hardware/view', compact('asset', 'qr_code', 'settings'))
|
||||||
|
@ -531,12 +525,12 @@ class AssetsController extends Controller
|
||||||
* @param int $assetId
|
* @param int $assetId
|
||||||
* @since [v1.0]
|
* @since [v1.0]
|
||||||
*/
|
*/
|
||||||
public function getQrCode($assetId = null) : Response | BinaryFileResponse | string | bool
|
public function getQrCode(Asset $asset) : Response | BinaryFileResponse | string | bool
|
||||||
{
|
{
|
||||||
$settings = Setting::getSettings();
|
$settings = Setting::getSettings();
|
||||||
|
|
||||||
if (($settings->qr_code == '1') && ($settings->label2_2d_type !== 'none')) {
|
if (($settings->qr_code == '1') && ($settings->label2_2d_type !== 'none')) {
|
||||||
$asset = Asset::withTrashed()->find($assetId);
|
|
||||||
if ($asset) {
|
if ($asset) {
|
||||||
$size = Helper::barcodeDimensions($settings->label2_2d_type);
|
$size = Helper::barcodeDimensions($settings->label2_2d_type);
|
||||||
$qr_file = public_path().'/uploads/barcodes/qr-'.str_slug($asset->asset_tag).'-'.str_slug($asset->id).'.png';
|
$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",
|
"rollbar/rollbar-laravel": "^8.0",
|
||||||
"spatie/laravel-backup": "^8.8",
|
"spatie/laravel-backup": "^8.8",
|
||||||
"spatie/laravel-ignition": "^2.0",
|
"spatie/laravel-ignition": "^2.0",
|
||||||
|
"tabuna/breadcrumbs": "^4.2",
|
||||||
"tecnickcom/tc-lib-barcode": "^1.15",
|
"tecnickcom/tc-lib-barcode": "^1.15",
|
||||||
"tecnickcom/tcpdf": "^6.5",
|
"tecnickcom/tcpdf": "^6.5",
|
||||||
"unicodeveloper/laravel-password": "^1.0",
|
"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",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "2a6e7f5e039ee2f40605aefc5c5baf08",
|
"content-hash": "8966b3d72c2db545cd54772d7f049804",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "alek13/slack",
|
"name": "alek13/slack",
|
||||||
|
@ -10938,6 +10938,72 @@
|
||||||
],
|
],
|
||||||
"time": "2024-11-08T15:28:48+00:00"
|
"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",
|
"name": "tecnickcom/tc-lib-barcode",
|
||||||
"version": "1.18.4",
|
"version": "1.18.4",
|
||||||
|
|
|
@ -316,6 +316,7 @@ return [
|
||||||
App\Providers\LivewireServiceProvider::class,
|
App\Providers\LivewireServiceProvider::class,
|
||||||
App\Providers\MacroServiceProvider::class,
|
App\Providers\MacroServiceProvider::class,
|
||||||
App\Providers\SamlServiceProvider::class,
|
App\Providers\SamlServiceProvider::class,
|
||||||
|
App\Providers\BreadcrumbsServiceProvider::class,
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
|
@ -181,7 +181,7 @@
|
||||||
@if ($asset->deleted_at=='')
|
@if ($asset->deleted_at=='')
|
||||||
@can('update', $asset)
|
@can('update', $asset)
|
||||||
<div class="col-md-12 hidden-print" style="padding-top: 5px;">
|
<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" />
|
<x-icon type="edit" />
|
||||||
{{ trans('admin/hardware/general.edit') }}
|
{{ trans('admin/hardware/general.edit') }}
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -813,7 +813,6 @@ dir="{{ Helper::determineLanguageDirection() }}">
|
||||||
<!-- Content Wrapper. Contains page content -->
|
<!-- Content Wrapper. Contains page content -->
|
||||||
|
|
||||||
<div class="content-wrapper" role="main" id="setting-list">
|
<div class="content-wrapper" role="main" id="setting-list">
|
||||||
<barepay></barepay>
|
|
||||||
|
|
||||||
@if ($debug_in_production)
|
@if ($debug_in_production)
|
||||||
<div class="row" style="margin-bottom: 0px; background-color: red; color: white; font-size: 15px;">
|
<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) -->
|
<!-- Content Header (Page header) -->
|
||||||
<section class="content-header" style="padding-bottom: 30px;">
|
<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>
|
<h1 class="pull-left pagetitle">@yield('title') </h1>
|
||||||
|
|
||||||
@if (isset($helpText))
|
@if (isset($helpText))
|
||||||
|
|
|
@ -26,6 +26,7 @@ use App\Http\Controllers\Auth\ForgotPasswordController;
|
||||||
use App\Http\Controllers\Auth\ResetPasswordController;
|
use App\Http\Controllers\Auth\ResetPasswordController;
|
||||||
use App\Livewire\Importer;
|
use App\Livewire\Importer;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
use Tabuna\Breadcrumbs\Trail;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
Route::group(['middleware' => 'auth'], function () {
|
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('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
|
// need to keep GET /logout for SAML SLO
|
||||||
Route::get(
|
Route::get(
|
||||||
'logout',
|
'logout',
|
||||||
|
@ -554,4 +547,7 @@ Route::withoutMiddleware(['web'])->get(
|
||||||
Route::middleware(['auth'])->get(
|
Route::middleware(['auth'])->get(
|
||||||
'/',
|
'/',
|
||||||
[DashboardController::class, 'index']
|
[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\AssetCheckoutController;
|
||||||
use App\Http\Controllers\Assets\AssetCheckinController;
|
use App\Http\Controllers\Assets\AssetCheckinController;
|
||||||
use App\Http\Controllers\Assets\AssetFilesController;
|
use App\Http\Controllers\Assets\AssetFilesController;
|
||||||
|
use Tabuna\Breadcrumbs\Trail;
|
||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -26,11 +27,18 @@ Route::group(
|
||||||
|
|
||||||
Route::get('bulkaudit',
|
Route::get('bulkaudit',
|
||||||
[AssetsController::class, 'quickScan']
|
[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',
|
Route::get('quickscancheckin',
|
||||||
[AssetsController::class, '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
|
// Asset Maintenances
|
||||||
Route::resource('maintenances',
|
Route::resource('maintenances',
|
||||||
|
@ -108,7 +116,7 @@ Route::group(
|
||||||
return redirect()->route('hardware.show', ['hardware' => $assetId]);
|
return redirect()->route('hardware.show', ['hardware' => $assetId]);
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::get('{assetId}/qr_code',
|
Route::get('{asset}/qr_code',
|
||||||
[AssetsController::class, 'getQrCode']
|
[AssetsController::class, 'getQrCode']
|
||||||
)->name('qr_code/hardware');
|
)->name('qr_code/hardware');
|
||||||
|
|
||||||
|
@ -167,10 +175,11 @@ Route::resource('hardware',
|
||||||
AssetsController::class,
|
AssetsController::class,
|
||||||
[
|
[
|
||||||
'middleware' => ['auth'],
|
'middleware' => ['auth'],
|
||||||
'parameters' => ['asset' => 'asset_id',
|
'parameters' => [
|
||||||
'names' => [
|
'names' => [
|
||||||
'show' => 'view',
|
'show' => 'view',
|
||||||
],
|
'index' => 'index',
|
||||||
|
],
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue