diff --git a/CHANGELOG.md b/CHANGELOG.md index f66a2fc6..b30bc61f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,15 @@ # CHANGELOG: Freeboard -### v2.12.3 +### v2.13.0 +- **New**: Use of maritime icons from [OpenBridge](https://www.figma.com/community/file/1445713209741917748) +- **New**: Support for Signal K [Autopilot API](https://demo.signalk.org/documentation/develop/rest-api/open_api.html). +- **New**: Display different Note icons when "skIcon" property is an Active Captain POI type. - **Fixed**: Navigation data panel alignment on smaller screens. (#212) - **Fixed**: Notes popover disables move & delete buttons when readOnly property is set. (#214) -- **Added**: Additional aisCogLine length options. (#209) +- **Updated**: Resource Set feature popover formatting. (#213) +- **Updated**: Show more / less ui icons. (#217) +- **Updated**: Relocated close button on resource lists. (#218) +- **Updated**: Additional aisCogLine length options. (#209) - **Added**: Configuration to retrieve only the Resource Set features that fall within a specified radius of the map center. (#207) diff --git a/README.md b/README.md index 86ae092c..a87c9b76 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,19 @@ Whilst not specifically defined in the Signal K specification, Freeboard-SK supp --- +### Autopilot Console: + +Freeboard-SK supports the Signal K Autopilot API which enables common operations to be performed +including: +- Engage / Disengage the autopilot +- Setting the operation mode e.g. compass, route, gps, etc. +- Setting and adjusting the target heading +- Dodging obstacles + +![image](https://github.com/user-attachments/assets/e771fa83-92cd-4e65-ad78-a349646049c8) + +--- + ### Alarms and Notifications: Freeboard-SK can display alarms _(visual and audio)_ & messages contained in *Notification* messages transmitted by the Signal K server. diff --git a/package.json b/package.json index dca8984a..4e148a27 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@signalk/freeboard-sk", - "version": "2.12.3", + "version": "2.13.0", "description": "Openlayers chart plotter implementation for Signal K", "keywords": [ "signalk-webapp", diff --git a/src/app-theme.scss b/src/app-theme.scss index 9c8c1212..32713893 100644 --- a/src/app-theme.scss +++ b/src/app-theme.scss @@ -94,6 +94,7 @@ html { } .icon-route { color: green !important; + stroke: green !important; } .icon-waypoint, .icon-accent { @@ -107,6 +108,11 @@ html { color: red !important; } + .ob path { + stroke: mat.get-theme-color($light-theme, on-surface) !important; + fill: mat.get-theme-color($light-theme, on-surface) !important; + } + .button-primary { background-color: mat.get-theme-color($light-theme, primary) !important; color: white !important; @@ -124,6 +130,14 @@ html { background-color: mat.get-theme-color($light-theme, error) !important; color: white !important; } + .button-primary .ob path, + .button-secondary .ob path, + .button-tertiary .ob path, + .button-error .ob path, + .button-warn .ob path { + stroke: white !important; + fill: white !important; + } .button-accent { background-color: orange!important; color: black !important; @@ -131,6 +145,12 @@ html { .button-toolbar { background-color: #e0e0ff !important; color: black !important; + + } + .button-accent .ob path, + .button-toolbar .ob path { + stroke: black !important; + fill: black !important; } .about-row .item a, @@ -195,5 +215,23 @@ html { .welcome .step-other { color: mat.get-theme-color($dark-theme, secondary); } + + .ob path { + stroke: mat.get-theme-color($dark-theme, on-surface) !important; + fill: mat.get-theme-color($dark-theme, on-surface) !important; + } + .button-primary .ob path, + .button-secondary .ob path, + .button-tertiary .ob path, + .button-error .ob path, + .button-warn .ob path { + stroke: white !important; + fill: white !important; + } + .button-accent .ob path, + .button-toolbar .ob path { + stroke: black !important; + fill: black !important; + } } } diff --git a/src/app/app.component.html b/src/app/app.component.html index 221b42d7..0a660ee9 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -6,7 +6,7 @@ mat-menu-item (click)="sidemenu.close(); displayLeftMenu('routeList', true)" > - directions +  Routes @if(app.config.resources.paths.length !== 0) { @@ -57,7 +57,10 @@ sidemenu.close(); openExperiment({ choice: p, value: null }) " > - category +  {{ p }} } } @@ -129,11 +132,11 @@ - directions + Draw Route - directions + Build Route @@ -210,7 +213,7 @@ - streetview +  Load GPX @@ -223,7 +226,10 @@ - category +  Load Resource @@ -426,8 +432,12 @@ " matTooltipPosition="right" > - - {{ app.config.map.northUp ? 'navigation' : 'explore' }} + @@ -447,7 +457,7 @@ " matTooltipPosition="right" > - my_location + @if(!app.config.map.moveMap) { @@ -955,7 +965,7 @@ matTooltip="Course Settings" (click)="openCourseSettings()" > - settings +
@if(showProperties) { diff --git a/src/app/modules/skresources/components/ais/aislist.html b/src/app/modules/skresources/components/ais/aislist.html index 62231229..ccadcf61 100644 --- a/src/app/modules/skresources/components/ais/aislist.html +++ b/src/app/modules/skresources/components/ais/aislist.html @@ -1,18 +1,18 @@
- +
-
Vessels:
+
Vessels:
diff --git a/src/app/modules/skresources/components/ais/aton-properties-modal.ts b/src/app/modules/skresources/components/ais/aton-properties-modal.ts index f9a1ea9b..dbd718f4 100644 --- a/src/app/modules/skresources/components/ais/aton-properties-modal.ts +++ b/src/app/modules/skresources/components/ais/aton-properties-modal.ts @@ -71,7 +71,7 @@ import { SignalKDetailsComponent } from '../../components/signalk-details.compon @if(showProperties) { diff --git a/src/app/modules/skresources/components/charts/chartlist.html b/src/app/modules/skresources/components/charts/chartlist.html index 47099346..8c0ff3b1 100644 --- a/src/app/modules/skresources/components/charts/chartlist.html +++ b/src/app/modules/skresources/components/charts/chartlist.html @@ -6,20 +6,20 @@ JSON Map Source - +
-
Charts:
+
Charts:
diff --git a/src/app/modules/skresources/components/notes/note-dialog.html b/src/app/modules/skresources/components/notes/note-dialog.html index d080ff28..845b1b63 100644 --- a/src/app/modules/skresources/components/notes/note-dialog.html +++ b/src/app/modules/skresources/components/notes/note-dialog.html @@ -30,7 +30,9 @@ @if(!data.editable) {
- local_offer + local_offer Note Details
+
Notes:
diff --git a/src/app/modules/skresources/components/resourcelist.css b/src/app/modules/skresources/components/resourcelist.css index 4f34be91..1e667129 100644 --- a/src/app/modules/skresources/components/resourcelist.css +++ b/src/app/modules/skresources/components/resourcelist.css @@ -21,13 +21,13 @@ left: 0; right: 0; bottom: 0; - top: 130px; + top: 125px; } .resourcelist .resources.vessels, .resourcelist .resources.charts { - top: 165px; + top: 160px; } .resourcelist .vscroller { diff --git a/src/app/modules/skresources/components/resourcesets/resourceset-feature-properties-modal.ts b/src/app/modules/skresources/components/resourcesets/resourceset-feature-properties-modal.ts index 05ac1c36..5b893293 100644 --- a/src/app/modules/skresources/components/resourcesets/resourceset-feature-properties-modal.ts +++ b/src/app/modules/skresources/components/resourcesets/resourceset-feature-properties-modal.ts @@ -14,7 +14,6 @@ import { } from '@angular/material/bottom-sheet'; import { AppInfo } from 'src/app/app.info'; import { SKResourceSet } from '../../resourceset-class'; -import { SignalKDetailsComponent } from '../../components/signalk-details.component'; /********* ResourceSetFeatureModal ********** * Displays information about a ResourceSet feature @@ -32,8 +31,7 @@ import { SignalKDetailsComponent } from '../../components/signalk-details.compon MatCardModule, MatButtonModule, MatToolbarModule, - MatCheckboxModule, - SignalKDetailsComponent + MatCheckboxModule ], template: `
@@ -56,7 +54,30 @@ import { SignalKDetailsComponent } from '../../components/signalk-details.compon - +
+
Name:
+
{{ properties.name }}
+
+
Description:
+
+ {{ properties.description }} +
+
+
+ Resource Set: +
+
+ {{ properties['resourceset.name'] }} +
+
+
+
+ Collection: +
+
+ {{ properties['resourceset.collection'] }} +
+
@@ -77,7 +98,8 @@ import { SignalKDetailsComponent } from '../../components/signalk-details.compon ] }) export class ResourceSetFeatureModal implements OnInit { - protected properties = {}; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + protected properties: any = {}; protected title = 'ResourceSet Feature: '; constructor( diff --git a/src/app/modules/skresources/components/routes/routelist.html b/src/app/modules/skresources/components/routes/routelist.html index 28de40c3..ac8be159 100644 --- a/src/app/modules/skresources/components/routes/routelist.html +++ b/src/app/modules/skresources/components/routes/routelist.html @@ -1,18 +1,18 @@
- +
-
Routes:
+
Routes:
diff --git a/src/app/modules/skresources/components/waypoints/waypointlist.html b/src/app/modules/skresources/components/waypoints/waypointlist.html index bad9038c..4e101d09 100644 --- a/src/app/modules/skresources/components/waypoints/waypointlist.html +++ b/src/app/modules/skresources/components/waypoints/waypointlist.html @@ -1,18 +1,18 @@
- +
-
Waypoints:
+
Waypoints:
diff --git a/src/app/modules/skresources/resource-classes.ts b/src/app/modules/skresources/resource-classes.ts index 061a7f10..00f0c451 100644 --- a/src/app/modules/skresources/resource-classes.ts +++ b/src/app/modules/skresources/resource-classes.ts @@ -71,8 +71,10 @@ export class SKNote { mimeType: string; url: string; group: string; - authors: Array; - properties: { [key: string]: unknown }; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + authors: Array; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + properties: { [key: string]: any }; constructor(note?: NoteResource) { this.name = note?.name ?? ''; diff --git a/src/app/modules/skresources/resourceset-service.ts b/src/app/modules/skresources/resourceset-service.ts index 62f17c6a..b31c335e 100644 --- a/src/app/modules/skresources/resourceset-service.ts +++ b/src/app/modules/skresources/resourceset-service.ts @@ -61,7 +61,7 @@ export class SKOtherResources { } let rf = ''; if ( - this.app.config.resources.fetchRadius && + this.app.config.resources.fetchRadius !== 0 && this.app.config.resources.fetchFilter ) { rf = processUrlTokens( diff --git a/src/app/types/index.d.ts b/src/app/types/index.d.ts index e04b9498..b35dd572 100644 --- a/src/app/types/index.d.ts +++ b/src/app/types/index.d.ts @@ -166,6 +166,9 @@ export interface FBAppData { hasApi: boolean; // Server implements Autopilot API isLocal: boolean; // true if FB plugin AP API is enabled }; + skIcons: { + hasApi: boolean; // Server implements SignalK Icon resources endpoint + }; buildRoute: { show: boolean; }; diff --git a/src/app/types/resources/signalk.ts b/src/app/types/resources/signalk.ts index 62120bf1..a9612816 100644 --- a/src/app/types/resources/signalk.ts +++ b/src/app/types/resources/signalk.ts @@ -45,9 +45,11 @@ export interface NoteResource { mimeType?: string; url?: string; // ca reports attributes - group: string; - authors: Array; - properties: { [key: string]: unknown }; + group?: string; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + authors?: Array; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + properties: { [key: string]: any }; timestamp: string; source: string; }