mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2025-03-13 17:38:03 +08:00
Improved filter selector
This commit is contained in:
parent
9aa9970d26
commit
9e63b82c99
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1247,4 +1247,9 @@ body.sidebar-hidden .navbar-nav {
|
||||
|
||||
.contributors li {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#filter-dropdown {
|
||||
max-height: 18rem;
|
||||
overflow-y: scroll;
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user