D. Berge
f82f2c78c7
Add Vue component for handling delimited strings.
...
<dougal-delimited-string-decoder/> is intended for providing a UI
for configuring text-delimited import settings (such as CSV imports).
2024-05-01 10:40:04 +02:00
D. Berge
9f1fc3d19c
Make Vue component reusable.
...
This converts <dougal-fixed-width-format/> into a more reusable
<dougal-fixed-string-decoder/> component.
2024-05-01 10:40:04 +02:00
D. Berge
873d7cfea7
Add utility Vue components.
...
This commit adds <dougal-field-content/> and
<dougal-field-content-dialog/>, which can be
used to configure certain properties of an
object. Intended for use while editing project
configurations.
2024-05-01 10:40:04 +02:00
D. Berge
2fa9d99eeb
Add YAML frontend dependency.
...
To download / upload configurations.
2024-05-01 10:40:04 +02:00
D. Berge
12b28cbb8d
Add csv-parse dependency to frontend.
...
Also requires a Buffer polyfill.
2024-05-01 10:40:04 +02:00
D. Berge
436a9b8289
Add utility function to truncate long strings
2024-05-01 10:40:04 +02:00
D. Berge
b3dbc0f417
Add utility function to create HSL colours
2024-05-01 10:40:04 +02:00
D. Berge
6d417a9272
Add utility functions.
...
The functions are:
- deepMerge() Merge two objects
- deepCompare() Loose deep comparison
- deepEqual() Strict deep comparison
- deepSet() Set nested object property value
- deepValue() Retrive nested object property value
2024-05-01 10:40:04 +02:00
D. Berge
b74419f770
Reuse deepMerge.js from the backend libs
2024-05-01 10:40:04 +02:00
D. Berge
cae57e2a64
Ensure we get a fresh response
2024-05-01 10:40:04 +02:00
D. Berge
cd739e603f
Fix configuration object data corruption
2024-05-01 10:40:04 +02:00
D. Berge
beeba966dd
Cope with empty result
2024-05-01 10:40:04 +02:00
D. Berge
544c4ead76
Remove trailing slash from URL
2024-05-01 10:40:04 +02:00
D. Berge
4486fc4afc
Improve contrast of new group item
2024-05-01 10:40:04 +02:00
D. Berge
402a3f9cce
Add code for a ‘new project’ button to project list navigation.
...
This is currently disabled though (value in route/index.js is
commented out) as it is not possible at the moment to create
new projects fully from scratch from the frontend. See comment
on previous commit.
NB: projects may be created fully from scratch by making an API
request with a suitable YAML / JSON configuration file, thusly:
curl -vs "https://[hostname]/api/project " -X POST \
-H "Content-Type: application/yaml"
--data-binary @/path/to/configuration.yaml
2024-05-01 10:40:04 +02:00
D. Berge
1801fdb052
Add project creation details component.
...
This is not usable at the moment as the backend requires even
more details, such as binning parameters, which this dialogue
does not provide.
It might be a matter of relaxing the rules on the backend or,
perhaps more likely, rethinking the project creation / editing
frontend. Maybe refactoring the frontend so that saves are done
in one go for the whole configuration as opposed to piecemeal as
currently done might make it easier to work on a configuration
(especially a new one) fully offline.
2024-05-01 10:40:04 +02:00
D. Berge
be904d8a00
Add ‘groups’ column to ProjectList table
2024-05-01 10:40:04 +02:00
D. Berge
2131cdf0c1
Add project cloning option to ProjectList
2024-05-01 10:40:04 +02:00
D. Berge
15242de2d9
Add configuration settings tab to project navigation bar.
...
Only for admin users.
2024-05-01 10:40:04 +02:00
D. Berge
b4aed52976
Add project settings cloning component.
...
Asks for the new ID, name and root file path.
2024-05-01 10:40:04 +02:00
D. Berge
1b85b5cd4b
Remove cloning control stub.
...
Cloning takes place from the project list, we don't really need
to duplicate that functionality here for the time being.
2024-05-01 10:40:04 +02:00
D. Berge
f157f49312
Use project list from Vuex
2024-05-01 10:40:04 +02:00
D. Berge
3d42ce6fbc
Add context menu with ‘Edit project settings’ option
2024-05-01 10:40:04 +02:00
D. Berge
4595dddc24
Add ProjectSettings view
2024-05-01 10:40:04 +02:00
D. Berge
642f5a7585
Add project configuration components.
...
The configuration settings are quite complex so we divide the
GUI into modular components.
2024-05-01 10:40:04 +02:00
D. Berge
e7c29ba14c
Add file browsing components.
...
Essentially, these are a file selection dialog.
2024-05-01 10:40:04 +02:00
D. Berge
d919fb12db
Add control to filter out archived projects in ProjectList
2024-05-01 10:40:04 +02:00
D. Berge
2fb1c5fdcc
Process incoming JWT WebSocket messages
2024-05-01 10:20:09 +02:00
D. Berge
c6b99563d9
Send a request for new credentials at regular intervals.
...
Every five minutes, a message is sent via WebSocket to ask the
server for a refreshed JWT token.
2024-05-01 10:19:00 +02:00
D. Berge
76a90df768
Send "Authorization: Bearer …" on API requests.
...
We need this because we might have more recent credentials than
those in the cookie store.
2024-05-01 10:15:26 +02:00
D. Berge
ea8ea12429
Add JWT Vuex getter
2024-05-01 10:14:55 +02:00
D. Berge
7bd2319cd7
Allow setting credentials directly via the Vuex store.
...
Until now, credentials were set indirectly by reading the browser's
cookie store. This change allows us to receive credentials via other
mechanisms, notably WebSockets.
2024-05-01 10:13:14 +02:00
D. Berge
3da54f9334
Always request a fresh response from the config endpoint
2023-11-04 10:36:58 +01:00
D. Berge
db7b385d66
Don't show logo on graph toolbar
2023-11-02 20:05:18 +01:00
D. Berge
d91a1b1302
Do show a legend for shots with final data.
...
Fixup for commit e4607a095b .
2023-11-02 20:03:57 +01:00
D. Berge
46bb207dfb
Remove debugging artefact
2023-11-02 15:32:48 +01:00
D. Berge
e4607a095b
Don't show a legend for points without gun data
2023-11-02 15:27:06 +01:00
D. Berge
4b0d42390f
Show a message if plotting a c-o with no final data
2023-11-02 15:26:37 +01:00
D. Berge
114e41557f
Don't show graph if there is no data
2023-11-02 15:25:45 +01:00
D. Berge
e605320503
Refresh shotlog on sequence change
2023-11-02 15:24:45 +01:00
D. Berge
6606c7a6c1
Do not show c-o for raw sequences
2023-11-02 15:24:28 +01:00
D. Berge
e3bf671a49
Also monitor raw_shots events
2023-11-02 15:23:45 +01:00
D. Berge
3e08dfd45b
Ignore shots without source data
2023-11-02 13:51:07 +01:00
D. Berge
e1b40547f1
Deconflict Webpack's dev-server websocket.
...
It uses /ws which is the same path Dougal uses.
Changing Dougal's path to something more imaginative requires
reconfiguring Nginx though.
2023-11-02 13:20:41 +01:00
D. Berge
98021441bc
Revert "Rename websocket /ws → /dougal-websocket."
...
This reverts commit 4a8d3a99c1 .
2023-11-02 13:18:37 +01:00
D. Berge
4a8d3a99c1
Rename websocket /ws → /dougal-websocket.
...
The Webpack dev server seems to really like /ws and ignores any
attempts to set a different path, so we just rename our websocket
instead.
2023-11-02 11:39:49 +01:00
D. Berge
bccac446e5
Add polyfill for node:path so we can get basename()
2023-11-01 15:12:30 +01:00
D. Berge
535b3bcc12
Adapt to new Marked interface
2023-11-01 14:59:10 +01:00
D. Berge
11e84a7e72
Upgrade Node packages for frontend build
2023-10-31 22:41:37 +01:00
D. Berge
5ef55a9d8e
Add dark mode support for QC graphs.
...
Closes #159 .
2023-10-31 21:33:30 +01:00