D. Berge
34dfb4f862
Add websocket client to receive event notifications.
...
These are saved in the Vuex store and can be retrieved
via the `serverEvent` getter. There are also some
convenience getters for retrieving line status.
2020-09-04 01:33:18 +02:00
D. Berge
52907921f1
Add websocket server to emit DB notifications
2020-09-04 01:33:18 +02:00
D. Berge
a9a084b531
Cope with prospect detection not working during approach / runout
2020-09-04 01:31:39 +02:00
D. Berge
78aaacb8b3
Improve sequence list search
2020-09-02 11:09:04 +02:00
D. Berge
d683f00594
Implement SmartSource header parser
2020-09-02 08:59:22 +02:00
D. Berge
0a2f0b0b60
Refactor save() so that we can force a specific CRS.
...
This was brought about due to the absence of CRS information
in the navigation header outputs. We get either unqualified
easting / northing or unqualified latitude / longitude, neither
of which happen to be WGS84.
This is not a good solution as it involves manual configuration,
but allows us to move forward for the time being.
2020-09-02 08:55:08 +02:00
D. Berge
ff2e30511c
Refactor save() call to pass in header.meta options
2020-09-02 08:54:16 +02:00
D. Berge
1f60ebae47
Make selection of headers to parse configurable
2020-09-02 08:52:49 +02:00
D. Berge
e9f62a420a
Only fetch real-time positions when layers are visible
2020-09-01 12:37:59 +02:00
D. Berge
7dbfb3ab6a
Change real-time position marker
2020-09-01 12:37:39 +02:00
D. Berge
bf896f71dc
Show also NTBP and in progress sequence statuses
2020-09-01 12:36:00 +02:00
D. Berge
297829f343
Do not list raw/final files if there aren't any
2020-09-01 12:35:30 +02:00
D. Berge
4291b83817
Show raw and final remarks in expanded row
2020-09-01 12:34:58 +02:00
D. Berge
276af8fcd6
Filter sequence list locally (fetch all sequences).
...
Even in the event that we have thousands of sequences
this should be acceptable and gives us more flexibility
at lower effort than paginating on the server.
2020-09-01 12:33:01 +02:00
D. Berge
c8e0dc5d02
Return only real files from sequence list endpoint.
...
In other words, filter out real-time data.
2020-09-01 12:30:49 +02:00
D. Berge
880891cc2b
Add real-time position to map
2020-09-01 11:01:13 +02:00
D. Berge
eded667d79
Add endpoint for retrieving real-time data as GeoJSON
2020-09-01 10:58:37 +02:00
D. Berge
557d87de72
Add endpoint to retrieve real-time input data
2020-09-01 10:56:25 +02:00
D. Berge
bfc4124b33
Save to real_time_inputs also when we're on a line
2020-09-01 10:52:38 +02:00
D. Berge
bed9cdc69f
Add UDP server for navigation system headers
2020-08-31 14:36:56 +02:00
D. Berge
c0c395d9a0
Save online and offline real-time data to database
2020-08-31 14:36:56 +02:00
D. Berge
e4803da149
Add decoders for Hydronav, LABOv3 navigation headers
2020-08-31 13:40:56 +02:00
D. Berge
433daca9ef
Add deep properties getter utility function to config.
...
cfg._("a.deep.property") returns the value of
cfg.a.deep.property if it exists. If the property
or any of its parents do not exist, returns undefined.
2020-08-31 13:07:27 +02:00
D. Berge
a9247c691c
Handle division by zero
2020-08-29 12:52:29 +02:00
D. Berge
d863f4221d
Remove extra space from output
2020-08-29 10:36:04 +02:00
D. Berge
a5fe545885
Update URL with map view parameters.
...
The hash part encodes the current view so that it
is recreated when sending a link to someone.
2020-08-29 10:30:30 +02:00
D. Berge
fb4d25643e
Implement project summary view
2020-08-28 13:49:14 +02:00
D. Berge
162a8878a9
Add help link to footer
2020-08-28 13:48:03 +02:00
D. Berge
e5bc5a0757
Refactor project summaries to use database views
2020-08-26 20:20:53 +02:00
D. Berge
1bf0b67409
Fix Project component name
2020-08-26 20:20:53 +02:00
D. Berge
b165fc2b2a
Rely on Vuex for loading state indications
2020-08-26 17:48:55 +02:00
D. Berge
96d8e0df13
Add loading state indicator to Vuex store.
...
Every time an API call is made via the store's own `api`
interface, a request counter is incremented. It is
decremented whenever a call completes, whether sucessfully
or not.
If the request counter is at zero, no requests are in
progress. This is exposed to the user via the `loading`
getter.
Calls made other than via the store's `api` interface
will not be registered. The user can choose to increment /
decrement the request counter manually via the relevant
store methods.
2020-08-26 17:42:59 +02:00
D. Berge
cb4846c900
Refactor project DB routines
2020-08-26 17:41:40 +02:00
D. Berge
c7c8f5df8a
Sort sequence list by sequence descending by default
2020-08-25 18:31:51 +02:00
D. Berge
da3d273c41
Show expanded sequence information
2020-08-25 18:04:42 +02:00
D. Berge
438f050c2a
Add possibility to return associated files if requested.
...
Pass a trueish value in opts.files to get the list of
raw and final files associated with a sequence. It does
make the query about 30% slower as it stands.
2020-08-25 18:02:28 +02:00
D. Berge
ab23b6e2e6
Reword text field label
2020-08-25 13:02:56 +02:00
D. Berge
98b35d4b89
Implement sequence list view
2020-08-25 13:02:20 +02:00
D. Berge
f366e99c35
Add Vue debounce plugin
2020-08-25 13:01:38 +02:00
D. Berge
00f1ea20da
Allow sequences to be filtered.
...
Sequences can be filtered by:
* sequence number;
* line number;
* start / end date (of raw acquisition);
* remarks (raw or final).
2020-08-25 12:59:40 +02:00
D. Berge
f486b4835e
Instrument alerts for HTTP backend.
...
An alert is sent whenever an endpoint returns
an error other than an explicit failure (e.g.,
it won't send an alert if a middleware intentionally
returns a {status: XXX} object).
2020-08-25 11:32:13 +02:00
D. Berge
650ed998c6
Read also global config in server backend.
...
The configuration file etc/config.yaml is exposed to the
server backend under require('configuration').global.
Note that at some point it will probably make sense to
merge the two config files.
2020-08-25 08:48:10 +02:00
D. Berge
9fa76df446
Be explicit about the encoding of JSON config
2020-08-25 08:47:04 +02:00
D. Berge
721dae4084
Catch all middleware errors
2020-08-24 13:25:14 +02:00
D. Berge
2ed52f1a54
Add data manipulation functionality to Log component.
...
It is now possible to add, edit and delete events.
2020-08-22 20:46:15 +02:00
D. Berge
2ff0dfe1fa
Add <dougal-event-edit-dialog/> component.
...
Used to enter new events.
2020-08-22 20:46:15 +02:00
D. Berge
15d5fb8148
Add <dougal-context-menu/> component
2020-08-22 20:46:15 +02:00
D. Berge
b2fc63dc51
Add defaults to Vuex store api action.
...
It sends Content-Type: application/json by default
and converts the body to string via JSON.stringify
unless it's a string already.
2020-08-22 20:46:15 +02:00
D. Berge
949defd2f6
Add event API endpoints
2020-08-22 20:46:15 +02:00
D. Berge
a55046ed93
Add a meta property to requests.
...
Using the meta(key, value) middleware factory, the user
can add a property req.meta[key] = value to the request.
2020-08-22 20:46:15 +02:00