Instrument panel implemented as a grid with draggable & resizable components. Components are added dynamically eg. when the panel receives data it hasn't seen before a new cell is added to the grid.
Developing:
- install development dependencies with
npm install
- build & watch with
npm run watch
- building js bundle for distribution:
npm run dist
(and push changes to dist/ui.js). This builds minified ui.js.
-
activate/deactivate individual widgets
-
connect to multiple servers
-
minify
-
react-grid-styles: bower packaging
-
'Receiving indicator' (circle/circle-o)
-
allow bootstrap of grid configuration from server: settings panel shows json that can be retrieved from the server with ?useGridFromServer=true url parameter)
-
visible grid cell background
-
per server layout persisted in localstorage
-
last known servers & connection status in localstorage
-
good widgets for 'normal' data set (position, current, date & time)
-
true/both values in windmeter, change by click
-
alternative/configurable units (knots/mps/mph)
-
configurable display format (position: deg+min.dec, deg.min.sec / precision)
-
history graph widget (simple)
-
sailgauge widget
-
'discovery mode' manual activation/deactivation
-
possibility to delete obsolete data items
-
manual addition of widgets, multiple alternative widgets
-
configuration mode for widgets
-
full screen mode for widgets
-
history graph widget (maybe https://github.com/mapbox/react-tangle for scaling)
-
configurable number of grid columns
-
multiple alternate layouts
-
server configuration storage (button to store on the server)
-
ais tracker widget
-
map widget
-
ui cleanup...
-
bootstrapping from server for history graph
-
subscription support: fetch items list from server, only subscribe when widget activated
-
use Primus/reconnect support