Skip to content

Commit 6ff9d2b

Browse files
committed
fix: we need to refresh the custom scripts list page to see the added/edited entries #137
1 parent 2b29df1 commit 6ff9d2b

File tree

3 files changed

+72
-16
lines changed

3 files changed

+72
-16
lines changed

admin-ui/plugins/admin/components/CustomScripts/CustomScriptAddPage.js

+19-3
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,39 @@
1-
import React from 'react'
1+
import React, { useEffect } from 'react'
22
import { connect } from 'react-redux'
33
import { useHistory } from 'react-router-dom'
44
import { Container, CardBody, Card } from '../../../../app/components'
55
import CustomScriptForm from './CustomScriptForm'
66
import { addCustomScript } from '../../redux/actions/CustomScriptActions'
77
import { buildPayload } from '../../../../app/utils/PermChecker'
8+
import GluuAlert from '../../../../app/routes/Apps/Gluu/GluuAlert'
9+
import { useTranslation } from 'react-i18next'
810

9-
function CustomScriptAddPage({ scripts, dispatch }) {
11+
function CustomScriptAddPage({ scripts, dispatch, saveOperationFlag, errorInSaveOperationFlag }) {
1012
const userAction = {}
1113
const history = useHistory()
14+
const { t } = useTranslation()
15+
16+
useEffect(() => {
17+
if (saveOperationFlag && !errorInSaveOperationFlag)
18+
history.push('/adm/scripts')
19+
}, [saveOperationFlag])
20+
21+
1222
function handleSubmit(data) {
1323
if (data) {
1424
let message = data.customScript.action_message
1525
delete data.customScript.action_message
1626
buildPayload(userAction, message, data)
1727
dispatch(addCustomScript(userAction))
18-
history.push('/adm/scripts')
1928
}
2029
}
2130
return (
2231
<React.Fragment>
32+
<GluuAlert
33+
severity={t('titles.error')}
34+
message={t('messages.error_in_saving')}
35+
show={errorInSaveOperationFlag}
36+
/>
2337
<Container>
2438
<Card className="mb-3">
2539
<CardBody>
@@ -39,6 +53,8 @@ const mapStateToProps = (state) => {
3953
scripts: state.customScriptReducer.items,
4054
loading: state.customScriptReducer.loading,
4155
permissions: state.authReducer.permissions,
56+
saveOperationFlag: state.customScriptReducer.saveOperationFlag,
57+
errorInSaveOperationFlag: state.customScriptReducer.errorInSaveOperationFlag,
4258
}
4359
}
4460
export default connect(mapStateToProps)(CustomScriptAddPage)

admin-ui/plugins/admin/components/CustomScripts/CustomScriptEditPage.js

+18-3
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,39 @@
1-
import React from 'react'
1+
import React, { useEffect } from 'react'
22
import { connect } from 'react-redux'
33
import { useHistory } from 'react-router-dom'
44
import { CardBody, Card } from '../../../../app/components'
55
import GluuLoader from '../../../../app/routes/Apps/Gluu/GluuLoader'
66
import CustomScriptForm from './CustomScriptForm'
77
import { editCustomScript } from '../../redux/actions/CustomScriptActions'
88
import { buildPayload } from '../../../../app/utils/PermChecker'
9+
import GluuAlert from '../../../../app/routes/Apps/Gluu/GluuAlert'
10+
import { useTranslation } from 'react-i18next'
911

10-
function CustomScriptEditPage({ item, scripts, loading, dispatch }) {
12+
function CustomScriptEditPage({ item, scripts, loading, dispatch, saveOperationFlag, errorInSaveOperationFlag }) {
1113
const userAction = {}
1214
const history = useHistory()
15+
const { t } = useTranslation()
16+
17+
useEffect(() => {
18+
if (saveOperationFlag && !errorInSaveOperationFlag)
19+
history.push('/adm/scripts')
20+
}, [saveOperationFlag])
21+
1322
function handleSubmit(data) {
1423
if (data) {
1524
let message = data.customScript.action_message
1625
delete data.customScript.action_message
1726
buildPayload(userAction, message, data)
1827
dispatch(editCustomScript(userAction))
19-
history.push('/adm/scripts')
2028
}
2129
}
2230
return (
2331
<GluuLoader blocking={loading}>
32+
<GluuAlert
33+
severity={t('titles.error')}
34+
message={t('messages.error_in_saving')}
35+
show={errorInSaveOperationFlag}
36+
/>
2437
<Card className="mb-3">
2538
<CardBody>
2639
<CustomScriptForm
@@ -39,6 +52,8 @@ const mapStateToProps = (state) => {
3952
scripts: state.customScriptReducer.items,
4053
loading: state.customScriptReducer.loading,
4154
permissions: state.authReducer.permissions,
55+
saveOperationFlag: state.customScriptReducer.saveOperationFlag,
56+
errorInSaveOperationFlag: state.customScriptReducer.errorInSaveOperationFlag,
4257
}
4358
}
4459
export default connect(mapStateToProps)(CustomScriptEditPage)

admin-ui/plugins/admin/redux/reducers/CustomScriptReducer.js

+35-10
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,16 @@ import reducerRegistry from '../../../../app/redux/reducers/ReducerRegistry'
1616
const INIT_STATE = {
1717
items: [],
1818
loading: true,
19+
saveOperationFlag: false,
20+
errorInSaveOperationFlag: false,
1921
}
2022

2123
const reducerName = 'customScriptReducer'
2224

2325
export default function customScriptReducer(state = INIT_STATE, action) {
2426
switch (action.type) {
2527
case GET_CUSTOM_SCRIPT:
26-
return {
27-
...state,
28-
loading: true,
29-
}
28+
return handleLoading()
3029
case GET_CUSTOM_SCRIPT_RESPONSE:
3130
if (action.payload.data) {
3231
return {
@@ -38,10 +37,7 @@ export default function customScriptReducer(state = INIT_STATE, action) {
3837
return handleDefault()
3938
}
4039
case GET_CUSTOM_SCRIPT_BY_TYPE:
41-
return {
42-
...state,
43-
loading: true,
44-
}
40+
return handleLoading()
4541
case GET_CUSTOM_SCRIPT_BY_TYPE_RESPONSE:
4642
if (action.payload.data) {
4743
return {
@@ -56,32 +52,50 @@ export default function customScriptReducer(state = INIT_STATE, action) {
5652
return {
5753
...state,
5854
loading: true,
55+
saveOperationFlag: false,
56+
errorInSaveOperationFlag: false,
5957
}
6058
case ADD_CUSTOM_SCRIPT_RESPONSE:
6159
if (action.payload.data) {
6260
return {
6361
...state,
6462
items: [...state.items, action.payload.data],
6563
loading: false,
64+
saveOperationFlag: true,
65+
errorInSaveOperationFlag: false,
6666
}
6767
} else {
68-
return handleDefault()
68+
return {
69+
...state,
70+
loading: false,
71+
saveOperationFlag: true,
72+
errorInSaveOperationFlag: true,
73+
}
6974
}
7075

7176
case EDIT_CUSTOM_SCRIPT:
7277
return {
7378
...state,
7479
loading: true,
80+
saveOperationFlag: false,
81+
errorInSaveOperationFlag: false,
7582
}
7683
case EDIT_CUSTOM_SCRIPT_RESPONSE:
7784
if (action.payload.data) {
7885
return {
7986
...state,
8087
items: [...state.items],
8188
loading: false,
89+
saveOperationFlag: true,
90+
errorInSaveOperationFlag: false,
8291
}
8392
} else {
84-
return handleDefault()
93+
return {
94+
...state,
95+
loading: false,
96+
saveOperationFlag: true,
97+
errorInSaveOperationFlag: true,
98+
}
8599
}
86100

87101
case DELETE_CUSTOM_SCRIPT:
@@ -121,6 +135,17 @@ export default function customScriptReducer(state = INIT_STATE, action) {
121135
return {
122136
...state,
123137
loading: false,
138+
saveOperationFlag: false,
139+
errorInSaveOperationFlag: false,
140+
}
141+
}
142+
143+
function handleLoading() {
144+
return {
145+
...state,
146+
loading: true,
147+
saveOperationFlag: false,
148+
errorInSaveOperationFlag: false,
124149
}
125150
}
126151
}

0 commit comments

Comments
 (0)