Skip to content

Commit 985cc77

Browse files
change routes for functions
1 parent acd104f commit 985cc77

File tree

7 files changed

+84
-87
lines changed

7 files changed

+84
-87
lines changed

src/App.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ import {
5151
JOBS_MONITORING_PAGE,
5252
JOBS_MONITORING_JOBS_TAB,
5353
JOBS_MONITORING_WORKFLOWS_TAB,
54-
JOBS_MONITORING_SCHEDULED_TAB
54+
JOBS_MONITORING_SCHEDULED_TAB,
55+
ALL_VERSIONS_PATH
5556
} from './constants'
5657

5758
import 'reactflow/dist/style.css'
@@ -206,12 +207,12 @@ const App = () => {
206207
</Route>
207208
{[
208209
'projects/:projectName/functions',
209-
'projects/:projectName/functions/:funcName',
210-
'projects/:projectName/functions/:hash/:tab',
211-
'projects/:projectName/functions/:funcName/:hash/:tab'
210+
'projects/:projectName/functions/:funcName/:id/:tab',
211+
`projects/:projectName/functions/:funcName/${ALL_VERSIONS_PATH}`,
212+
`projects/:projectName/functions/:funcName/${ALL_VERSIONS_PATH}/:id/:tab`
212213
].map((path, index) => (
213214
<Fragment key={index}>
214-
<Route path={path} element={<Functions />} />
215+
<Route path={path} element={<Functions isAllVersions={[2,3].includes(index)} />} />
215216
</Fragment>
216217
))}
217218
<Route

src/components/FunctionsPage/Functions.js

Lines changed: 40 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ import {
3434
DATES_FILTER,
3535
NAME_FILTER,
3636
SHOW_UNTAGGED_FILTER,
37-
GROUP_BY_NONE
37+
GROUP_BY_NONE,
38+
ALL_VERSIONS_PATH
3839
} from '../../constants'
3940
import {
4041
checkForSelectedFunction,
@@ -76,6 +77,7 @@ const Functions = ({
7677
fetchFunction,
7778
fetchFunctions,
7879
functionsStore,
80+
isAllVersions = false,
7981
removeFunctionsError,
8082
removeNewFunction
8183
}) => {
@@ -104,22 +106,22 @@ const Functions = ({
104106

105107
const functionsFiltersConfig = useMemo(() => {
106108
return {
107-
[NAME_FILTER]: { label: 'Name:', initialValue: '', hidden: !isEmpty(params.funcName) },
109+
[NAME_FILTER]: { label: 'Name:', initialValue: '', hidden: isAllVersions },
108110
[DATES_FILTER]: {
109111
label: 'Updated:',
110112
initialValue: getDatePickerFilterValue(
111113
datePickerPastOptions,
112-
params.funcName ? ANY_TIME_DATE_OPTION : PAST_WEEK_DATE_OPTION
114+
isAllVersions ? ANY_TIME_DATE_OPTION : PAST_WEEK_DATE_OPTION
113115
)
114116
},
115117
[SHOW_UNTAGGED_FILTER]: {
116118
label: 'Show untagged:',
117119
initialValue: true,
118120
isModal: true,
119-
hidden: isEmpty(params.funcName)
121+
hidden: !isAllVersions
120122
}
121123
}
122-
}, [params.funcName])
124+
}, [isAllVersions])
123125

124126
const functionsFilters = useFiltersFromSearchParams(functionsFiltersConfig)
125127

@@ -137,7 +139,7 @@ const Functions = ({
137139
tag: TAG_LATEST
138140
}
139141

140-
if (params.funcName) {
142+
if (isAllVersions) {
141143
delete requestParams.tag
142144
requestParams.name = params.funcName
143145
setFunctionVersions([])
@@ -175,7 +177,7 @@ const Functions = ({
175177
)
176178
}
177179

178-
if (params.funcName) {
180+
if (isAllVersions) {
179181
setFunctionVersions(newFunctions)
180182
} else {
181183
setFunctions(newFunctions)
@@ -184,7 +186,7 @@ const Functions = ({
184186
return newFunctions
185187
} else {
186188
const paramsFunction = searchFunctionItem(
187-
params.hash,
189+
params.id,
188190
params.projectName,
189191
params.funcName,
190192
[],
@@ -194,14 +196,14 @@ const Functions = ({
194196

195197
if (!paramsFunction) {
196198
navigate(
197-
`/projects/${params.projectName}/functions${params.funcName ? getSavedSearchParams(window.location.search) : window.location.search}`,
199+
`/projects/${params.projectName}/functions${isAllVersions ? getSavedSearchParams(window.location.search) : window.location.search}`,
198200
{
199201
replace: true
200202
}
201203
)
202204
}
203205

204-
if (params.funcName) {
206+
if (isAllVersions) {
205207
setFunctionVersions([])
206208
} else {
207209
setFunctions([])
@@ -212,9 +214,10 @@ const Functions = ({
212214
[
213215
dispatch,
214216
fetchFunctions,
217+
isAllVersions,
215218
navigate,
216219
params.funcName,
217-
params.hash,
220+
params.id,
218221
params.projectName,
219222
terminateDeleteTasksPolling
220223
]
@@ -232,10 +235,10 @@ const Functions = ({
232235

233236
const tableContent = useMemo(
234237
() =>
235-
(params.funcName ? functionVersions : functions).map(contentItem =>
236-
createFunctionsRowData(contentItem, params.projectName, Boolean(params.funcName))
238+
(isAllVersions ? functionVersions : functions).map(contentItem =>
239+
createFunctionsRowData(contentItem, params.projectName, Boolean(isAllVersions))
237240
),
238-
[functionVersions, functions, params.funcName, params.projectName]
241+
[functionVersions, functions, isAllVersions, params.projectName]
239242
)
240243

241244
const removeFunction = useCallback(
@@ -271,12 +274,9 @@ const Functions = ({
271274

272275
if (!isEmpty(selectedFunction)) {
273276
setSelectedFunctionMin({})
274-
navigate(
275-
`/projects/${params.projectName}/functions${params.funcName ? getSavedSearchParams(window.location.search) : window.location.search}`,
276-
{
277-
replace: true
278-
}
279-
)
277+
navigate(`/projects/${params.projectName}/functions${window.location.search}`, {
278+
replace: true
279+
})
280280
}
281281
}
282282
})
@@ -289,7 +289,6 @@ const Functions = ({
289289
fetchData,
290290
functionsFilters,
291291
navigate,
292-
params.funcName,
293292
params.projectName,
294293
selectedFunction
295294
]
@@ -422,7 +421,7 @@ const Functions = ({
422421
const showAllVersions = useCallback(
423422
funcName => {
424423
navigate(
425-
`/projects/${params.projectName}/functions/${funcName}?${transformSearchParams(window.location.search)}`
424+
`/projects/${params.projectName}/functions/${funcName}/${ALL_VERSIONS_PATH}?${transformSearchParams(window.location.search)}`
426425
)
427426
},
428427
[navigate, params.projectName]
@@ -438,17 +437,9 @@ const Functions = ({
438437
navigate,
439438
fetchData,
440439
filtersStore,
441-
params.funcName ? null : () => showAllVersions(selectedFunction.name)
440+
isAllVersions ? null : () => showAllVersions(selectedFunction.name)
442441
),
443-
[
444-
dispatch,
445-
fetchData,
446-
filtersStore,
447-
navigate,
448-
params.funcName,
449-
selectedFunction,
450-
showAllVersions
451-
]
442+
[dispatch, fetchData, filtersStore, navigate, isAllVersions, selectedFunction, showAllVersions]
452443
)
453444

454445
const actionsMenu = useMemo(
@@ -468,7 +459,7 @@ const Functions = ({
468459
selectedFunction,
469460
fetchFunction,
470461
false,
471-
params.funcName,
462+
isAllVersions,
472463
showAllVersions
473464
),
474465
[
@@ -481,7 +472,7 @@ const Functions = ({
481472
deletingFunctions,
482473
selectedFunction,
483474
fetchFunction,
484-
params.funcName,
475+
isAllVersions,
485476
showAllVersions
486477
]
487478
)
@@ -500,7 +491,7 @@ const Functions = ({
500491
useInitialTableFetch({
501492
fetchData,
502493
filters: functionsFilters,
503-
requestTrigger: params.funcName
494+
requestTrigger: isAllVersions
504495
})
505496

506497
useEffect(() => {
@@ -512,32 +503,34 @@ const Functions = ({
512503
setFunctionVersions([])
513504
abortController.abort(REQUEST_CANCELED)
514505
}
515-
}, [params.projectName, params.funcName])
506+
}, [params.projectName, isAllVersions])
516507

517508
useEffect(() => {
518-
if (params.hash && pageData.details.menu.length > 0) {
509+
if (params.id && pageData.details.menu.length > 0) {
519510
isDetailsTabExists(params.tab, pageData.details.menu, navigate, location)
520511
}
521-
}, [navigate, pageData.details.menu, location, params.hash, params.tab])
512+
}, [navigate, pageData.details.menu, location, params.id, params.tab])
522513

523514
useEffect(() => {
524515
checkForSelectedFunction(
525-
params.funcName ? functionVersions : functions,
526-
params.hash,
516+
isAllVersions ? functionVersions : functions,
517+
params.id,
527518
params.funcName,
528519
navigate,
529520
params.projectName,
530521
setSelectedFunctionMin,
531-
dispatch
522+
dispatch,
523+
isAllVersions
532524
)
533525
}, [
534526
dispatch,
535527
functions,
536528
navigate,
537-
params.hash,
538529
params.projectName,
539-
params.funcName,
540-
functionVersions
530+
params.id,
531+
functionVersions,
532+
isAllVersions,
533+
params.funcName
541534
])
542535

543536
useEffect(() => {
@@ -601,7 +594,7 @@ const Functions = ({
601594
if (currentItem) {
602595
// todo need better logic for searching currentItem for cases when the function has no tag
603596
navigate(
604-
`/projects/${params.projectName}/functions/${params.funcName}${params.funcName ? '/' : ''}@${currentItem.hash}/${tab}${window.location.search}`
597+
`/projects/${params.projectName}/functions/${params.funcName}${isAllVersions ? `/${ALL_VERSIONS_PATH}` : ''}/@${currentItem.hash}/${tab}${window.location.search}`
605598
)
606599
}
607600
dispatch(
@@ -630,7 +623,7 @@ const Functions = ({
630623
if (currentItem) {
631624
// todo need better logic for searching currentItem for cases when the function has no tag
632625
navigate(
633-
`/projects/${params.projectName}/functions/${params.funcName}${params.funcName ? '/' : ''}@${currentItem.hash}/overview${window.location.search}`
626+
`/projects/${params.projectName}/functions/${params.funcName}${isAllVersions ? `/${ALL_VERSIONS_PATH}` : ''}/@${currentItem.hash}/overview${window.location.search}`
634627
)
635628
}
636629
}
@@ -702,6 +695,7 @@ const Functions = ({
702695
handleDeployFunctionFailure={handleDeployFunctionFailure}
703696
handleDeployFunctionSuccess={handleDeployFunctionSuccess}
704697
handleSelectFunction={handleSelectFunction}
698+
isAllVersions={isAllVersions}
705699
isDemoMode={isDemoMode}
706700
pageData={pageData}
707701
requestErrorMessage={requestErrorMessage}

src/components/FunctionsPage/FunctionsView.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ import {
3636
FUNCTIONS_PAGE,
3737
FUNCTIONS_PAGE_PATH,
3838
PANEL_CREATE_MODE,
39-
PANEL_EDIT_MODE
39+
PANEL_EDIT_MODE,
40+
ALL_VERSIONS_PATH
4041
} from '../../constants'
4142
import { SECONDARY_BUTTON } from 'igz-controls/constants'
4243
import { FILTERS_CONFIG, VIRTUALIZATION_CONFIG } from '../../types'
@@ -62,6 +63,7 @@ const FunctionsView = ({
6263
handleDeployFunctionFailure,
6364
handleDeployFunctionSuccess,
6465
handleSelectFunction,
66+
isAllVersions,
6567
isDemoMode,
6668
pageData,
6769
requestErrorMessage,
@@ -82,7 +84,7 @@ const FunctionsView = ({
8284
<div className="content">
8385
<div className="table-container">
8486
<div className="content__action-bar-wrapper">
85-
{params.funcName && (
87+
{isAllVersions && (
8688
<HistoryBackLink
8789
link={`/projects/${params.projectName}/functions${getSavedSearchParams(window.location.search)}`}
8890
itemName={params.funcName}
@@ -93,7 +95,7 @@ const FunctionsView = ({
9395
filtersConfig={functionsFiltersConfig}
9496
filters={filters}
9597
handleRefresh={filtersChangeCallback}
96-
navigateLink={`/projects/${params.projectName}/functions${params.funcName ? `/${params.funcName}` : ''}${window.location.search}`}
98+
navigateLink={`/projects/${params.projectName}/functions${isAllVersions ? `/${params.funcName}/${ALL_VERSIONS_PATH}` : ''}${window.location.search}`}
9799
setSearchParams={setSearchParams}
98100
withoutExpandButton
99101
actionButtons={[
@@ -129,7 +131,7 @@ const FunctionsView = ({
129131
<Table
130132
actionsMenu={actionsMenu}
131133
getCloseDetailsLink={() =>
132-
getCloseDetailsLink(params.funcName || FUNCTIONS_PAGE_PATH)
134+
getCloseDetailsLink(isAllVersions ? ALL_VERSIONS_PATH : FUNCTIONS_PAGE_PATH)
133135
}
134136
handleCancel={handleCancel}
135137
pageData={pageData}
@@ -145,7 +147,7 @@ const FunctionsView = ({
145147
<FunctionsTableRow
146148
actionsMenu={actionsMenu}
147149
handleSelectItem={handleSelectFunction}
148-
key={tableItem.data.hash}
150+
key={tableItem.data.hash + index}
149151
rowItem={tableItem}
150152
selectedItem={selectedFunction}
151153
withQuickActions
@@ -212,6 +214,7 @@ FunctionsView.propTypes = {
212214
handleDeployFunctionFailure: PropTypes.func.isRequired,
213215
handleDeployFunctionSuccess: PropTypes.func.isRequired,
214216
handleSelectFunction: PropTypes.func.isRequired,
217+
isAllVersions: PropTypes.bool.isRequired,
215218
pageData: PropTypes.object.isRequired,
216219
requestErrorMessage: PropTypes.string.isRequired,
217220
retryRequest: PropTypes.func.isRequired,

0 commit comments

Comments
 (0)