61 lines
2.6 KiB
PHP
61 lines
2.6 KiB
PHP
@extends('layouts.app')
|
|
@section('title', __('tms::lang.driver_gps'))
|
|
@section('content')
|
|
@include('tms::layouts.nav')
|
|
<section class="content no-print mt-page">
|
|
<div class="mt-page-header"><h1><i class="fas fa-location-arrow" style="color:#3b82f6;margin-left:8px;"></i> @lang('tms::lang.driver_gps')</h1></div>
|
|
<div class="mt-card">
|
|
<div class="mt-card-body">
|
|
@if(!$driver)
|
|
<div class="alert alert-warning">@lang('tms::lang.driver_not_linked')</div>
|
|
@else
|
|
<p><strong>@lang('tms::lang.driver'):</strong> {{ $driver->name }}</p>
|
|
@if($activeShipment)
|
|
<p><strong>@lang('tms::lang.shipments'):</strong> {{ $activeShipment->ref_no }}</p>
|
|
@endif
|
|
<p id="tms_gps_status" class="text-muted">@lang('tms::lang.gps_waiting')</p>
|
|
<button type="button" class="mt-btn-primary btn" id="tms_start_gps"><i class="fa fa-play"></i> @lang('tms::lang.start_gps')</button>
|
|
<button type="button" class="btn btn-danger hide" id="tms_stop_gps"><i class="fa fa-stop"></i> @lang('tms::lang.stop_gps')</button>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</section>
|
|
@endsection
|
|
@section('javascript')
|
|
@if($driver)
|
|
<script>
|
|
var tmsGpsInterval = null;
|
|
var tmsDriverId = {{ $driver->id }};
|
|
var tmsShipmentId = {{ $activeShipment->id ?? 'null' }};
|
|
function tmsSendLocation(pos){
|
|
$.post('{{ action([\Modules\Tms\Http\Controllers\TrackingController::class, "storeLocation"]) }}', {
|
|
_token: '{{ csrf_token() }}',
|
|
latitude: pos.coords.latitude,
|
|
longitude: pos.coords.longitude,
|
|
accuracy: pos.coords.accuracy,
|
|
speed: pos.coords.speed,
|
|
heading: pos.coords.heading,
|
|
driver_id: tmsDriverId,
|
|
shipment_id: tmsShipmentId
|
|
});
|
|
$('#tms_gps_status').text('@lang('tms::lang.gps_active'): ' + pos.coords.latitude.toFixed(5) + ', ' + pos.coords.longitude.toFixed(5));
|
|
}
|
|
$('#tms_start_gps').on('click', function(){
|
|
if(!navigator.geolocation){ toastr.error('@lang('tms::lang.gps_not_supported')'); return; }
|
|
$('#tms_start_gps').addClass('hide');
|
|
$('#tms_stop_gps').removeClass('hide');
|
|
navigator.geolocation.getCurrentPosition(tmsSendLocation);
|
|
tmsGpsInterval = setInterval(function(){
|
|
navigator.geolocation.getCurrentPosition(tmsSendLocation);
|
|
}, 30000);
|
|
});
|
|
$('#tms_stop_gps').on('click', function(){
|
|
clearInterval(tmsGpsInterval);
|
|
$('#tms_stop_gps').addClass('hide');
|
|
$('#tms_start_gps').removeClass('hide');
|
|
$('#tms_gps_status').text('@lang('tms::lang.gps_stopped')');
|
|
});
|
|
</script>
|
|
@endif
|
|
@endsection
|