Remove Entity-Filter
This commit is contained in:
@@ -7,8 +7,7 @@
|
||||
let entities = [];
|
||||
let loading = true;
|
||||
let error = null;
|
||||
let filter = 'all'; // all, worked, confirmed, unworked
|
||||
let sort = 'name'; // name, status
|
||||
let sort = 'name'; // name
|
||||
let groupedData = [];
|
||||
let bands = [];
|
||||
|
||||
@@ -142,45 +141,17 @@
|
||||
function getFilteredEntities() {
|
||||
let filtered = [...entities];
|
||||
|
||||
// Apply status filter
|
||||
switch (filter) {
|
||||
case 'worked':
|
||||
filtered = filtered.filter((e) => e.worked);
|
||||
break;
|
||||
case 'confirmed':
|
||||
filtered = filtered.filter((e) => e.confirmed);
|
||||
break;
|
||||
case 'unworked':
|
||||
filtered = filtered.filter((e) => !e.worked);
|
||||
break;
|
||||
}
|
||||
|
||||
// Apply sorting
|
||||
switch (sort) {
|
||||
case 'name':
|
||||
filtered.sort((a, b) => {
|
||||
const aName = String(a.entityName || a.entity || '');
|
||||
const bName = String(b.entityName || b.entity || '');
|
||||
return aName.localeCompare(bName);
|
||||
});
|
||||
break;
|
||||
case 'status':
|
||||
filtered.sort((a, b) => {
|
||||
if (a.confirmed && !b.confirmed) return -1;
|
||||
if (!a.confirmed && b.confirmed) return 1;
|
||||
if (a.worked && !b.worked) return -1;
|
||||
if (!a.worked && b.worked) return 1;
|
||||
const aName = String(a.entityName || a.entity || '');
|
||||
const bName = String(b.entityName || b.entity || '');
|
||||
return aName.localeCompare(bName);
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
return filtered;
|
||||
}
|
||||
|
||||
// Re-apply filter when filter/sort changes
|
||||
// Re-apply sort when entities or sort changes
|
||||
$: if (entities.length > 0) {
|
||||
applyFilter();
|
||||
}
|
||||
@@ -205,21 +176,10 @@
|
||||
</div>
|
||||
|
||||
<div class="controls">
|
||||
<div class="filter-group">
|
||||
<label>Filter:</label>
|
||||
<select bind:value={filter}>
|
||||
<option value="all">All Entities</option>
|
||||
<option value="worked">Worked</option>
|
||||
<option value="confirmed">Confirmed</option>
|
||||
<option value="unworked">Unworked</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="sort-group">
|
||||
<label>Sort by:</label>
|
||||
<select bind:value={sort}>
|
||||
<option value="name">Name</option>
|
||||
<option value="status">Status</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -26,8 +26,7 @@
|
||||
|
||||
let filters = {
|
||||
band: '',
|
||||
mode: '',
|
||||
confirmed: false
|
||||
mode: ''
|
||||
};
|
||||
|
||||
// Load QSOs on mount
|
||||
@@ -54,7 +53,6 @@
|
||||
const activeFilters = {};
|
||||
if (filters.band) activeFilters.band = filters.band;
|
||||
if (filters.mode) activeFilters.mode = filters.mode;
|
||||
if (filters.confirmed) activeFilters.confirmed = 'true';
|
||||
|
||||
activeFilters.page = currentPage;
|
||||
activeFilters.limit = pageSize;
|
||||
@@ -180,8 +178,7 @@
|
||||
currentPage = 1;
|
||||
filters = {
|
||||
band: '',
|
||||
mode: '',
|
||||
confirmed: false
|
||||
mode: ''
|
||||
};
|
||||
loadQSOs();
|
||||
}
|
||||
@@ -380,11 +377,6 @@
|
||||
{/each}
|
||||
</select>
|
||||
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox" bind:checked={filters.confirmed} on:change={applyFilters}>
|
||||
Confirmed only
|
||||
</label>
|
||||
|
||||
<button class="btn btn-secondary" on:click={clearFilters}>Clear</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user