diff --git a/persistence/player_repository.go b/persistence/player_repository.go
index 9c33dfb38..85f9219c5 100644
--- a/persistence/player_repository.go
+++ b/persistence/player_repository.go
@@ -19,6 +19,9 @@ func NewPlayerRepository(ctx context.Context, o orm.Ormer) model.PlayerRepositor
r.ctx = ctx
r.ormer = o
r.tableName = "player"
+ r.filterMappings = map[string]filterFunc{
+ "name": containsFilter,
+ }
return r
}
diff --git a/persistence/sql_restful.go b/persistence/sql_restful.go
index 0269c29df..c5208a96d 100644
--- a/persistence/sql_restful.go
+++ b/persistence/sql_restful.go
@@ -52,6 +52,10 @@ func startsWithFilter(field string, value interface{}) Sqlizer {
return Like{field: fmt.Sprintf("%s%%", value)}
}
+func containsFilter(field string, value interface{}) Sqlizer {
+ return Like{field: fmt.Sprintf("%%%s%%", value)}
+}
+
func booleanFilter(field string, value interface{}) Sqlizer {
v := strings.ToLower(value.(string))
return Eq{field: strings.ToLower(v) == "true"}
diff --git a/ui/src/player/PlayerList.js b/ui/src/player/PlayerList.js
index c36ef304b..26c5e21f2 100644
--- a/ui/src/player/PlayerList.js
+++ b/ui/src/player/PlayerList.js
@@ -5,14 +5,27 @@ import {
DateField,
FunctionField,
ReferenceField,
+ Filter,
+ SearchInput,
} from 'react-admin'
import { useMediaQuery } from '@material-ui/core'
import { SimpleList, List } from '../common'
-const PlayerList = (props) => {
+const PlayerFilter = (props) => (
+
+
+
+)
+
+const PlayerList = ({ permissions, ...props }) => {
const isXsmall = useMediaQuery((theme) => theme.breakpoints.down('xs'))
return (
-
+
}
+ >
{isXsmall ? (
r.client}
@@ -22,6 +35,7 @@ const PlayerList = (props) => {
) : (
+ {permissions === 'admin' && }