Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .github/ISSUE_TEMPLATE/release-verification.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,14 @@ Run the application locally or on a test instance against commit {{ COMMIT_SHA }
- [ ] Place-edit: Shows nearby places as points on the map
- [ ] Place-edit: allows editing/removing/adding a polygon
- [ ] Multi-user: Data isolation confirmed (no cross-leak)
- [ ] Multi-user: Tracks and trips visible to all connected users
- [ ] Multi-user: Tracks and Trips visible to all connected users
- [ ] Multi-user: Live View visible to all connected users
- [ ] Workbench: Are multiple devices displayed and selectable?
- [ ] Workbench: Are points selected and highlighted? Can we move or remove them?
- [ ] Workbench: Does the map follow the selected points?
- [ ] Workbench: Does stitching a device timeline into the main timeline work?
- [ ] Workbench: Revert actions do not break the workbench?
- [ ] Workbench: Saving works and the main timeline gets adjusted?
- [ ] Visit Sensitivity: Create a new setting, verify that the recalculation works
- [ ] Import: GPX/GeoJSON triggers queue, status visible in UI
- [ ] Geocoding: Failover handled gracefully (no UI freeze)
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/controlled-release.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "controlled-release"
name: "Release"

on:
workflow_dispatch:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
CREATE INDEX idx_rlp_active_users
ON raw_location_points (user_id, timestamp)
WHERE processed = false;
25 changes: 20 additions & 5 deletions src/main/resources/templates/settings/import-data.html
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,10 @@ <h3 th:text="#{upload.gpx.title}">GPX Files</h3>
<div class="form-group">
<input type="file" name="files" accept=".gpx" multiple required>
</div>
<div class="form-group" th:if="${not #lists.isEmpty(devices)}">
<div class="form-group" th:if="${#lists.size(devices) == 1}">
<input th:type="hidden" name="device" th:value="${devices[0].id}">
</div>
<div class="form-group" th:unless="${#lists.size(devices) == 1}">
<label for="gpx-device-select" th:text="#{upload.select.device}">Device</label>
<select name="device" id="gpx-device-select">
<option th:each="device : ${devices}"
Expand Down Expand Up @@ -80,7 +83,10 @@ <h3 th:text="#{upload.geojson.title}">GeoJSON Files</h3>
<div class="form-group">
<input type="file" name="files" accept=".geojson,.json" multiple required>
</div>
<div class="form-group" th:if="${not #lists.isEmpty(devices)}">
<div class="form-group" th:if="${#lists.size(devices) == 1}">
<input th:type="hidden" name="device" th:value="${devices[0].id}">
</div>
<div class="form-group" th:unless="${#lists.size(devices) == 1}">
<label for="geojson-device-select" th:text="#{upload.select.device}">Device</label>
<select name="device" id="geojson-device-select">
<option th:each="device : ${devices}"
Expand Down Expand Up @@ -112,7 +118,10 @@ <h3 th:text="#{upload.google.android.format.title}">📱 Android Timeline (timel
<div class="form-group">
<input type="file" name="file" accept=".json" required>
</div>
<div class="form-group" th:if="${not #lists.isEmpty(devices)}">
<div class="form-group" th:if="${#lists.size(devices) == 1}">
<input th:type="hidden" name="device" th:value="${devices[0].id}">
</div>
<div class="form-group" th:unless="${#lists.size(devices) == 1}">
<label for="timeline-android-device-select" th:text="#{upload.select.device}">Device</label>
<select name="device" id="timeline-android-device-select">
<option th:each="device : ${devices}"
Expand Down Expand Up @@ -144,7 +153,10 @@ <h3 th:text="#{upload.google.ios.format.title}">📱 iOS Timeline (timeline.json
<div class="form-group">
<input type="file" name="file" accept=".json" required>
</div>
<div class="form-group" th:if="${not #lists.isEmpty(devices)}">
<div class="form-group" th:if="${#lists.size(devices) == 1}">
<input th:type="hidden" name="device" th:value="${devices[0].id}">
</div>
<div class="form-group" th:unless="${#lists.size(devices) == 1}">
<label for="timeline-ios-device-select" th:text="#{upload.select.device}">Device</label>
<select name="device" id="timeline-ios-device-select">
<option th:each="device : ${devices}"
Expand Down Expand Up @@ -175,7 +187,10 @@ <h3 th:text="#{upload.google.old.format.title}">🌐 Old Format (Records.json)</
<div class="form-group">
<input type="file" name="file" accept=".json" required>
</div>
<div class="form-group" th:if="${not #lists.isEmpty(devices)}">
<div class="form-group" th:if="${#lists.size(devices) == 1}">
<input th:type="hidden" name="device" th:value="${devices[0].id}">
</div>
<div class="form-group" th:unless="${#lists.size(devices) == 1}">
<label for="records-device-select" th:text="#{upload.select.device}">Device</label>
<select name="device" id="records-device-select">
<option th:each="device : ${devices}"
Expand Down
Loading