ultimatepos/Modules/Tms/Resources/views/driver/track.blade.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