Commit Graph

375 Commits

Author SHA1 Message Date
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
41925c3645 Add a navigation header to the default configuration.
This receives data from the navigation system on
UDP port 30000. It will try to parse all known headers.
2020-08-31 14:36:56 +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
2cf9c36b2d Add real-time inputs table to DB 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
c4c09f0a9d Delete online data before importing sequence.
The deferred import routing will delete any online
data for any raw sequences that it imports.
2020-08-31 13:09:57 +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
5363ce8bab Handle NTBP flags in raw data.
This works by matching a regular expression against
the full path name (not just the file name). If it
matches, the NTBP flag is set to true.
2020-08-31 13:04:46 +02:00
D. Berge
c32c408d12 Import .profile into runner.sh.
So that it has access to the right environment
when run by cron.
2020-08-31 12:57:55 +02:00
D. Berge
54a717dc91 Do not fail hard if preplots do not exist.
They might not have been done yet, and it will be obvious
to the user if they're not there.
2020-08-29 13:14:20 +02:00
D. Berge
a9247c691c Handle division by zero 2020-08-29 12:52:29 +02:00
D. Berge
71e0326141 Add missing import 2020-08-29 10:40:55 +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
91d4059cdf Make send_alert usable as a module 2020-08-28 17:33:32 +02:00
D. Berge
22f806e81e Warn on import problems.
If there is a problem with files matching the capture
globs but not matching the file name regexp patterns,
these routines will emit a message to stderr and skip
the non-matching file.
2020-08-28 17:31:25 +02:00
D. Berge
639ac237e3 Replace Python globbing library.
This was motivated by the need to recurse down paths.
2020-08-28 13:49:43 +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
242d35ec80 Update schema: add project summary tables 2020-08-26 20:14:07 +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
f3e8205adc Update schema: add sequences summary view 2020-08-25 17:59:56 +02:00
D. Berge
a9ad5e1c08 Update schema: add NTBA columns.
NTBA = Not To Be Acquired. We will ignore those lines
and points in our views / queries when considering
missing shots / completion rates.
2020-08-25 17:58:03 +02:00
D. Berge
0c7b3146ae Update label definitions when updating survey config.
It will not delete any labels that have been removed
from the configuration, as those may be used, but it
will add new labels and modify existing ones if they
changed.
2020-08-25 17:52:17 +02:00
D. Berge
c3b0212798 Add more label definitions to example survey config 2020-08-25 17:51:19 +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
3ce6f1dce6 Add tasks runner script.
This script runs the deferred imports. It is meant to
be called from a cronjob at regular intervals – every
one or two minutes is probably a good setting.

It checks if another instance is already running before
doing its thing.

If anything goes wrong (any of the called processes exits
with non-zero condition) it will send an alert to GitLab,
provided that the authorisation key is known.
2020-08-24 21:01:47 +02:00
D. Berge
b4b06c8744 Instrument alerts for deferred imports.
In case of errors (or anything else of note), send_alert.py
can be used to push information to a GitLab alerts endpoint.

It is generic enough that it can be used with anything else, though.
2020-08-24 20:02:12 +02:00
D. Berge
bc784989f6 Make P1 imports not fail if called needlessly.
If their respective configuration keys are not
defined in a survey configuration, the import
routines will print an informational message
and exit successfully.
2020-08-24 19:45:59 +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