Improved filter selector

This commit is contained in:
Risto Lahtela 2021-02-03 18:25:07 +02:00
parent 9aa9970d26
commit 9e63b82c99
4 changed files with 34 additions and 6 deletions

View File

@ -37,10 +37,7 @@ import org.apache.commons.lang3.StringUtils;
import javax.inject.Inject;
import javax.inject.Singleton;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@ -116,6 +113,7 @@ public class FiltersJSONResolver implements Resolver {
for (Map.Entry<String, Filter> entry : filtersByKind.entrySet()) {
filters.add(new FilterJSON(entry.getKey(), entry.getValue()));
}
Collections.sort(filters);
this.view = view;
}
}
@ -123,7 +121,7 @@ public class FiltersJSONResolver implements Resolver {
/**
* JSON serialization class.
*/
static class FilterJSON {
static class FilterJSON implements Comparable<FilterJSON> {
final String kind;
final Map<String, Object> options;
final String[] expectedParameters;
@ -133,6 +131,11 @@ public class FiltersJSONResolver implements Resolver {
this.options = filter.getOptions();
this.expectedParameters = filter.getExpectedParameters();
}
@Override
public int compareTo(FilterJSON o) {
return String.CASE_INSENSITIVE_ORDER.compare(this.kind, o.kind);
}
}
/**

View File

@ -1247,4 +1247,9 @@ body.sidebar-hidden .navbar-nav {
.contributors li {
padding: 0;
}
#filter-dropdown {
max-height: 18rem;
overflow-y: scroll;
}

View File

@ -194,4 +194,24 @@ function createFilter(filter, id) {
default:
throw new Error("Unsupported filter kind: '" + filter.kind + "'");
}
}
function getReadableFilterName(filter) {
if (filter.kind.startsWith("pluginGroups-")) {
return "Group: " + filter.kind.substring(13);
}
switch (filter.kind) {
case "activityIndexNow":
return "Current activity group";
case "banned":
return "Ban status";
case "operators":
return "Operator status";
case "playedBetween":
return "Played between";
case "registeredBetween":
return "Registered between";
default:
return filter.kind;
}
}

View File

@ -113,7 +113,7 @@ function removeFilter(filterIndex) {
}
function createFilterSelector(parent, index, filter) {
return `<a class="dropdown-item" href="javascript:void(0)" onclick="addFilter('${parent}', ${index})">${filter.kind}</a>`;
return `<a class="dropdown-item" href="javascript:void(0)" onclick="addFilter('${parent}', ${index})">${getReadableFilterName(filter)}</a>`;
}
function isValidDate(value) {