Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 11 additions & 6 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
> v0.6.65 ~ "First-class trailer operations"
> v0.6.66 ~ "Inspections"

---
## What's New
- **Trailers become a first-class Fleet-Ops resource.** Create and manage trailers independently, attach them to vehicles, connect equipment and telematics devices, and review operational, maintenance, location, and towing details from dedicated Trailer screens.
- **Vehicle and equipment relationships are easier to understand.** Vehicle details expose attached trailers and equipment, while Trailer details show the current towing vehicle and installed equipment.
- **Trailer APIs support complete integrations.** Internal and public endpoints cover trailer lifecycle, filtering, towing connections, equipment, devices, telemetry, imports, and exports.
- **Inspection forms are built from typed fields.** A form is groups of fields laid out on a grid: pass/fail checks with severity and on-fail settings, text, numbers, selections, dates, photo uploads and signatures. Forms are built and published from a form builder in the console.
- **One inspection sheet everywhere.** The same sheet is used to fill in an inspection in the console, to read one back, and on a public link. A failed check opens its severity, unsafe flag, comment and photos in place, and a defects tray summarises what needs attention. It works on phones and tablets.
- **Drivers file inspections through the API.** The `v1` inspection endpoints list published forms, file an inspection against one, and read back submissions and a vehicle's history, for the Navigator app and other integrations.
- **Inspection links for anyone in the organisation.** A link can be assigned to any user, protected by a six-digit PIN, and emailed or texted to them. A failed inspection can raise an issue and open a work order, and every submission records who filed it.

---
## Fixes
- Place, zone and service area details, and the place and point map modals, no longer fail to render with "A resolved helper cannot be passed as a named argument".

---
## Testing
- Added frontend, backend, API-contract, attachment, telematics, spatial-data, permission, and serialization coverage for first-class trailers.
- Expanded the Fleetbase Postman collection and documentation alongside the Fleet-Ops implementation.
- Model and controller contract tests cover inspection forms, submissions, links and the PIN lockout.
- The Fleetbase Postman collection documents the `v1` inspection endpoints.

---
## Need help?
Expand Down
2 changes: 1 addition & 1 deletion addon/components/modals/place-details.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<div class="flex">
<div class="w-48 mb-6 mr-6">
<LeafletMap class="w-full h-48 mb-2 rounded-md shadow-md" @lat={{@options.place.latitude}} @lng={{@options.place.longitude}} @zoom={{12}} as |layers|>
<layers.tile @url={{leaflet-tile-url}} />
<layers.tile @url={{(leaflet-tile-url)}} />

<layers.marker @location={{@options.place.coordinates}} />
</LeafletMap>
Expand Down
2 changes: 1 addition & 1 deletion addon/components/modals/point-map.hbs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Modal::Default @modalIsOpened={{@modalIsOpened}} @options={{@options}} @confirm={{@onConfirm}} @decline={{@onDecline}}>
<div class="fleetbase-leaflet-map-container">
<LeafletMap class="map-height-base" @lat={{@options.latitude}} @lng={{@options.longitude}} @zoom={{12}} as |layers|>
<layers.tile @url={{leaflet-tile-url}} />
<layers.tile @url={{(leaflet-tile-url)}} />

<layers.marker @icon={{@options.icon}} @location={{point-to-coordinates @options.location}} @riseOnHover={{true}} as |marker|>
<marker.popup @maxWidth="500" @minWidth="180">
Expand Down
2 changes: 1 addition & 1 deletion addon/components/place/details.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
@zoomControl={{false}}
as |layers|
>
<layers.tile @url={{leaflet-tile-url}} />
<layers.tile @url={{(leaflet-tile-url)}} />
<layers.marker
@id={{@resource.id}}
@icon={{icon iconUrl=(or @resource.avatar_url "/engines-dist/images/building-marker.png") iconSize=(array 40 40)}}
Expand Down
2 changes: 1 addition & 1 deletion addon/components/service-area/details.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
@zoomControl={{false}}
as |layers|
>
<layers.tile @url={{leaflet-tile-url}} />
<layers.tile @url={{(leaflet-tile-url)}} />
<layers.polygon
@id={{@resource.id}}
@record={{@resource}}
Expand Down
2 changes: 1 addition & 1 deletion addon/components/zone/details.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
@zoomControl={{false}}
as |layers|
>
<layers.tile @url={{leaflet-tile-url}} />
<layers.tile @url={{(leaflet-tile-url)}} />
<layers.polygon
@id={{@resource.id}}
@record={{@resource}}
Expand Down
7 changes: 6 additions & 1 deletion addon/helpers/leaflet-tile-url.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,14 @@ import { inject as service } from '@ember/service';
* Resolves the Leaflet tile URL from Fleet-Ops map settings.
*
* Usage:
* <layers.tile @url={{leaflet-tile-url}} />
* <layers.tile @url={{(leaflet-tile-url)}} />
* <layers.tile @url={{leaflet-tile-url theme="dark"}} />
*
* With no arguments it must be invoked in parentheses. A bare
* `@url={{leaflet-tile-url}}` passes the helper by name, which Glimmer refuses
* with "A resolved helper cannot be passed as a named argument" and the whole
* template fails to render.
*
* Recomputes automatically when map settings load or change.
*/
export default class LeafletTileUrlHelper extends Helper {
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "fleetbase/fleetops-api",
"version": "0.6.65",
"version": "0.6.66",
"description": "Fleet & Transport Management Extension for Fleetbase",
"keywords": [
"fleetbase-extension",
Expand Down
2 changes: 1 addition & 1 deletion extension.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Fleet-Ops",
"version": "0.6.65",
"version": "0.6.66",
"description": "Fleet & Transport Management Extension for Fleetbase",
"repository": "https://github.com/fleetbase/fleetops",
"license": "AGPL-3.0-or-later",
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@fleetbase/fleetops-engine",
"version": "0.6.65",
"version": "0.6.66",
"description": "Fleet & Transport Management Extension for Fleetbase",
"fleetbase": {
"route": "fleet-ops"
Expand Down
Loading