ajout app

This commit is contained in:
2024-04-17 20:22:30 +02:00
parent cc017cfc5e
commit f9d05a2fd3
8025 changed files with 729805 additions and 0 deletions

View File

@ -0,0 +1,58 @@
<?php
use App\Http\Controllers\Accessories;
use Illuminate\Support\Facades\Route;
/*
* Accessories
*/
Route::group(['prefix' => 'accessories', 'middleware' => ['auth']], function () {
Route::get(
'{accessoryID}/checkout',
[Accessories\AccessoryCheckoutController::class, 'create']
)->name('accessories.checkout.show');
Route::post(
'{accessoryID}/checkout',
[Accessories\AccessoryCheckoutController::class, 'store']
)->name('accessories.checkout.store');
Route::get(
'{accessoryID}/checkin/{backto?}',
[Accessories\AccessoryCheckinController::class, 'create']
)->name('accessories.checkin.show');
Route::post(
'{accessoryID}/checkin/{backto?}',
[Accessories\AccessoryCheckinController::class, 'store']
)->name('accessories.checkin.store');
Route::post(
'{accessoryId}/upload',
[Accessories\AccessoriesFilesController::class, 'store']
)->name('upload/accessory');
Route::delete(
'{accessoryId}/deletefile/{fileId}',
[Accessories\AccessoriesFilesController::class, 'destroy']
)->name('delete/accessoryfile');
Route::get(
'{accessoryId}/showfile/{fileId}/{download?}',
[Accessories\AccessoriesFilesController::class, 'show']
)->name('show.accessoryfile');
Route::get('{accessoryId}/clone',
[Accessories\AccessoriesController::class, 'getClone']
)->name('clone/accessories');
Route::post('{accessoryId}/clone',
[Accessories\AccessoriesController::class, 'postCreate']
);
});
Route::resource('accessories', Accessories\AccessoriesController::class, [
'middleware' => ['auth'],
'parameters' => ['accessory' => 'accessory_id'],
]);

View File

@ -0,0 +1,48 @@
<?php
use App\Http\Controllers\Components;
use Illuminate\Support\Facades\Route;
// Components
Route::group(['prefix' => 'components', 'middleware' => ['auth']], function () {
Route::get(
'{componentID}/checkout',
[Components\ComponentCheckoutController::class, 'create']
)->name('components.checkout.show');
Route::post(
'{componentID}/checkout',
[Components\ComponentCheckoutController::class, 'store']
)->name('components.checkout.store');
Route::get(
'{componentID}/checkin/{backto?}',
[Components\ComponentCheckinController::class, 'create']
)->name('components.checkin.show');
Route::post(
'{componentID}/checkin/{backto?}',
[Components\ComponentCheckinController::class, 'store']
)->name('components.checkin.store');
Route::post(
'{componentId}/upload',
[Components\ComponentsFilesController::class, 'store']
)->name('upload/component');
Route::delete(
'{componentId}/deletefile/{fileId}',
[Components\ComponentsFilesController::class, 'destroy']
)->name('delete/componentfile');
Route::get(
'{componentId}/showfile/{fileId}/{download?}',
[Components\ComponentsFilesController::class, 'show']
)->name('show.componentfile');
});
Route::resource('components', Components\ComponentsController::class, [
'middleware' => ['auth'],
'parameters' => ['component' => 'component_id'],
]);

View File

@ -0,0 +1,40 @@
<?php
use App\Http\Controllers\Consumables;
use Illuminate\Support\Facades\Route;
Route::group(['prefix' => 'consumables', 'middleware' => ['auth']], function () {
Route::get(
'{consumablesID}/checkout',
[Consumables\ConsumableCheckoutController::class, 'create']
)->name('consumables.checkout.show');
Route::post(
'{consumablesID}/checkout',
[Consumables\ConsumableCheckoutController::class, 'store']
)->name('consumables.checkout.store');
Route::post(
'{consumableId}/upload',
[Consumables\ConsumablesFilesController::class, 'store']
)->name('upload/consumable');
Route::delete(
'{consumableId}/deletefile/{fileId}',
[Consumables\ConsumablesFilesController::class, 'destroy']
)->name('delete/consumablefile');
Route::get(
'{consumableId}/showfile/{fileId}/{download?}',
[Consumables\ConsumablesFilesController::class, 'show']
)->name('show.consumablefile');
});
Route::resource('consumables', Consumables\ConsumablesController::class, [
'middleware' => ['auth'],
'parameters' => ['consumable' => 'consumable_id'],
]);

View File

@ -0,0 +1,46 @@
<?php
use App\Http\Controllers\CustomFieldsController;
use App\Http\Controllers\CustomFieldsetsController;
use Illuminate\Support\Facades\Route;
/*
* Custom Fields Routes
*/
Route::group([ 'prefix' => 'fields','middleware' => ['auth'] ], function () {
Route::post(
'required/{fieldset_id}/{field_id}',
[CustomFieldsetsController::class, 'makeFieldRequired']
)->name('fields.required');
Route::post(
'optional/{fieldset_id}/{field_id}',
[CustomFieldsetsController::class, 'makeFieldOptional']
)->name('fields.optional');
Route::post(
'{field_id}/fieldset/{fieldset_id}/disassociate',
[CustomFieldsController::class, 'deleteFieldFromFieldset']
)->name('fields.disassociate');
Route::post(
'fieldsets/{id}/associate',
[CustomFieldsetsController::class, 'associate']
)->name('fieldsets.associate');
Route::resource('fieldsets', CustomFieldsetsController::class, [
'parameters' => ['fieldset' => 'field_id', 'field' => 'field_id']
]);
});
Route::resource('fields', CustomFieldsController::class, [
'middleware' => ['auth'],
'parameters' => ['field' => 'field_id', 'fieldset' => 'fieldset_id'],
]);

View File

@ -0,0 +1,198 @@
<?php
use App\Http\Controllers\AssetMaintenancesController;
use App\Http\Controllers\Assets\AssetsController;
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 Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Asset Routes
|--------------------------------------------------------------------------
|
| Register all the asset routes.
|
*/
Route::group(
[
'prefix' => 'hardware',
'middleware' => ['auth'],
],
function () {
Route::get('bulkaudit',
[AssetsController::class, 'quickScan']
)->name('assets.bulkaudit');
Route::get('quickscancheckin',
[AssetsController::class, 'quickScanCheckin']
)->name('hardware/quickscancheckin');
// Asset Maintenances
Route::resource('maintenances',
AssetMaintenancesController::class, [
'parameters' => ['maintenance' => 'maintenance_id', 'asset' => 'asset_id'],
]);
Route::get('requested', [
AssetsController::class, 'getRequestedIndex']
)->name('assets.requested');
Route::get('scan',
[AssetsController::class, 'scan']
)->name('asset.scan');
Route::get('audit/due',
[AssetsController::class, 'dueForAudit']
)->name('assets.audit.due');
Route::get('audit/overdue',
[AssetsController::class, 'overdueForAudit']
)->name('assets.audit.overdue');
Route::get('audit/due',
[AssetsController::class, 'dueForAudit']
)->name('assets.audit.due');
Route::get('audit/overdue',
[AssetsController::class, 'overdueForAudit']
)->name('assets.audit.overdue');
Route::get('audit/due',
[AssetsController::class, 'dueForAudit']
)->name('assets.audit.due');
Route::get('audit/overdue',
[AssetsController::class, 'overdueForAudit']
)->name('assets.audit.overdue');
Route::get('audit/{id}',
[AssetsController::class, 'audit']
)->name('asset.audit.create');
Route::post('audit/{id}',
[AssetsController::class, 'auditStore']
)->name('asset.audit.store');
Route::get('history',
[AssetsController::class, 'getImportHistory']
)->name('asset.import-history');
Route::post('history',
[AssetsController::class, 'postImportHistory']
)->name('asset.process-import-history');
Route::get('bytag/{any?}',
[AssetsController::class, 'getAssetByTag']
)->where('any', '.*')->name('findbytag/hardware');
Route::get('byserial/{any?}',
[AssetsController::class, 'getAssetBySerial']
)->where('any', '.*')->name('findbyserial/hardware');
Route::get('{assetId}/clone',
[AssetsController::class, 'getClone']
)->name('clone/hardware');
Route::get('{assetId}/label',
[AssetsController::class, 'getLabel']
)->name('label/hardware');
Route::post('{assetId}/clone',
[AssetsController::class, 'postCreate']
);
Route::get('{assetId}/checkout',
[AssetCheckoutController::class, 'create']
)->name('hardware.checkout.create');
Route::post('{assetId}/checkout',
[AssetCheckoutController::class, 'store']
)->name('hardware.checkout.store');
Route::get('{assetId}/checkin/{backto?}',
[AssetCheckinController::class, 'create']
)->name('hardware.checkin.create');
Route::post('{assetId}/checkin/{backto?}',
[AssetCheckinController::class, 'store']
)->name('hardware.checkin.store');
// Redirect old legacy /asset_id/view urls to the resource route version
Route::get('{assetId}/view', function ($assetId) {
return redirect()->route('hardware.show', ['hardware' => $assetId]);
});
Route::get('{assetId}/qr_code',
[AssetsController::class, 'getQrCode']
)->name('qr_code/hardware');
Route::get('{assetId}/barcode',
[AssetsController::class, 'getBarCode']
)->name('barcode/hardware');
Route::post('{assetId}/restore',
[AssetsController::class, 'getRestore']
)->name('restore/hardware');
Route::post('{assetId}/upload',
[AssetFilesController::class, 'store']
)->name('upload/asset');
Route::get('{assetId}/showfile/{fileId}/{download?}',
[AssetFilesController::class, 'show']
)->name('show/assetfile');
Route::delete('{assetId}/showfile/{fileId}/delete',
[AssetFilesController::class, 'destroy']
)->name('delete/assetfile');
Route::post(
'bulkedit',
[BulkAssetsController::class, 'edit']
)->name('hardware/bulkedit');
Route::post(
'bulkdelete',
[BulkAssetsController::class, 'destroy']
)->name('hardware/bulkdelete');
Route::post(
'bulkrestore',
[BulkAssetsController::class, 'restore']
)->name('hardware/bulkrestore');
Route::post(
'bulksave',
[BulkAssetsController::class, 'update']
)->name('hardware/bulksave');
// Bulk checkout / checkin
Route::get('bulkcheckout',
[BulkAssetsController::class, 'showCheckout']
)->name('hardware.bulkcheckout.show');
Route::post('bulkcheckout',
[BulkAssetsController::class, 'storeCheckout']
)->name('hardware.bulkcheckout.store');
});
Route::resource('hardware',
AssetsController::class,
[
'middleware' => ['auth'],
'parameters' => ['asset' => 'asset_id',
'names' => [
'show' => 'view',
],
],
]);
Route::get('ht/{any?}',
[AssetsController::class, 'getAssetByTag']
)->where('any', '.*')->name('ht/assetTag');

View File

@ -0,0 +1,80 @@
<?php
use App\Http\Controllers\Kits;
use Illuminate\Support\Facades\Route;
// Predefined Kit Management
Route::resource('kits', Kits\PredefinedKitsController::class, [
'middleware' => ['auth'],
'parameters' => ['kit' => 'kit_id'],
]);
Route::group(['prefix' => 'kits/{kit_id}', 'middleware' => ['auth']], function () {
// Route::get('licenses',
// [Kits\PredefinedKitsController::class, 'indexLicenses']
// )->name('kits.licenses.index');
Route::post('licenses',
[Kits\PredefinedKitsController::class, 'storeLicense']
)->name('kits.licenses.store');
Route::put('licenses/{license_id}',
[Kits\PredefinedKitsController::class, 'updateLicense']
)->name('kits.licenses.update');
Route::get('licenses/{license_id}/edit',
[Kits\PredefinedKitsController::class, 'editLicense']
)->name('kits.licenses.edit');
Route::delete('licenses/{license_id}',
[Kits\PredefinedKitsController::class, 'detachLicense']
)->name('kits.licenses.detach');
// Models
Route::put('models/{model_id}',
[Kits\PredefinedKitsController::class, 'updateModel']
)/* ->parameters([2 => 'kit_id', 1 => 'model_id'])*/->name('kits.models.update');
Route::get('models/{model_id}/edit',
[Kits\PredefinedKitsController::class, 'editModel']
)->name('kits.models.edit');
Route::delete('models/{model_id}',
[Kits\PredefinedKitsController::class, 'detachModel']
)->name('kits.models.detach');
// Consumables
Route::put('consumables/{consumable_id}',
[Kits\PredefinedKitsController::class, 'updateConsumable']
)/*->parameters([2 => 'kit_id', 1 => 'consumable_id'])*/->name('kits.consumables.update');
Route::get('consumables/{consumable_id}/edit',
[Kits\PredefinedKitsController::class, 'editConsumable']
)->name('kits.consumables.edit');
Route::delete('consumables/{consumable_id}',
[Kits\PredefinedKitsController::class, 'detachConsumable']
)->name('kits.consumables.detach');
// Accessories
Route::put('accessories/{accessory_id}',
[Kits\PredefinedKitsController::class, 'updateAccessory']
)/*->parameters([2 => 'kit_id', 1 => 'accessory_id'])*/->name('kits.accessories.update');
Route::get('accessories/{accessory_id}/edit',
[Kits\PredefinedKitsController::class, 'editAccessory']
)->name('kits.accessories.edit');
Route::delete('accessories/{accessory_id}',
[Kits\PredefinedKitsController::class, 'detachAccessory']
)->name('kits.accessories.detach');
Route::get('checkout',
[Kits\CheckoutKitController::class, 'showCheckout']
)->name('kits.checkout.show');
Route::post('checkout',
[Kits\CheckoutKitController::class, 'store']
)->name('kits.checkout.store');
}); // kits

View File

@ -0,0 +1,56 @@
<?php
use App\Http\Controllers\Licenses;
use Illuminate\Support\Facades\Route;
// Licenses
Route::group(['prefix' => 'licenses', 'middleware' => ['auth']], function () {
Route::get('{licenseId}/clone', [Licenses\LicensesController::class, 'getClone'])->name('clone/license');
Route::get('{licenseId}/freecheckout',
[Licenses\LicensesController::class, 'getFreeLicense']
)->name('licenses.freecheckout');
Route::get('{licenseId}/checkout/{seatId?}',
[Licenses\LicenseCheckoutController::class, 'create']
)->name('licenses.checkout');
Route::post(
'{licenseId}/checkout/{seatId?}',
[Licenses\LicenseCheckoutController::class, 'store']
); //name() would duplicate here, so we skip it.
Route::get('{licenseSeatId}/checkin/{backto?}',
[Licenses\LicenseCheckinController::class, 'create']
)->name('licenses.checkin');
Route::post('{licenseId}/checkin/{backto?}',
[Licenses\LicenseCheckinController::class, 'store']
)->name('licenses.checkin.save');
Route::post(
'{licenseId}/bulkcheckin',
[Licenses\LicenseCheckinController::class, 'bulkCheckin']
)->name('licenses.bulkcheckin');
Route::post(
'{licenseId}/bulkcheckout',
[Licenses\LicenseCheckoutController::class, 'bulkCheckout']
)->name('licenses.bulkcheckout');
Route::post(
'{licenseId}/upload',
[Licenses\LicenseFilesController::class, 'store']
)->name('upload/license');
Route::delete(
'{licenseId}/deletefile/{fileId}',
[Licenses\LicenseFilesController::class, 'destroy']
)->name('delete/licensefile');
Route::get(
'{licenseId}/showfile/{fileId}/{download?}',
[Licenses\LicenseFilesController::class, 'show']
)->name('show.licensefile');
});
Route::resource('licenses', Licenses\LicensesController::class, [
'middleware' => ['auth'],
'parameters' => ['license' => 'license_id'],
]);

View File

@ -0,0 +1,96 @@
<?php
use App\Http\Controllers\AssetModelsController;
use App\Http\Controllers\AssetModelsFilesController;
use App\Http\Controllers\BulkAssetModelsController;
use Illuminate\Support\Facades\Route;
// Asset Model Management
Route::group(['prefix' => 'models', 'middleware' => ['auth']], function () {
Route::post('{modelID}/upload',
[AssetModelsFilesController::class, 'store']
)->name('upload/models');
Route::get('{modelID}/showfile/{fileId}/{download?}',
[AssetModelsFilesController::class, 'show']
)->name('show/modelfile');
Route::delete('{modelID}/showfile/{fileId}/delete',
[AssetModelsFilesController::class, 'destroy']
)->name('delete/modelfile');
Route::get(
'{modelId}/clone',
[
AssetModelsController::class,
'getClone'
]
)->name('models.clone.create');
Route::post(
'{modelId}/clone',
[
AssetModelsController::class,
'postCreate'
]
)->name('models.clone.store');
Route::get(
'{modelId}/view',
[
AssetModelsController::class,
'getView'
]
)->name('view/model');
Route::post(
'{modelID}/restore',
[
AssetModelsController::class,
'getRestore'
]
)->name('models.restore.store');
Route::get(
'{modelId}/custom_fields',
[
AssetModelsController::class,
'getCustomFields'
]
)->name('custom_fields/model');
Route::post(
'bulkedit',
[
BulkAssetModelsController::class,
'edit'
]
)->name('models.bulkedit.index');
Route::post(
'bulksave',
[
BulkAssetModelsController::class,
'update'
]
)->name('models.bulkedit.store');
Route::post(
'bulkdelete',
[
BulkAssetModelsController::class,
'destroy'
]
)->name('models.bulkdelete.store');
});
Route::resource('models', AssetModelsController::class, [
'middleware' => ['auth'],
'parameters' => ['model' => 'model_id'],
]);

View File

@ -0,0 +1,154 @@
<?php
use App\Http\Controllers\Users;
use App\Http\Controllers\Users\UserFilesController;
use Illuminate\Support\Facades\Route;
// User Management
Route::group(['prefix' => 'users', 'middleware' => ['auth']], function () {
Route::get(
'ldap',
[
Users\LDAPImportController::class,
'create'
]
)->name('ldap/user');
Route::post(
'ldap',
[
Users\LDAPImportController::class,
'store'
]
);
Route::get(
'export',
[
Users\UsersController::class,
'getExportUserCsv'
]
)->name('users.export');
Route::get(
'{userId}/clone',
[
Users\UsersController::class,
'getClone'
]
)->name('users.clone.show');
Route::post(
'{userId}/clone',
[
Users\UsersController::class,
'postCreate'
]
)->name('users.clone.store');
Route::post(
'{userId}/restore',
[
Users\UsersController::class,
'getRestore'
]
)->name('users.restore.store');
Route::get(
'{userId}/unsuspend',
[
Users\UsersController::class,
'getUnsuspend'
]
)->name('unsuspend/user');
Route::post(
'{userId}/upload',
[
Users\UserFilesController::class,
'store'
]
)->name('upload/user');
Route::delete(
'{userId}/deletefile/{fileId}',
[
Users\UserFilesController::class,
'destroy'
]
)->name('userfile.destroy');
Route::get(
'{userId}/showfile/{fileId}',
[
Users\UserFilesController::class,
'show'
]
)->name('show/userfile');
Route::post(
'{userId}/password',
[
Users\UsersController::class,
'sendPasswordReset'
]
)->name('users.password');
Route::get(
'{userId}/print',
[
Users\UsersController::class,
'printInventory'
]
)->name('users.print');
Route::post(
'{userId}/email',
[
Users\UsersController::class,
'emailAssetList'
]
)->name('users.email');
Route::post(
'bulkedit',
[
Users\BulkUsersController::class,
'edit'
]
)->name('users/bulkedit');
Route::post(
'merge',
[
Users\BulkUsersController::class,
'merge'
]
)->name('users.merge.save');
Route::post(
'bulksave',
[
Users\BulkUsersController::class,
'destroy'
]
)->name('users/bulksave');
Route::post(
'bulkeditsave',
[
Users\BulkUsersController::class,
'update'
]
)->name('users/bulkeditsave');
});
Route::resource('users', Users\UsersController::class, [
'middleware' => ['auth'],
'parameters' => ['user' => 'user_id'],
]);