Shipboard Log & Locker
Yacht Master v2.4 • Secure Maritime Authentication
Welcome aboard, Captain! There are currently no yachts registered in your database. Let's record your first vessel to unlock the locker and logbook.
Choose a vessel from your active fleet to start logging entries
{{ currentBoat.description }}
No vessel description supplied.
Refetching Ship's Locker...
No recorded logs yet. Log your first cruise!
No documents matching your scope. Lock one now!
{{ doc.description }}
No details added.
No recorded maintenance tasks. Keep your yacht shipshape!
{{ record.description }}
No details logged.
Task board is clear, Captain! Enjoy the calm seas.
{{ todo.text }}
Cargo hold is fully stocked. Ready for sailing!
{{ shop.name }}
Configure or decommission {{ currentBoat.name }}
This action is permanent! All log entries, document lockers, maintenance receipts, to-do lists, and shopping cargos relative to this vessel will be lost.
Crew: {{ activePopup.entry.crew || 'No skipper logged' }}
Start: {{ activePopup.entry.start || 'Log origin unspecified' }}
Goal: {{ activePopup.entry.goal || 'Log destination unspecified' }}
{{ locationError }}
Total Distance
{{ calculateVoyageSummary(activePopup.entry.waypoints).totalDistanceNM.toFixed(2) }} NM
({{ calculateVoyageSummary(activePopup.entry.waypoints).totalDistanceKm.toFixed(1) }} km)
Duration
{{ formatDuration(calculateVoyageSummary(activePopup.entry.waypoints).totalDurationMs) }}
Avg Speed
{{ calculateVoyageSummary(activePopup.entry.waypoints).avgSpeedKnots.toFixed(1) }} kt
({{ calculateVoyageSummary(activePopup.entry.waypoints).avgSpeedKmh.toFixed(1) }} km/h)
Waypoints
{{ activePopup.entry.waypoints.length }}
| # | Time | Position (Lat, Lon) | Leg Distance | Leg Speed | Action |
|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ formatDateTime(wp.timestamp) }} | {{ wp.latitude.toFixed(5) }}, {{ wp.longitude.toFixed(5) }} | {{ calculateLegStats(activePopup.entry.waypoints[idx-1], wp).distanceNM.toFixed(2) }} NM Start | {{ calculateLegStats(activePopup.entry.waypoints[idx-1], wp).speedKnots.toFixed(1) }} kt - |
{{ getAttachmentName(activePopup) }}
{{ getAttachmentType(activePopup) || 'Binary Stream' }}