Merge branch 'develop-v6-integration' of https://github.com/snipe/snipe-it into develop-v6-integration

This commit is contained in:
snipe 2021-06-23 14:27:26 -07:00
commit 6e7ef585e4
14 changed files with 61857 additions and 52334 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

96724
public/js/dist/all.js vendored

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
{ {
"/js/build/app.js": "/js/build/app.js?id=a8ab86a7bec4988cd99d", "/js/build/app.js": "/js/build/app.js?id=040538f479884513ec7c",
"/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=83e39e254b7f9035eddc", "/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=83e39e254b7f9035eddc",
"/css/build/overrides.css": "/css/build/overrides.css?id=b9b59d80509972c3b16a", "/css/build/overrides.css": "/css/build/overrides.css?id=b9b59d80509972c3b16a",
"/css/build/app.css": "/css/build/app.css?id=1da91ae0ff24d10b7207", "/css/build/app.css": "/css/build/app.css?id=1da91ae0ff24d10b7207",
@ -24,9 +24,9 @@
"/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced", "/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced",
"/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced", "/css/dist/signature-pad.min.css": "/css/dist/signature-pad.min.css?id=6a89d3cd901305e66ced",
"/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=93c24b4c89490bbfd73e", "/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=93c24b4c89490bbfd73e",
"/js/build/vendor.js": "/js/build/vendor.js?id=b93877b4a88a76e1b18b", "/js/build/vendor.js": "/js/build/vendor.js?id=651427cc4b45d8e68d0c",
"/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=5bbc20d77c1456cfc2ef", "/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=5bbc20d77c1456cfc2ef",
"/js/dist/all.js": "/js/dist/all.js?id=96b6dd9441d8c6c98369", "/js/dist/all.js": "/js/dist/all.js?id=ae6dedae06d52fe6a798",
"/css/dist/skins/skin-green.min.css": "/css/dist/skins/skin-green.min.css?id=efda2335fa5243175850", "/css/dist/skins/skin-green.min.css": "/css/dist/skins/skin-green.min.css?id=efda2335fa5243175850",
"/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=76cd718f22d841ba3632", "/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=76cd718f22d841ba3632",
"/css/dist/skins/skin-black.min.css": "/css/dist/skins/skin-black.min.css?id=ec96c42439cdeb022133", "/css/dist/skins/skin-black.min.css": "/css/dist/skins/skin-black.min.css?id=ec96c42439cdeb022133",

View file

@ -6,7 +6,7 @@ window._ = require('lodash');
* for JavaScript based Bootstrap features such as modals and tabs. This * for JavaScript based Bootstrap features such as modals and tabs. This
* code may be modified to fit the specific needs of your application. * code may be modified to fit the specific needs of your application.
*/ */
window.$ = window.jQuery = require('jquery'); //window.$ = window.jQuery = require('jquery');
/** /**
* jQuery UI is loaded here and then the tooltip is assigned another funtion name * jQuery UI is loaded here and then the tooltip is assigned another funtion name
@ -26,7 +26,7 @@ require('bootstrap-less');
* and simple, leaving you to focus on building your next great project. * and simple, leaving you to focus on building your next great project.
*/ */
window.Vue = require('vue'); window.Vue = require('vue').default;
window.eventHub = new Vue(); window.eventHub = new Vue();
require('vue-resource'); require('vue-resource');
@ -42,6 +42,11 @@ Vue.http.interceptors.push(function (request, next) {
next(); next();
}); });
// require('admin-lte');
// require('chart.js');
// require('jquery-form-validator'); //says something about dependency
/** /**
* Echo exposes an expressive API for subscribing to channels and listening * Echo exposes an expressive API for subscribing to channels and listening
* for events that are broadcast by Laravel. Echo and event broadcasting * for events that are broadcast by Laravel. Echo and event broadcasting

View file

@ -12,7 +12,7 @@
</template> </template>
<script> <script>
require('select2'); //require('select2');
export default { export default {
/* /*
* The component's data. * The component's data.

View file

@ -1,4 +1,8 @@
// var jQuery = require('jquery');
// window.jQuery = jQuery
// window.$ = jQuery
/** /**
* Module containing core application logic. * Module containing core application logic.
* @param {jQuery} $ Insulated jQuery object * @param {jQuery} $ Insulated jQuery object

View file

@ -11,29 +11,36 @@ require('./bootstrap');
* the page. Then, you may begin adding components to this application * the page. Then, you may begin adding components to this application
* or customize the JavaScript scaffolding to fit your unique needs. * or customize the JavaScript scaffolding to fit your unique needs.
*/ */
import PassportClients from './components/passport/Clients.vue'
import PassportAuthorizedClients from './components/passport/AuthorizedClients.vue'
import PassportPersonalAccessTokens from './components/passport/PersonalAccessTokens.vue'
import Importer from './components/importer/importer.vue'
import FieldsetDefaultValues from './components/forms/asset-models/fieldset-default-values.vue'
Vue.component( Vue.component(
'passport-clients', 'passport-clients',
require('./components/passport/Clients.vue') PassportClients
); );
Vue.component( Vue.component(
'passport-authorized-clients', 'passport-authorized-clients',
require('./components/passport/AuthorizedClients.vue') PassportAuthorizedClients
); );
Vue.component( Vue.component(
'passport-personal-access-tokens', 'passport-personal-access-tokens',
require('./components/passport/PersonalAccessTokens.vue') PassportPersonalAccessTokens
); );
Vue.component( Vue.component(
'importer', 'importer',
require('./components/importer/importer.vue') Importer
); );
Vue.component( Vue.component(
'fieldset-default-values', 'fieldset-default-values',
require('./components/forms/asset-models/fieldset-default-values.vue') FieldsetDefaultValues
); );
// Commented out currently to avoid trying to load vue everywhere. // Commented out currently to avoid trying to load vue everywhere.

View file

@ -74,6 +74,7 @@
}; };
</script> </script>
<!-- Add laravel routes into javascript Primarily useful for vue.--> <!-- Add laravel routes into javascript Primarily useful for vue.-->
@routes('vue_routes')
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<script src="{{ url(asset('js/html5shiv.js')) }}" nonce="{{ csrf_token() }}"></script> <script src="{{ url(asset('js/html5shiv.js')) }}" nonce="{{ csrf_token() }}"></script>

View file

@ -980,14 +980,14 @@ Route::group(['prefix' => 'v1', 'middleware' => 'api'], function () {
] ]
)->name('api.kits.models.store'); )->name('api.kits.models.store');
Route::put('models/{model_id', Route::put('models/{model_id}',
[ [
Api\PredefinedKitsController::class, Api\PredefinedKitsController::class,
'updateModels' 'updateModels'
] ]
)->name('api.kits.models.update'); )->name('api.kits.models.update');
Route::delete('models/{model_id', Route::delete('models/{model_id}',
[ [
Api\PredefinedKitsController::class, Api\PredefinedKitsController::class,
'detachModels' 'detachModels'

View file

@ -16,172 +16,132 @@ Route::group(
['prefix' => 'hardware', ['prefix' => 'hardware',
'middleware' => ['auth'], ], 'middleware' => ['auth'], ],
function () { function () {
Route::get('bulkaudit', [ Route::get('bulkaudit',
'as' => 'assets.bulkaudit', [Assets\AssetsController::class, 'quickScan']
'uses' => [Assets\AssetsController::class, 'quickScan'], )->name('assets.bulkaudit');
]);
// Asset Maintenances // Asset Maintenances
Route::resource('maintenances', AssetMaintenancesController::class, [ Route::resource('maintenances', AssetMaintenancesController::class, [
'parameters' => ['maintenance' => 'maintenance_id', 'asset' => 'asset_id'], 'parameters' => ['maintenance' => 'maintenance_id', 'asset' => 'asset_id'],
]); ]);
Route::get('requested', ['as' => 'assets.requested', 'uses' => [Assets\AssetsController::class, 'getRequestedIndex']]); Route::get('requested', [Assets\AssetsController::class, 'getRequestedIndex'])->name('assets.requested');
Route::get('scan', [ Route::get('scan',
'as' => 'asset.scan', [Assets\AssetsController::class, 'scan']
'uses' => [Assets\AssetsController::class, 'scan'], )->name('asset.scan');
]);
Route::get('audit/due', [ Route::get('audit/due',
'as' => 'assets.audit.due', [Assets\AssetsController::class, 'dueForAudit']
'uses' => [Assets\AssetsController::class, 'dueForAudit'], )->name('assets.audit.due');
]);
Route::get('audit/overdue', [ Route::get('audit/overdue',
'as' => 'assets.audit.overdue', [Assets\AssetsController::class, 'overdueForAudit']
'uses' => [Assets\AssetsController::class, 'overdueForAudit'], )->name('assets.audit.overdue');
]);
Route::get('audit/due', [ Route::get('audit/due',
'as' => 'assets.audit.due', [Assets\AssetsController::class, 'dueForAudit']
'uses' => [Assets\AssetsController::class, 'dueForAudit'], )->name('assets.audit.due');
]);
Route::get('audit/overdue', [ Route::get('audit/overdue',
'as' => 'assets.audit.overdue', [Assets\AssetsController::class, 'overdueForAudit']
'uses' => [Assets\AssetsController::class, 'overdueForAudit'], )->name('assets.audit.overdue');
]);
Route::get('audit/due', [ Route::get('audit/due',
'as' => 'assets.audit.due', [Assets\AssetsController::class, 'dueForAudit']
'uses' => [Assets\AssetsController::class, 'dueForAudit'], )->name('assets.audit.due');
]);
Route::get('audit/overdue', [ Route::get('audit/overdue',
'as' => 'assets.audit.overdue', [Assets\AssetsController::class, 'overdueForAudit']
'uses' => [Assets\AssetsController::class, 'overdueForAudit'], )->name('assets.audit.overdue');
]);
Route::get('audit/{id}', [ Route::get('audit/{id}',
'as' => 'asset.audit.create', [Assets\AssetsController::class, 'audit']
'uses' => [Assets\AssetsController::class, 'audit'], )->name('asset.audit.create');
]);
Route::post('audit/{id}', [ Route::post('audit/{id}',
'as' => 'asset.audit.store', [Assets\AssetsController::class, 'auditStore']
'uses' => [Assets\AssetsController::class, 'auditStore'], )->name('asset.audit.store');
]);
Route::get('history', [ Route::get('history',
'as' => 'asset.import-history', [Assets\AssetsController::class, 'getImportHistory']
'uses' => [Assets\AssetsController::class, 'getImportHistory'], )->name('asset.import-history');
]);
Route::post('history', [ Route::post('history',
'as' => 'asset.process-import-history', [Assets\AssetsController::class, 'postImportHistory']
'uses' => [Assets\AssetsController::class, 'postImportHistory'], )->name('asset.process-import-history');
]);
Route::get('bytag/{any?}', Route::get('bytag/{any?}',
[ [Assets\AssetsController::class, 'getAssetByTag']
'as' => 'findbytag/hardware', )->where('any', '.*')->name('findbytag/hardware');
'uses' => [Assets\AssetsController::class, 'getAssetByTag'],
]
)->where('any', '.*');
Route::get('byserial/{any?}', Route::get('byserial/{any?}',
[ [Assets\AssetsController::class, 'getAssetBySerial']
'as' => 'findbyserial/hardware', )->where('any', '.*')->name('findbyserial/hardware');
'uses' => [Assets\AssetsController::class, 'getAssetBySerial'],
]
)->where('any', '.*');
Route::get('{assetId}/clone', [ Route::get('{assetId}/clone',
'as' => 'clone/hardware', [Assets\AssetsController::class, 'getClone']
'uses' => [Assets\AssetsController::class, 'getClone'], )->name('clone/hardware');
]);
Route::get('{assetId}/label', [ Route::get('{assetId}/label',
'as' => 'label/hardware', [Assets\AssetsController::class, 'getLabel']
'uses' => [Assets\AssetsController::class, 'getLabel'], )->name('label/hardware');
]);
Route::post('{assetId}/clone', [Assets\AssetsController::class, 'postCreate']); Route::post('{assetId}/clone', [Assets\AssetsController::class, 'postCreate']);
Route::get('{assetId}/checkout', [ Route::get('{assetId}/checkout',
'as' => 'checkout/hardware', [Assets\AssetCheckoutController::class, 'create']
'uses' => [Assets\AssetCheckoutController::class, 'create'], )->name('checkout/hardware');
]); Route::post('{assetId}/checkout',
Route::post('{assetId}/checkout', [ [Assets\AssetCheckoutController::class, 'store']
'as' => 'checkout/hardware', )->name('checkout/hardware');
'uses' => [Assets\AssetCheckoutController::class, 'store'], Route::get('{assetId}/checkin/{backto?}',
]); [Assets\AssetCheckinController::class, 'create']
Route::get('{assetId}/checkin/{backto?}', [ )->name('checkin/hardware');
'as' => 'checkin/hardware',
'uses' => [Assets\AssetCheckinController::class, 'create'],
]);
Route::post('{assetId}/checkin/{backto?}', [ Route::post('{assetId}/checkin/{backto?}',
'as' => 'checkin/hardware', [Assets\AssetCheckinController::class, 'store']
'uses' => [Assets\AssetCheckinController::class, 'store'], )->name('checkin/hardware');
]); Route::get('{assetId}/view',
Route::get('{assetId}/view', [ [Assets\AssetsController::class, 'show']
'as' => 'hardware.view', )->name('hardware.view');
'uses' => [Assets\AssetsController::class, 'show'], Route::get('{assetId}/qr_code', [Assets\AssetsController::class, 'getQrCode'])->name('qr_code/hardware');
]); Route::get('{assetId}/barcode', [Assets\AssetsController::class, 'getBarCode'])->name('barcode/hardware');
Route::get('{assetId}/qr_code', ['as' => 'qr_code/hardware', 'uses' => [Assets\AssetsController::class, 'getQrCode']]); Route::get('{assetId}/restore',
Route::get('{assetId}/barcode', ['as' => 'barcode/hardware', 'uses' => [Assets\AssetsController::class, 'getBarCode']]); [Assets\AssetsController::class, 'getRestore']
Route::get('{assetId}/restore', [ )->name('restore/hardware');
'as' => 'restore/hardware', Route::post('{assetId}/upload',
'uses' => [Assets\AssetsController::class, 'getRestore'], [Assets\AssetFilesController::class, 'store']
]); )->name('upload/asset');
Route::post('{assetId}/upload', [
'as' => 'upload/asset',
'uses' => [Assets\AssetFilesController::class, 'store'],
]);
Route::get('{assetId}/showfile/{fileId}/{download?}', [ Route::get('{assetId}/showfile/{fileId}/{download?}',
'as' => 'show/assetfile', [Assets\AssetFilesController::class, 'show']
'uses' => [Assets\AssetFilesController::class, 'show'], )->name('show/assetfile');
]);
Route::delete('{assetId}/showfile/{fileId}/delete', [ Route::delete('{assetId}/showfile/{fileId}/delete',
'as' => 'delete/assetfile', [Assets\AssetFilesController::class, 'destroy']
'uses' => [Assets\AssetFilesController::class, 'destroy'], )->name('delete/assetfile');
]);
Route::post( Route::post(
'bulkedit', 'bulkedit',
[ [Assets\BulkAssetsController::class, 'edit']
'as' => 'hardware/bulkedit', )->name('hardware/bulkedit');
'uses' => [Assets\BulkAssetsController::class, 'edit'],
]
);
Route::post( Route::post(
'bulkdelete', 'bulkdelete',
[ [Assets\BulkAssetsController::class, 'destroy']
'as' => 'hardware/bulkdelete', )->name('hardware/bulkdelete');
'uses' => [Assets\BulkAssetsController::class, 'destroy'],
]
);
Route::post( Route::post(
'bulksave', 'bulksave',
[ [Assets\BulkAssetsController::class, 'update']
'as' => 'hardware/bulksave', )->name('hardware/bulksave');
'uses' => [Assets\BulkAssetsController::class, 'update'],
]
);
// Bulk checkout / checkin // Bulk checkout / checkin
Route::get('bulkcheckout', [ Route::get('bulkcheckout',
'as' => 'hardware/bulkcheckout', [Assets\BulkAssetsController::class, 'showCheckout']
'uses' => [Assets\BulkAssetsController::class, 'showCheckout'], )->name('hardware/bulkcheckout');
]); Route::post('bulkcheckout',
Route::post('bulkcheckout', [ [Assets\BulkAssetsController::class, 'storeCheckout']
'as' => 'hardware/bulkcheckout', )->name('hardware/bulkcheckout');
'uses' => [Assets\BulkAssetsController::class, 'storeCheckout'],
]);
}); });
Route::resource('hardware', Assets\AssetsController::class, [ Route::resource('hardware', Assets\AssetsController::class, [

View file

@ -12,124 +12,69 @@ Route::resource('kits', Kits\PredefinedKitsController::class, [
Route::group(['prefix' => 'kits/{kit_id}', 'middleware' => ['auth']], function () { Route::group(['prefix' => 'kits/{kit_id}', 'middleware' => ['auth']], function () {
// Route::get('licenses', // Route::get('licenses',
// [ // [Kits\PredefinedKitsController::class, 'indexLicenses']
// 'as' => 'kits.licenses.index', // )->name('kits.licenses.index');
// 'uses' => [Kits\PredefinedKitsController::class, 'indexLicenses'],
// ]
// );
Route::post('licenses', Route::post('licenses',
[ [Kits\PredefinedKitsController::class, 'storeLicense']
'as' => 'kits.licenses.store', )->name('kits.licenses.store');
'uses' => [Kits\PredefinedKitsController::class, 'storeLicense'],
]
);
Route::put('licenses/{license_id}', Route::put('licenses/{license_id}',
[ [Kits\PredefinedKitsController::class, 'updateLicense']
'as' => 'kits.licenses.update', )->name('kits.licenses.update');
'uses' => [Kits\PredefinedKitsController::class, 'updateLicense'],
]
);
Route::get('licenses/{license_id}/edit', Route::get('licenses/{license_id}/edit',
[ [Kits\PredefinedKitsController::class, 'editLicense']
'as' => 'kits.licenses.edit', )->name('kits.licenses.edit');
'uses' => [Kits\PredefinedKitsController::class, 'editLicense'],
]
);
Route::delete('licenses/{license_id}', Route::delete('licenses/{license_id}',
[ [Kits\PredefinedKitsController::class, 'detachLicense']
'as' => 'kits.licenses.detach', )->name('kits.licenses.detach');
'uses' => [Kits\PredefinedKitsController::class, 'detachLicense'],
]
);
// Models // Models
Route::put('models/{model_id}', Route::put('models/{model_id}',
[ [Kits\PredefinedKitsController::class, 'updateModel']
'as' => 'kits.models.update', )/* ->parameters([2 => 'kit_id', 1 => 'model_id'])*/->name('kits.models.update');
'uses' => [Kits\PredefinedKitsController::class, 'updateModel'],
'parameters' => [2 => 'kit_id', 1 => 'model_id'],
]
);
Route::get('models/{model_id}/edit', Route::get('models/{model_id}/edit',
[ [Kits\PredefinedKitsController::class, 'editModel']
'as' => 'kits.models.edit', )->name('kits.models.edit');
'uses' => [Kits\PredefinedKitsController::class, 'editModel'],
]
);
Route::delete('models/{model_id}', Route::delete('models/{model_id}',
[ [Kits\PredefinedKitsController::class, 'detachModel']
'as' => 'kits.models.detach', )->name('kits.models.detach');
'uses' => [Kits\PredefinedKitsController::class, 'detachModel'],
]
);
// Consumables // Consumables
Route::put('consumables/{consumable_id}', Route::put('consumables/{consumable_id}',
[ [Kits\PredefinedKitsController::class, 'updateConsumable']
'as' => 'kits.consumables.update', )/*->parameters([2 => 'kit_id', 1 => 'consumable_id'])*/->name('kits.consumables.update');
'uses' => [Kits\PredefinedKitsController::class, 'updateConsumable'],
'parameters' => [2 => 'kit_id', 1 => 'consumable_id'],
]
);
Route::get('consumables/{consumable_id}/edit', Route::get('consumables/{consumable_id}/edit',
[ [Kits\PredefinedKitsController::class, 'editConsumable']
'as' => 'kits.consumables.edit', )->name('kits.consumables.edit');
'uses' => [Kits\PredefinedKitsController::class, 'editConsumable'],
]
);
Route::delete('consumables/{consumable_id}', Route::delete('consumables/{consumable_id}',
[ [Kits\PredefinedKitsController::class, 'detachConsumable']
'as' => 'kits.consumables.detach', )->name('kits.consumables.detach');
'uses' => [Kits\PredefinedKitsController::class, 'detachConsumable'],
]
);
// Accessories // Accessories
Route::put('accessories/{accessory_id}', Route::put('accessories/{accessory_id}',
[ [Kits\PredefinedKitsController::class, 'updateAccessory']
'as' => 'kits.accessories.update', )/*->parameters([2 => 'kit_id', 1 => 'accessory_id'])*/->name('kits.accessories.update');
'uses' => [Kits\PredefinedKitsController::class, 'updateAccessory'],
'parameters' => [2 => 'kit_id', 1 => 'accessory_id'],
]
);
Route::get('accessories/{accessory_id}/edit', Route::get('accessories/{accessory_id}/edit',
[ [Kits\PredefinedKitsController::class, 'editAccessory']
'as' => 'kits.accessories.edit', )->name('kits.accessories.edit');
'uses' => [Kits\PredefinedKitsController::class, 'editAccessory'],
]
);
Route::delete('accessories/{accessory_id}', Route::delete('accessories/{accessory_id}',
[ [Kits\PredefinedKitsController::class, 'detachAccessory']
'as' => 'kits.accessories.detach', )->name('kits.accessories.detach');
'uses' => [Kits\PredefinedKitsController::class, 'detachAccessory'],
]
);
Route::get('checkout', Route::get('checkout',
[ [Kits\CheckoutKitController::class, 'showCheckout']
'as' => 'kits.checkout.show', )->name('kits.checkout.show');
'uses' => [Kits\CheckoutKitController::class, 'showCheckout'],
]
);
Route::post('checkout', Route::post('checkout',
[ [Kits\CheckoutKitController::class, 'store']
'as' => 'kits.checkout.store', )->name('kits.checkout.store');
'uses' => [Kits\CheckoutKitController::class, 'store'],
]
);
}); // kits }); // kits

View file

@ -5,42 +5,38 @@ use Illuminate\Support\Facades\Route;
// Licenses // Licenses
Route::group(['prefix' => 'licenses', 'middleware' => ['auth']], function () { Route::group(['prefix' => 'licenses', 'middleware' => ['auth']], function () {
Route::get('{licenseId}/clone', ['as' => 'clone/license', 'uses' => [Licenses\LicensesController::class, 'getClone']]); Route::get('{licenseId}/clone', [Licenses\LicensesController::class, 'getClone'])->name('clone/license');
Route::get('{licenseId}/freecheckout', [ Route::get('{licenseId}/freecheckout',
'as' => 'licenses.freecheckout', [Licenses\LicensesController::class, 'getFreeLicense']
'uses' => [Licenses\LicensesController::class, 'getFreeLicense'], )->name('licenses.freecheckout');
]); Route::get('{licenseId}/checkout/{seatId?}',
Route::get('{licenseId}/checkout/{seatId?}', [ [Licenses\LicenseCheckoutController::class, 'create']
'as' => 'licenses.checkout', )->name('licenses.checkout');
'uses' => [Licenses\LicenseCheckoutController::class, 'create'],
]);
Route::post( Route::post(
'{licenseId}/checkout/{seatId?}', '{licenseId}/checkout/{seatId?}',
['as' => 'licenses.checkout', 'uses' => [Licenses\LicenseCheckoutController::class, 'store']] [Licenses\LicenseCheckoutController::class, 'store']
); ); //name() would duplicate here, so we skip it.
Route::get('{licenseSeatId}/checkin/{backto?}', [ Route::get('{licenseSeatId}/checkin/{backto?}',
'as' => 'licenses.checkin', [Licenses\LicenseCheckinController::class, 'create']
'uses' => [Licenses\LicenseCheckinController::class, 'create'], )->name('licenses.checkin');
]);
Route::post('{licenseId}/checkin/{backto?}', [ Route::post('{licenseId}/checkin/{backto?}',
'as' => 'licenses.checkin.save', [Licenses\LicenseCheckinController::class, 'store']
'uses' => [Licenses\LicenseCheckinController::class, 'store'], )->name('licenses.checkin.save');
]);
Route::post( Route::post(
'{licenseId}/upload', '{licenseId}/upload',
['as' => 'upload/license', 'uses' => [Licenses\LicenseFilesController::class, 'store']] [Licenses\LicenseFilesController::class, 'store']
); )->name('upload/license');
Route::delete( Route::delete(
'{licenseId}/deletefile/{fileId}', '{licenseId}/deletefile/{fileId}',
['as' => 'delete/licensefile', 'uses' => [Licenses\LicenseFilesController::class, 'destroy']] [Licenses\LicenseFilesController::class, 'destroy']
); )->name('delete/licensefile');
Route::get( Route::get(
'{licenseId}/showfile/{fileId}/{download?}', '{licenseId}/showfile/{fileId}/{download?}',
['as' => 'show.licensefile', 'uses' => [Licenses\LicenseFilesController::class, 'show']] [Licenses\LicenseFilesController::class, 'show']
); )->name('show.licensefile');
}); });
Route::resource('licenses', Licenses\LicensesController::class, [ Route::resource('licenses', Licenses\LicensesController::class, [

View file

@ -48,11 +48,11 @@ mix
// Combine main SnipeIT JS files // Combine main SnipeIT JS files
mix.js( mix.js(
[ [
'./resources/assets/js/vue.js', './resources/assets/js/vue.js', // require()s vue, and require()s bootstrap.js
'./resources/assets/js/snipeit.js', //this is the actual Snipe-IT JS './resources/assets/js/snipeit.js', //this is the actual Snipe-IT JS
'./resources/assets/js/snipeit_modals.js' './resources/assets/js/snipeit_modals.js'
], ],
'./public/js/build/app.js' './public/js/build/app.js' //because of compiling - this does not work very well :(
).vue(); ).vue();
// Convert the skins to CSS // Convert the skins to CSS
@ -91,7 +91,9 @@ mix.combine(
*/ */
mix mix
.combine( .combine(
[ [ // lots of node_modules here - should this be subsumed by require()?
'./node_modules/jquery/dist/jquery.js',
'./node_modules/select2/dist/js/select2.full.min.js',
'./node_modules/admin-lte/dist/js/adminlte.min.js', './node_modules/admin-lte/dist/js/adminlte.min.js',
'./node_modules/tether/dist/js/tether.js', './node_modules/tether/dist/js/tether.js',
'./node_modules/jquery-ui-bundle/jquery-ui.js', './node_modules/jquery-ui-bundle/jquery-ui.js',
@ -101,14 +103,14 @@ mix
'./node_modules/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js', './node_modules/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.js',
'./node_modules/bootstrap-datepicker/dist/js/bootstrap-datepicker.js', './node_modules/bootstrap-datepicker/dist/js/bootstrap-datepicker.js',
'./node_modules/ekko-lightbox/dist/ekko-lightbox.js', './node_modules/ekko-lightbox/dist/ekko-lightbox.js',
'./node_modules/icheck/icheck.js', './node_modules/icheck/icheck.js', //definite problem here :(
'./resources/assets/js/extensions/pGenerator.jquery.js', './resources/assets/js/extensions/pGenerator.jquery.js',
'./node_modules/chart.js/dist/Chart.js', './node_modules/chart.js/dist/Chart.js',
'./resources/assets/js/signature_pad.js', './resources/assets/js/signature_pad.js',
'./node_modules/jquery-form-validator/form-validator/jquery.form-validator.js', './node_modules/jquery-form-validator/form-validator/jquery.form-validator.js', //problem?
'./node_modules/list.js/dist/list.js' './node_modules/list.js/dist/list.js'
], ],
'public/js/build/vendor.js' 'public/js/build/vendor.js' // this file seems OK!
); );
@ -138,9 +140,8 @@ mix
mix.combine( mix.combine(
[ [
'./public/js/build/app.js', './public/js/build/vendor.js',
'./public/js/build/vendor.js' './public/js/build/app.js'
], ],
'./public/js/dist/all.js' './public/js/dist/all.js'
).version(); ).version();