Improved suplpiers UI

Signed-off-by: snipe <snipe@snipe.net>
This commit is contained in:
snipe 2022-06-14 16:06:56 -07:00
parent 954b54f914
commit aea9dd1de5

View file

@ -1,39 +1,95 @@
@extends('layouts/default')
{{-- Page title --}}
@section('title')
{{ trans('admin/suppliers/table.view') }} -
{{ $supplier->name }}
@parent
{{ trans('admin/suppliers/table.view') }} -
{{ $supplier->name }}
@parent
@stop
@section('header_right')
<a href="{{ route('suppliers.edit', $supplier->id) }}" class="btn btn-default pull-right">
{{ trans('admin/suppliers/table.update') }}</a>
<a href="{{ route('suppliers.index') }}" class="btn btn-primary text-right" style="margin-right: 10px;">{{ trans('general.back') }}</a>
@stop
{{-- Page content --}}
@section('content')
<div class="row">
<div class="row">
<div class="col-md-9">
<div class="nav-tabs-custom">
<ul class="nav nav-tabs hidden-print">
<li class="active">
<a href="#assets" data-toggle="tab">
<span class="hidden-lg hidden-md">
<i class="fas fa-barcode fa-2x" aria-hidden="true"></i>
</span>
<span class="hidden-xs hidden-sm">
{{ trans('general.assets') }}
{!! (($supplier->assets) && ($supplier->assets->count() > 0 )) ? '<badge class="badge badge-secondary">'.$supplier->assets->count().'</badge>' : '' !!}
</span>
</a>
</li>
<li>
<a href="#accessories" data-toggle="tab">
<span class="hidden-lg hidden-md">
<i class="far fa-keyboard fa-2x" aria-hidden="true"></i>
</span>
<span class="hidden-xs hidden-sm">
{{ trans('general.accessories') }}
{!! (($supplier->accessories) && ($supplier->accessories->count() > 0 )) ? '<badge class="badge badge-secondary">'.$supplier->accessories->count().'</badge>' : '' !!}
</span>
</a>
</li>
<li>
<a href="#licenses" data-toggle="tab">
<span class="hidden-lg hidden-md">
<i class="far fa-save fa-2x" aria-hidden="true"></i>
</span>
<span class="hidden-xs hidden-sm">
{{ trans('general.licenses') }}
{!! (($supplier->licenses) && ($supplier->licenses->count() > 0 )) ? '<badge class="badge badge-secondary">'.$supplier->licenses->count().'</badge>' : '' !!}
</span>
</a>
</li>
<li>
<a href="#maintenances" data-toggle="tab">
<span class="hidden-lg hidden-md">
<i class="fas fa-wrench fa-2x"></i>
</span>
<span class="hidden-xs hidden-sm">
{{ trans('admin/asset_maintenances/general.asset_maintenances') }}
{!! (($supplier->asset_maintenances) && ($supplier->asset_maintenances->count() > 0 )) ? '<badge class="badge badge-secondary">'.$supplier->asset_maintenances->count().'</badge>' : '' !!}
</span>
</a>
</li>
</ul>
<!-- start tables -->
<div class="tab-content">
<div class="box box-default">
<div class="box-header with-border">
<div class="box-heading">
<h2 class="box-title"> {{ trans('general.assets') }}</h2>
</div>
</div><!-- /.box-header -->
<div class="box-body">
<!-- checked out suppliers table -->
<div class="table-responsive">
<div class="tab-pane active" id="assets">
<h2 class="box-title">{{ trans('general.assets') }}</h2>
<div class="table table-responsive">
@include('partials.asset-bulk-actions')
<table
data-cookie-id-table="suppliersAssetsTable"
data-columns="{{ \App\Presenters\AssetPresenter::dataTableLayout() }}"
data-pagination="true"
data-id-table="suppliersAssetsTable"
data-search="true"
@ -43,183 +99,113 @@
data-show-export="true"
data-show-refresh="true"
data-sort-order="asc"
data-toolbar="#assetsBulkEditToolbar"
data-bulk-button-id="#bulkAssetEditButton"
data-bulk-form-id="#assetsBulkForm"
data-click-to-select="true"
id="suppliersAssetsTable"
class="table table-striped snipe-table"
data-url="{{route('api.assets.index', ['supplier_id' => $supplier->id])}}"
data-url="{{route('api.assets.index', ['supplier_id' => $supplier->id]) }}"
data-export-options='{
"fileName": "export-{{ str_slug($supplier->name) }}-assets-{{ date('Y-m-d') }}",
"fileName": "export-suppliers-{{ str_slug($supplier->name) }}-assets-{{ date('Y-m-d') }}",
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"]
}'>
<thead>
<tr>
<th data-searchable="false" data-visible="false" data-sortable="true" data-field="id">{{ trans('general.id') }}</th>
<th data-searchable="false" data-visible="true" data-sortable="true" data-formatter="imageFormatter" data-field="image">{{ trans('admin/hardware/table.image') }}</th>
<th data-searchable="false" data-sortable="true" data-formatter="hardwareLinkFormatter" data-field="name">{{ trans('general.name') }}</th>
<th data-searchable="false" data-formatter="modelsLinkObjFormatter" data-sortable="false" data-field="model">{{ trans('admin/hardware/form.model') }}</th>
<th data-searchable="false" data-sortable="false" data-field="asset_tag" data-formatter="hardwareLinkFormatter">{{ trans('admin/hardware/form.tag') }}</th>
<th data-searchable="false" data-sortable="false" data-field="serial">{{ trans('admin/hardware/form.serial') }}</th>
<th data-searchable="false" data-visible="false" data-sortable="true" data-field="category" data-formatter="categoriesLinkObjFormatter">{{ trans('general.category') }}</th>
<th data-field="purchase_cost" data-footer-formatter="sumFormatter">{{ trans('general.purchase_cost') }}</th>
<th data-searchable="false" data-sortable="false" data-field="checkincheckout" data-formatter="hardwareInOutFormatter">{{ trans('general.checkin') }}/{{ trans('general.checkout') }}</th>
<th data-searchable="false" data-sortable="false" data-field="actions" data-formatter="hardwareActionsFormatter">{{ trans('table.actions') }}</th>
</tr>
</thead>
</table>
</div><!-- /.table-responsive -->
</div><!-- /.box-body -->
</div> <!--/.box-->
</div><!-- /.tab-pane -->
<div class="box box-default">
<div class="box-header with-border">
<div class="box-heading">
<h2 class="box-title"> {{ trans('general.accessories') }}</h2>
</div>
</div><!-- /.box-header -->
<div class="box-body">
<div class="table-responsive">
<div class="tab-pane" id="accessories">
<h2 class="box-title">{{ trans('general.accessories') }}</h2>
<div class="table table-responsive">
<table
data-columns="{{ \App\Presenters\AccessoryPresenter::dataTableLayout() }}"
data-cookie-id-table="suppliersAccessoriesTable"
data-cookie-id-table="accessoriesListingTable"
data-pagination="true"
data-id-table="suppliersAccessoriesTable"
data-id-table="accessoriesListingTable"
data-search="true"
data-side-pagination="server"
data-show-columns="true"
data-show-export="true"
data-show-refresh="true"
data-sort-order="asc"
id="suppliersAccessoriesTable"
id="accessoriesListingTable"
class="table table-striped snipe-table"
data-url="{{route('api.accessories.index', ['supplier_id' => $supplier->id])}}"
data-url="{{route('api.accessories.index', ['supplier_id' => $supplier->id]) }}"
data-export-options='{
"fileName": "export-{{ str_slug($supplier->name) }}-accessories-{{ date('Y-m-d') }}",
"fileName": "export-suppliers-{{ str_slug($supplier->name) }}-accessories-{{ date('Y-m-d') }}",
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"]
}'>
</table>
</div><!-- /.table-responsive -->
</div><!-- /.box-body -->
</div> <!--/.box-->
</div><!-- /.tab-pane -->
<div class="tab-pane" id="licenses">
<h2 class="box-title">{{ trans('general.licenses') }}</h2>
<div class="box box-default">
@if ($supplier->id)
<div class="box-header with-border">
<div class="box-heading">
<h2 class="box-title"> {{ trans('general.licenses') }}</h2>
</div>
</div><!-- /.box-header -->
@endif
<div class="box-body">
<div class="table-responsive">
<div class="table table-responsive">
<table
data-columns="{{ \App\Presenters\LicensePresenter::dataTableLayout() }}"
data-cookie-id-table="suppliersLicensesTable"
data-cookie-id-table="licensesListingTable"
data-pagination="true"
data-id-table="suppliersLicensesTable"
data-id-table="licensesListingTable"
data-search="true"
data-show-footer="true"
data-side-pagination="server"
data-show-columns="true"
data-show-export="true"
data-show-refresh="true"
data-sort-order="asc"
id="suppliersLicensesTable"
id="licensesListingTable"
class="table table-striped snipe-table"
data-url="{{route('api.licenses.index', ['supplier_id' => $supplier->id])}}"
data-url="{{route('api.licenses.index', ['supplier_id' => $supplier->id]) }}"
data-export-options='{
"fileName": "export-{{ str_slug($supplier->name) }}-licenses-{{ date('Y-m-d') }}",
"fileName": "export-suppliers-{{ str_slug($supplier->name) }}-licenses-{{ date('Y-m-d') }}",
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"]
}'>
</table>
</div><!-- /.table-responsive -->
</div><!-- /.tab-pane -->
<div class="tab-pane" id="maintenances">
<h2 class="box-title">{{ trans('admin/asset_maintenances/general.asset_maintenances') }}</h2>
<div class="table table-responsive">
<table
data-columns="{{ \App\Presenters\AssetMaintenancesPresenter::dataTableLayout() }}"
data-cookie-id-table="maintenancesTable"
data-pagination="true"
data-id-table="maintenancesTable"
data-search="true"
data-side-pagination="server"
data-show-columns="true"
data-show-export="true"
data-show-refresh="true"
data-sort-order="asc"
id="maintenancesTable"
class="table table-striped snipe-table"
data-url="{{ route('api.maintenances.index', ['supplier_id' => $supplier->id])}}"
data-export-options='{
"fileName": "export-suppliers-{{ str_slug($supplier->name) }}-maintenances-{{ date('Y-m-d') }}",
"ignoreColumn": ["actions","image","change","checkbox","checkincheckout","icon"]
}'>
</table>
</div><!-- /.table-responsive -->
</div><!-- /.box-body -->
</div> <!--/.box-->
</div><!-- /.tab-pane -->
<div class="box box-default">
@if ($supplier->id)
<div class="box-header with-border">
<div class="box-heading">
<h2 class="box-title"> {{ trans('general.improvements') }}</h2>
</div>
</div><!-- /.box-header -->
@endif
<div class="box-body">
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th class="col-md-2"><span class="line"></span>{{ trans('admin/asset_maintenances/table.asset_name') }}</th>
<th class="col-md-2"><span class="line"></span>{{ trans('admin/asset_maintenances/form.asset_maintenance_type') }}</th>
<th class="col-md-2"><span class="line"></span>{{ trans('admin/asset_maintenances/form.start_date') }}</th>
<th class="col-md-2"><span class="line"></span>{{ trans('admin/asset_maintenances/form.completion_date') }}</th>
<th class="col-md-2"><span class="line"></span>{{ trans('admin/asset_maintenances/table.is_warranty') }}</th>
<th class="col-md-2"><span class="line"></span>{{ trans('admin/asset_maintenances/form.cost') }}</th>
<th class="col-md-1"><span class="line"></span>{{ trans('table.actions') }}</th>
</tr>
</thead>
<tbody>
<?php $totalCost = 0; ?>
@if ($supplier->asset_maintenances)
@foreach ($supplier->asset_maintenances as $improvement)
@if (is_null($improvement->deleted_at))
<tr>
<td>
@if ($improvement->asset)
<a href="{{ route('hardware.show', $improvement->asset_id) }}">{{ $improvement->asset->name }}</a>
@else
(deleted asset)
@endif
</td>
<td>{{ $improvement->asset_maintenance_type }}</td>
<td>{{ $improvement->start_date }}</td>
<td>{{ $improvement->completion_date }}</td>
<td>{{ $improvement->is_warranty ? trans('admin/asset_maintenances/message.warranty') : trans('admin/asset_maintenances/message.not_warranty') }}</td>
<td>{{ $snipeSettings->default_currency. ' '. Helper::formatCurrencyOutput($improvement->cost) }}</td>
<?php $totalCost += $improvement->cost; ?>
<td><a href="{{ route('maintenances.edit', $improvement->id) }}" class="btn btn-warning"><i class="fas fa-pencil-alt icon-white" aria-hidden="true"></i></a>
</td>
</tr>
@endif
@endforeach
@endif
</tbody>
<tfoot>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>{{ $snipeSettings->default_currency . ' '.Helper::formatCurrencyOutput($totalCost) }}</td>
</tr>
</tfoot>
</table>
</div><!-- /.table-responsive -->
</div><!-- /.box-body -->
</div> <!--/.box-->
</div> <!--/col-md-9-->
</div><!--/.col-md-9-->
</div><!--/.col-md-9-->
</div><!--/.col-md-9-->
<!-- side address column -->
<div class="col-md-3">
@if (($supplier->state!='') && ($supplier->country!='') && (config('services.google.maps_api_key')))
@if (($supplier->address!='') && ($supplier->state!='') && ($supplier->country!='') && (config('services.google.maps_api_key')))
<div class="col-md-12 text-center" style="padding-bottom: 20px;">
<img src="https://maps.googleapis.com/maps/api/staticmap?markers={{ urlencode($supplier->address.','.$supplier->city.' '.$supplier->state.' '.$supplier->country.' '.$supplier->zip) }}&size=500x300&maptype=roadmap&key={{ config('services.google.maps_api_key') }}" class="img-responsive img-thumbnail" alt="Map">
</div>
@ -227,19 +213,19 @@
<ul class="list-unstyled" style="line-height: 25px; padding-bottom: 20px; padding-top: 20px;">
@if ($supplier->contact)
@if ($supplier->contact!='')
<li><i class="fas fa-user" aria-hidden="true"></i> {{ $supplier->contact }}</li>
@endif
@if ($supplier->phone)
@if ($supplier->phone!='')
<li><i class="fas fa-phone"></i>
<a href="tel:{{ $supplier->phone }}">{{ $supplier->phone }}</a>
</li>
@endif
@if ($supplier->fax)
@if ($supplier->fax!='')
<li><i class="fas fa-print"></i> {{ $supplier->fax }}</li>
@endif
@if ($supplier->email)
@if ($supplier->email!='')
<li>
<i class="far fa-envelope"></i>
<a href="mailto:{{ $supplier->email }}">
@ -248,14 +234,14 @@
</li>
@endif
@if ($supplier->url)
@if ($supplier->url!='')
<li>
<i class="fas fa-globe-americas"></i>
<a href="{{ $supplier->url }}" target="_new">{{ $supplier->url }}</a>
</li>
@endif
@if ($supplier->address)
@if ($supplier->address!='')
<li><br>
{{ $supplier->address }}
@ -270,7 +256,7 @@
</li>
@endif
@if ($supplier->notes)
@if ($supplier->notes!='')
<li><i class="fa fa-comment"></i> {{ $supplier->notes }}</li>
@endif
@ -282,13 +268,16 @@
@endif
</div> <!--/col-md-3-->
</div> <!--/row-->
</div>
</div>
@stop
@section('moar_scripts')
@include ('partials.bootstrap-table', [
'showFooter' => true,
'exportFile' => 'locations-export',
'search' => true
])
@stop