Skip to content
Snippets Groups Projects
Commit 2d1f4b1e authored by lfr20's avatar lfr20
Browse files

Add filters by name

parent 9a012f01
Branches
No related tags found
1 merge request!46Gamefication admin
......@@ -91,6 +91,8 @@ const Gamefication = () => {
const [items, setItems] = useState([]);
const [stateOpt, setStateOpt] = useState(1)
const [typeOpt, setTypeOpt] = useState("")
const [name, setName] = useState("")
const [valueNameField, setValueNameField] = useState("")
const [open, setOpen] = useState(false)
const [deleteItem, setDeleteItem] = useState({})
const [snackInfo, setSnackInfo] = useState({
......@@ -366,17 +368,27 @@ const Gamefication = () => {
const handleChangeStateItem = (index, state) => {
const currItems = [...items]
currItems[index].state = state
currItems.splice(index, 1)
setItems(currItems)
}
const buildUrl = (objType, state) => {
if (objType && (state >= 0 && state <= 2))
return Url("/items", `"state" : ${stateOpt}, "item_type" : "${typeOpt}"`, currPage, "DESC")
const buildUrl = (objType, state, name) => {
if (objType && (state >= 0 && state <= 2) && name)
return Url("/items", `"state" : ${state}, "item_type" : "${objType}", "name" : "${name}"`, currPage, "DESC")
else if (objType && name)
return Url("/items", `"item_type" : "${objType}", "name" : "${name}"`, currPage, "DESC")
else if (objType && (state >= 0 && state <= 2))
return Url("/items", `"item_type" : "${objType}", "state" : ${state}`, currPage, "DESC")
else if (name && (state >= 0 && state <= 2))
return Url("/items", `"name" : "${name}", "state" : ${state}`, currPage, "DESC")
else if (objType)
return Url("/items", `"item_type" : "${typeOpt}"`, currPage, "DESC")
return Url("/items", `"item_type" : "${objType}"`, currPage, "DESC")
else if (state >= 0 && state <= 2)
return Url("/items", `"state" : ${stateOpt}`, currPage, "DESC")
return Url("/items", `"state" : ${state}`, currPage, "DESC")
else if (name)
return Url("/items", `"name" : ${name}`, currPage, "DESC")
else
return Url("/items", "", currPage, "DESC")
}
......@@ -387,7 +399,7 @@ const Gamefication = () => {
else
setIsLoadingMoreItems(true)
getRequest(
buildUrl(typeOpt, stateOpt),
buildUrl(typeOpt, stateOpt, name),
(data, header) => {
const arrData = [...data]
if (arrData.length === 0) {
......@@ -411,10 +423,12 @@ const Gamefication = () => {
setIsLoadingMoreItems(false)
}
)
}, [currPage, typeOpt, stateOpt])
}, [currPage, typeOpt, stateOpt, name])
useEffect(() => {
setTypeOpt("")
setName("")
setValueNameField("")
setStateOpt(1)
}, [showFilter])
......@@ -526,6 +540,16 @@ const Gamefication = () => {
))}
</TextField>
</Grid>
<Grid item>
<TextField
label="Nome"
value={valueNameField}
onChange={(e) => { setValueNameField(e.target.value) }}
onBlur={(e) => { setName(e.target.value) }}
helperText="Por favor, ao digitar o nome que você quer filtar, retire o foco do campo de texto"
>
</TextField>
</Grid>
</Grid>
) : null}
</MobilePageHeader>
......@@ -716,6 +740,16 @@ const Gamefication = () => {
))}
</TextField>
</Grid>
<Grid item>
<TextField
label="Nome"
value={valueNameField}
onChange={(e) => { setValueNameField(e.target.value) }}
onBlur={(e) => { setName(e.target.value) }}
helperText="Por favor, ao digitar o nome que você quer filtar, retire o foco do campo de texto"
>
</TextField>
</Grid>
</Grid>
) : null}
</PageHeader>
......
......@@ -74,7 +74,6 @@ const GameficationAchieves = () => {
"ESTADO",
"ID",
"NAME",
"TIPO",
"CRIADO EM",
"ATUALIZADO EM",
"AÇÕES",
......@@ -88,7 +87,8 @@ const GameficationAchieves = () => {
const [showFilter, setShowFilter] = useState(false);
const [items, setItems] = useState([]);
const [stateOpt, setStateOpt] = useState(1)
const [typeOpt, setTypeOpt] = useState("")
const [name, setName] = useState("")
const [valueNameField, setValueNameField] = useState("")
const [open, setOpen] = useState(false)
const [deleteItem, setDeleteItem] = useState({})
const [snackInfo, setSnackInfo] = useState({
......@@ -104,14 +104,6 @@ const GameficationAchieves = () => {
{ name: 2, value: "Removido" },
];
const typesOptions = [
{ name: "avatar_frame", value: "Moldura de avatar" },
{ name: "badge", value: "Insígnia" },
{ name: "card_frame", value: "Moldura de card do usuário" },
{ name: "cover_frame", value: "Moldura de capa" },
];
//handle snack info
const HandleSnack = (message, state, icon, color) => {
setSnackInfo({
......@@ -368,11 +360,11 @@ const GameficationAchieves = () => {
setItems(currItems)
}
const buildUrl = (objType, state) => {
if (objType && (state >= 0 && state <= 2))
return Url("/achievements", `"state" : ${stateOpt}, "item_type" : "${typeOpt}"`, currPage, "DESC")
else if (objType)
return Url("/achievements", `"item_type" : "${typeOpt}"`, currPage, "DESC")
const buildUrl = (name, state) => {
if (name && (state >= 0 && state <= 2))
return Url("/achievements", `"state" : ${stateOpt}, "name" : "${name}"`, currPage, "DESC")
else if (name)
return Url("/achievements", `"name" : "${name}"`, currPage, "DESC")
else if (state >= 0 && state <= 2)
return Url("/achievements", `"state" : ${stateOpt}`, currPage, "DESC")
else
......@@ -385,7 +377,7 @@ const GameficationAchieves = () => {
else
setIsLoadingMoreItems(true)
getRequest(
buildUrl(typeOpt, stateOpt),
buildUrl(name, stateOpt),
(data, header) => {
const arrData = [...data]
if (arrData.length === 0) {
......@@ -409,10 +401,10 @@ const GameficationAchieves = () => {
setIsLoadingMoreItems(false)
}
)
}, [currPage, typeOpt, stateOpt])
}, [currPage, name, stateOpt])
useEffect(() => {
setTypeOpt("")
setName("")
setStateOpt(1)
}, [showFilter])
......@@ -470,7 +462,7 @@ const GameficationAchieves = () => {
name: "Novo",
isLoading: false,
func: () => {
history.push("/admin/createItem")
history.push("/admin/createAchievements")
},
icon: <AddRoundedIcon />,
},
......@@ -507,22 +499,12 @@ const GameficationAchieves = () => {
</Grid>
<Grid item>
<TextField
select
label="Tipo"
value={typeOpt}
onChange={(e) => { setTypeOpt(e.target.value) }}
helperText="Por favor, selecione uma das opções"
>
{typesOptions.map((option, index) => (
<MenuItem
key={option.value}
value={option.name}
name={option.value}
>
{option.value}
</MenuItem>
))}
</TextField>
label="Nome"
value={valueNameField}
onChange={(e) => { setValueNameField(e.target.value) }}
onBlur={(e) => { setName(e.target.value) }}
helperText="Por favor, ao digitar o nome que você quer filtar, retire o foco do campo de texto"
/>
</Grid>
</Grid>
) : null}
......@@ -659,7 +641,7 @@ const GameficationAchieves = () => {
name: "Novo",
isLoading: false,
func: () => {
history.push("/admin/createItem")
history.push("/admin/createAchievements")
},
icon: <AddRoundedIcon />,
},
......@@ -696,22 +678,12 @@ const GameficationAchieves = () => {
</Grid>
<Grid item>
<TextField
select
label="Tipo"
value={typeOpt}
onChange={(e) => { setTypeOpt(e.target.value) }}
helperText="Por favor, selecione uma das opções"
>
{typesOptions.map((option, index) => (
<MenuItem
key={option.value}
value={option.name}
name={option.value}
>
{option.value}
</MenuItem>
))}
</TextField>
label="Nome"
value={valueNameField}
onChange={(e) => { setValueNameField(e.target.value) }}
onBlur={(e) => { setName(e.target.value) }}
helperText="Por favor, ao digitar o nome que você quer filtar, retire o foco do campo de texto"
/>
</Grid>
</Grid>
) : null}
......@@ -751,9 +723,6 @@ const GameficationAchieves = () => {
</StyledTableCell>
<StyledTableCell align="right">{row.id}</StyledTableCell>
<StyledTableCell align="right">{row.name}</StyledTableCell>
<StyledTableCell align="right">
{row.item_type}
</StyledTableCell>
<StyledTableCell align="right">
{DisplayDate(row.created_at)}
</StyledTableCell>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment