mirror of
https://github.com/snipe/snipe-it.git
synced 2024-12-25 21:54:14 -08:00
Merge branch 'fixes/kit_fixes' into develop
This commit is contained in:
commit
8efbde61c9
|
@ -55,7 +55,7 @@ class PredefinedKitsController extends Controller
|
||||||
$kit->fill($request->all());
|
$kit->fill($request->all());
|
||||||
|
|
||||||
if ($kit->save()) {
|
if ($kit->save()) {
|
||||||
return response()->json(Helper::formatStandardApiResponse('success', $kit, 'Created was successfull')); // TODO: trans
|
return response()->json(Helper::formatStandardApiResponse('success', $kit, trans('admin/kits/general.create_success')));
|
||||||
}
|
}
|
||||||
return response()->json(Helper::formatStandardApiResponse('error', null, $kit->getErrors()));
|
return response()->json(Helper::formatStandardApiResponse('error', null, $kit->getErrors()));
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ class PredefinedKitsController extends Controller
|
||||||
$kit->fill($request->all());
|
$kit->fill($request->all());
|
||||||
|
|
||||||
if ($kit->save()) {
|
if ($kit->save()) {
|
||||||
return response()->json(Helper::formatStandardApiResponse('success', $kit, 'Update was successfull')); // TODO: trans
|
return response()->json(Helper::formatStandardApiResponse('success', $kit, trans('admin/kits/general.update_success'))); // TODO: trans
|
||||||
}
|
}
|
||||||
|
|
||||||
return response()->json(Helper::formatStandardApiResponse('error', null, $kit->getErrors()));
|
return response()->json(Helper::formatStandardApiResponse('error', null, $kit->getErrors()));
|
||||||
|
@ -113,7 +113,7 @@ class PredefinedKitsController extends Controller
|
||||||
$kit->accessories()->detach();
|
$kit->accessories()->detach();
|
||||||
|
|
||||||
$kit->delete();
|
$kit->delete();
|
||||||
return response()->json(Helper::formatStandardApiResponse('success', null, 'Delete was successfull')); // TODO: trans
|
return response()->json(Helper::formatStandardApiResponse('success', null, trans('admin/kits/general.delete_success'))); // TODO: trans
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,7 +214,7 @@ class PredefinedKitsController extends Controller
|
||||||
$kit = PredefinedKit::findOrFail($kit_id);
|
$kit = PredefinedKit::findOrFail($kit_id);
|
||||||
|
|
||||||
$kit->licenses()->detach($license_id);
|
$kit->licenses()->detach($license_id);
|
||||||
return response()->json(Helper::formatStandardApiResponse('success', $kit, 'Delete was successfull')); // TODO: trans
|
return response()->json(Helper::formatStandardApiResponse('success', $kit, trans('admin/kits/general.delete_success')));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -238,7 +238,7 @@ class PredefinedKitsController extends Controller
|
||||||
*/
|
*/
|
||||||
public function storeModel(Request $request, $kit_id)
|
public function storeModel(Request $request, $kit_id)
|
||||||
{
|
{
|
||||||
//return response()->json(Helper::formatStandardApiResponse('error', 'string11', dd($request))); // TODO: trans
|
|
||||||
|
|
||||||
$this->authorize('update', PredefinedKit::class);
|
$this->authorize('update', PredefinedKit::class);
|
||||||
|
|
||||||
|
@ -256,7 +256,7 @@ class PredefinedKitsController extends Controller
|
||||||
}
|
}
|
||||||
$relation->attach($model_id, ['quantity' => $quantity]);
|
$relation->attach($model_id, ['quantity' => $quantity]);
|
||||||
|
|
||||||
return response()->json(Helper::formatStandardApiResponse('success', $kit, 'Model added successfull')); // TODO: trans
|
return response()->json(Helper::formatStandardApiResponse('success', $kit, 'Model added successfull'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -291,7 +291,7 @@ class PredefinedKitsController extends Controller
|
||||||
$kit = PredefinedKit::findOrFail($kit_id);
|
$kit = PredefinedKit::findOrFail($kit_id);
|
||||||
|
|
||||||
$kit->models()->detach($model_id);
|
$kit->models()->detach($model_id);
|
||||||
return response()->json(Helper::formatStandardApiResponse('success', $kit, 'Delete was successfull')); // TODO: trans
|
return response()->json(Helper::formatStandardApiResponse('success', $kit, trans('admin/kits/general.model_removed_success')));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ class PredefinedKitCheckoutService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($quantity > 0) {
|
if ($quantity > 0) {
|
||||||
$errors[] = "Don't have available assets for model " . $model->name . '. Need ' . $model->pivot->quantity . ' assets.'; // TODO: trans
|
$errors[] = trans('admin/kits/general.none_models', ['model'=> $model->name, 'qty' => $model->pivot->quantity]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,7 +111,7 @@ class PredefinedKitCheckoutService
|
||||||
foreach ($licenses as $license) {
|
foreach ($licenses as $license) {
|
||||||
$quantity = $license->pivot->quantity;
|
$quantity = $license->pivot->quantity;
|
||||||
if ($quantity > count($license->freeSeats)) {
|
if ($quantity > count($license->freeSeats)) {
|
||||||
$errors[] = "Don't have free seats for license " . $license->name . '. Need ' . $quantity . ' seats.'; // TODO: trans
|
$errors[] = trans('admin/kits/general.none_licenses', ['license'=> $license->name, 'qty' => $license->pivot->quantity]);
|
||||||
}
|
}
|
||||||
for ($i = 0; $i < $quantity; $i++) {
|
for ($i = 0; $i < $quantity; $i++) {
|
||||||
$seats_to_add[] = $license->freeSeats[$i];
|
$seats_to_add[] = $license->freeSeats[$i];
|
||||||
|
@ -122,11 +122,10 @@ class PredefinedKitCheckoutService
|
||||||
|
|
||||||
protected function getConsumablesToAdd($kit, &$errors)
|
protected function getConsumablesToAdd($kit, &$errors)
|
||||||
{
|
{
|
||||||
// $consumables = $kit->consumables()->withCount('consumableAssignments as consumable_assignments_count')->get();
|
|
||||||
$consumables = $kit->consumables()->with('users')->get();
|
$consumables = $kit->consumables()->with('users')->get();
|
||||||
foreach ($consumables as $consumable) {
|
foreach ($consumables as $consumable) {
|
||||||
if ($consumable->numRemaining() < $consumable->pivot->quantity) {
|
if ($consumable->numRemaining() < $consumable->pivot->quantity) {
|
||||||
$errors[] = "Don't have available consumable " . $consumable->name . '. Need ' . $consumable->pivot->quantity; // TODO: trans
|
$errors[] = trans('admin/kits/general.none_consumables', ['consumable'=> $consumable->name, 'qty' => $consumable->pivot->quantity]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $consumables;
|
return $consumables;
|
||||||
|
@ -135,9 +134,9 @@ class PredefinedKitCheckoutService
|
||||||
protected function getAccessoriesToAdd($kit, &$errors)
|
protected function getAccessoriesToAdd($kit, &$errors)
|
||||||
{
|
{
|
||||||
$accessories = $kit->accessories()->with('users')->get();
|
$accessories = $kit->accessories()->with('users')->get();
|
||||||
foreach ($accessories as $accossory) {
|
foreach ($accessories as $accessory) {
|
||||||
if ($accossory->numRemaining() < $accossory->pivot->quantity) {
|
if ($accessory->numRemaining() < $accessory->pivot->quantity) {
|
||||||
$errors[] = "Don't have available accossory " . $accossory->name . '. Need ' . $accossory->pivot->quantity; // TODO: trans
|
$errors[] = trans('admin/kits/general.none_accessory', ['consumable'=> $accessory->name, 'qty' => $accessory->pivot->quantity]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $accessories;
|
return $accessories;
|
||||||
|
|
|
@ -252,6 +252,41 @@ return array(
|
||||||
|
|
||||||
),
|
),
|
||||||
|
|
||||||
|
'Kits' => array(
|
||||||
|
array(
|
||||||
|
'permission' => 'kits.view',
|
||||||
|
'label' => 'View ',
|
||||||
|
'note' => 'These are predefined kits that can be used to quickly checkout assets, licenses, etc.',
|
||||||
|
'display' => true,
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'permission' => 'kits.create',
|
||||||
|
'label' => 'Create ',
|
||||||
|
'note' => '',
|
||||||
|
'display' => true,
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'permission' => 'kits.edit',
|
||||||
|
'label' => 'Edit ',
|
||||||
|
'note' => '',
|
||||||
|
'display' => true,
|
||||||
|
),
|
||||||
|
array(
|
||||||
|
'permission' => 'kits.delete',
|
||||||
|
'label' => 'Delete ',
|
||||||
|
'note' => '',
|
||||||
|
'display' => true,
|
||||||
|
),
|
||||||
|
|
||||||
|
array(
|
||||||
|
'permission' => 'kits.checkout',
|
||||||
|
'label' => 'Checkout ',
|
||||||
|
'note' => '',
|
||||||
|
'display' => true,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
'Users' => array(
|
'Users' => array(
|
||||||
array(
|
array(
|
||||||
'permission' => 'users.view',
|
'permission' => 'users.view',
|
||||||
|
|
16
resources/lang/en/admin/kits/general.php
Normal file
16
resources/lang/en/admin/kits/general.php
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
return array(
|
||||||
|
'about_kits' => 'About Predefined Kits',
|
||||||
|
'checkout' => 'Checkout Kit ',
|
||||||
|
'create_success' => 'Kit was successfully created.',
|
||||||
|
'create' => 'Create Predefined Kit',
|
||||||
|
'update' => 'Update Predefined Kit',
|
||||||
|
'delete_success' => 'Kit was successfully deleted.',
|
||||||
|
'update_success' => 'Kit was successfully updated.',
|
||||||
|
'none_models' => 'There are not enough available assets for :model to checkout. :qty are required. ',
|
||||||
|
'none_licenses' => 'There are not enough available seats for :license to checkout. :qty are required. ',
|
||||||
|
'none_consumables' => 'There are not enough available units of :consumable to checkout. :qty are required. ',
|
||||||
|
'none_accessory' => 'There are not enough available units of :accessory to checkout. :qty are required. ',
|
||||||
|
|
||||||
|
);
|
|
@ -112,6 +112,7 @@
|
||||||
'asset_maintenances' => 'Asset Maintenances',
|
'asset_maintenances' => 'Asset Maintenances',
|
||||||
'item' => 'Item',
|
'item' => 'Item',
|
||||||
'insufficient_permissions' => 'Insufficient permissions!',
|
'insufficient_permissions' => 'Insufficient permissions!',
|
||||||
|
'kits' => 'Predefined Kits',
|
||||||
'language' => 'Language',
|
'language' => 'Language',
|
||||||
'last' => 'Last',
|
'last' => 'Last',
|
||||||
'last_login' => 'Last Login',
|
'last_login' => 'Last Login',
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
{{-- Page title --}}
|
{{-- Page title --}}
|
||||||
@section('title')
|
@section('title')
|
||||||
Apply predefined kit{{-- TODO: trans --}}
|
{{ trans('admin/kits/general.checkout') }}
|
||||||
@parent
|
@parent
|
||||||
@stop
|
@stop
|
||||||
|
|
||||||
|
@ -20,9 +20,6 @@
|
||||||
<!-- left column -->
|
<!-- left column -->
|
||||||
<div class="col-md-7">
|
<div class="col-md-7">
|
||||||
<div class="box box-default">
|
<div class="box box-default">
|
||||||
<div class="box-header with-border">
|
|
||||||
<h3 class="box-title"> Apply predefined kit {{ $kit->name }} to user {{-- TODO: trans --}} </h3>
|
|
||||||
</div>
|
|
||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
<form class="form-horizontal" method="post" action="" autocomplete="off">
|
<form class="form-horizontal" method="post" action="" autocomplete="off">
|
||||||
{{ csrf_field() }}
|
{{ csrf_field() }}
|
||||||
|
@ -64,7 +61,7 @@
|
||||||
|
|
||||||
</div> <!--./box-body-->
|
</div> <!--./box-body-->
|
||||||
<div class="box-footer">
|
<div class="box-footer">
|
||||||
<a class="btn btn-link" href="{{ URL::previous() }}"> {{ trans('button.cancel') }}</a>
|
<a class="btn btn-link" href="{{ route('kits.index') }}"> {{ trans('button.cancel') }}</a>
|
||||||
<button type="submit" class="btn btn-success pull-right"><i class="fa fa-check icon-white"></i> {{ trans('general.checkout') }}</button>
|
<button type="submit" class="btn btn-success pull-right"><i class="fa fa-check icon-white"></i> {{ trans('general.checkout') }}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
@extends('layouts/edit-form', [
|
@extends('layouts/edit-form', [
|
||||||
'createText' => 'Create kit',
|
'createText' => trans('admin/kits/general.create'),
|
||||||
'updateText' => 'Update kit',
|
'updateText' => trans('admin/kits/general.update'),
|
||||||
'formAction' => ($item) ? route('kits.update', ['kit' => $item->id]) : route('kits.store'),
|
'formAction' => ($item) ? route('kits.update', ['kit' => $item->id]) : route('kits.store'),
|
||||||
])
|
])
|
||||||
|
|
||||||
{{-- Page content --}}
|
{{-- Page content --}}
|
||||||
@section('inputFields')
|
@section('inputFields')
|
||||||
@include ('partials.forms.edit.name', ['translated_name' => 'Name']) {{-- TODO: trans --}}
|
@include ('partials.forms.edit.name', ['translated_name' => trans('general.name')])
|
||||||
@stop
|
@stop
|
|
@ -1,6 +1,6 @@
|
||||||
@extends('layouts/edit-form', [
|
@extends('layouts/edit-form', [
|
||||||
'createText' => 'Create kit',
|
'createText' => trans('admin/kits/general.create'),
|
||||||
'updateText' => 'Update kit',
|
'updateText' => trans('admin/kits/general.update'),
|
||||||
'formAction' => ($item) ? route('kits.update', ['kit' => $item->id]) : route('kits.store'),
|
'formAction' => ($item) ? route('kits.update', ['kit' => $item->id]) : route('kits.store'),
|
||||||
])
|
])
|
||||||
|
|
||||||
|
@ -16,8 +16,7 @@
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="box box-default">
|
<div class="box box-default">
|
||||||
<div class="box-header with-border">
|
<div class="box-header with-border">
|
||||||
{{-- <h3 class="box-title"><span>Models </span><a href="{{ route('modal.kit.model', ['kit' => $item->id]) }}" data-toggle="modal" data-target="#createModal" class="btn btn-sm btn-primary"><i class="fa fa-plus icon-white"></i> Append</a></h3> --}}
|
<h3 class="box-title"><span>{{ trans('general.asset_models') }}</span></h3>
|
||||||
<h3 class="box-title"><span>Assets (by models){{-- TODO: trans --}}</span></h3>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="box-body">
|
<div class="box-body">
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
{{-- Web site Title --}}
|
{{-- Web site Title --}}
|
||||||
@section('title')
|
@section('title')
|
||||||
Kits
|
{{ trans('general.kits') }}
|
||||||
@parent
|
@parent
|
||||||
@stop
|
@stop
|
||||||
|
|
||||||
|
@ -39,28 +39,7 @@ Kits
|
||||||
}'>
|
}'>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
{{-- <h2>Test</h2>
|
|
||||||
<div class="table-responsive">
|
|
||||||
<table
|
|
||||||
data-cookie-id-table="kitModelsTable"
|
|
||||||
data-columns="{{ \App\Presenters\PredefinedKitPresenter::dataTableModels() }}"
|
|
||||||
data-pagination="true"
|
|
||||||
data-search="true"
|
|
||||||
data-side-pagination="server"
|
|
||||||
data-show-columns="true"
|
|
||||||
data-show-export="true"
|
|
||||||
data-show-refresh="true"
|
|
||||||
data-sort-order="asc"
|
|
||||||
data-sort-name="name"
|
|
||||||
id="kitModelsTable"
|
|
||||||
class="table table-striped snipe-table"
|
|
||||||
data-url="{{ route('api.kits.models.index', 1) }}"
|
|
||||||
data-export-options='{
|
|
||||||
"fileName": "export-kit-models-{{ date('Y-m-d') }}",
|
|
||||||
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"]
|
|
||||||
}'>
|
|
||||||
</table>
|
|
||||||
</div> --}}
|
|
||||||
</div> <!--.box-body-->
|
</div> <!--.box-body-->
|
||||||
</div> <!-- /.box.box-default-->
|
</div> <!-- /.box.box-default-->
|
||||||
</div> <!-- .col-md-12-->
|
</div> <!-- .col-md-12-->
|
||||||
|
|
|
@ -492,6 +492,15 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@endcan
|
@endcan
|
||||||
|
@can('view', \App\Models\PredefinedKit::class)
|
||||||
|
<li{!! (Request::is('kits') ? ' class="active"' : '') !!}>
|
||||||
|
<a href="{{ route('kits.index') }}">
|
||||||
|
<i class="fa fa-object-group"></i>
|
||||||
|
<span>{{ trans('general.kits') }}</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
@endcan
|
||||||
|
|
||||||
@can('view', \App\Models\User::class)
|
@can('view', \App\Models\User::class)
|
||||||
<li{!! (Request::is('users*') ? ' class="active"' : '') !!}>
|
<li{!! (Request::is('users*') ? ' class="active"' : '') !!}>
|
||||||
<a href="{{ route('users.index') }}">
|
<a href="{{ route('users.index') }}">
|
||||||
|
@ -665,12 +674,7 @@
|
||||||
</li>
|
</li>
|
||||||
@endcan
|
@endcan
|
||||||
|
|
||||||
<li{!! (Request::is('kits') ? ' class="active"' : '') !!}>
|
|
||||||
<a href="{{ route('kits.index') }}">
|
|
||||||
<i class="fa fa-object-group"></i>
|
|
||||||
<span>Predefined kits{{-- TODO: trans --}}</span>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
<!-- /.sidebar -->
|
<!-- /.sidebar -->
|
||||||
|
|
Loading…
Reference in a new issue