many updates

This commit is contained in:
2026-01-13 09:42:16 -08:00
parent 4bb86b603e
commit 362f4cb5aa
81 changed files with 3106 additions and 336 deletions

View File

@@ -45,6 +45,65 @@
<option value="yoga">Yoga</option>
</select>
</div>
<div class="col-auto">
<div class="dropdown">
<button class="btn btn-outline-secondary dropdown-toggle" type="button" id="metricFilterDropdown"
data-bs-toggle="dropdown" aria-expanded="false">
Metric Filters
</button>
<ul class="dropdown-menu p-3" aria-labelledby="metricFilterDropdown" style="min-width: 250px;">
<li>
<h6 class="dropdown-header">Required Metrics</h6>
</li>
<li>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="filter-has-hr">
<label class="form-check-label" for="filter-has-hr">Has Heart Rate</label>
</div>
</li>
<li>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="filter-has-power">
<label class="form-check-label" for="filter-has-power">Has Power</label>
</div>
</li>
<li>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="filter-has-cadence">
<label class="form-check-label" for="filter-has-cadence">Has Cadence</label>
</div>
</li>
<li>
<hr class="dropdown-divider">
</li>
<li>
<h6 class="dropdown-header">Power Type</h6>
</li>
<li>
<div class="form-check">
<input class="form-check-input" name="est-power-filter" type="radio"
id="filter-power-any" checked>
<label class="form-check-label" for="filter-power-any">Any</label>
</div>
</li>
<li>
<div class="form-check">
<input class="form-check-input" name="est-power-filter" type="radio"
id="filter-power-real">
<label class="form-check-label" for="filter-power-real">Real Power Only</label>
</div>
</li>
<li>
<div class="form-check">
<input class="form-check-input" name="est-power-filter" type="radio"
id="filter-power-est">
<label class="form-check-label" for="filter-power-est">Estimated Only</label>
</div>
</li>
</ul>
</div>
</div>
<div class="col-auto">
<label for="filter-bike" class="col-form-label">Bike:</label>
</div>
@@ -392,12 +451,26 @@
let url = `/api/activities/list?limit=${limit}&offset=${currentPage * limit}`;
// If any filter is active, force query mode
if (typeFilter || bikeFilter) {
// If any filter is active, force query mode
const hasHr = document.getElementById('filter-has-hr').checked;
const hasPower = document.getElementById('filter-has-power').checked;
const hasCadence = document.getElementById('filter-has-cadence').checked;
const powerReal = document.getElementById('filter-power-real').checked;
const powerEst = document.getElementById('filter-power-est').checked;
if (typeFilter || bikeFilter || hasHr || hasPower || hasCadence || powerReal || powerEst) {
url = `/api/activities/query?`;
const params = new URLSearchParams();
if (typeFilter) params.append('activity_type', typeFilter);
if (bikeFilter) params.append('bike_setup_id', bikeFilter);
if (hasHr) params.append('has_hr', 'true');
if (hasPower) params.append('has_power', 'true');
if (hasCadence) params.append('has_cadence', 'true');
if (powerReal) params.append('is_estimated_power', 'false');
if (powerEst) params.append('is_estimated_power', 'true');
url += params.toString();
document.getElementById('prev-page-btn').disabled = true;