Skip to content

Commit fc91b8a

Browse files
authored
Merge pull request #2371 from devtron-labs/chore/rc-27-dev-main-sync
chore: rc 27 dev main sync
2 parents db034cf + 15bff7d commit fc91b8a

File tree

12 files changed

+83
-38
lines changed

12 files changed

+83
-38
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"name": "dashboard",
3-
"version": "1.4.0",
3+
"version": "1.5.0",
44
"private": true,
55
"homepage": "/dashboard",
66
"dependencies": {
7-
"@devtron-labs/devtron-fe-common-lib": "1.4.9",
7+
"@devtron-labs/devtron-fe-common-lib": "1.5.1",
88
"@esbuild-plugins/node-globals-polyfill": "0.2.3",
99
"@rjsf/core": "^5.13.3",
1010
"@rjsf/utils": "^5.13.3",

src/Pages/Applications/DevtronApps/Details/AppConfigurations/MainContent/DeploymentConfigCompare/DeploymentConfigCompare.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import {
88
useAsync,
99
DeploymentConfigDiff,
1010
DeploymentConfigDiffProps,
11-
SortingOrder,
1211
AppEnvDeploymentConfigType,
1312
getDefaultVersionAndPreviousDeploymentOptions,
1413
getAppEnvDeploymentConfigList,
@@ -18,6 +17,8 @@ import {
1817
useMainContext,
1918
getCompareSecretsData,
2019
getAppEnvDeploymentConfig,
20+
DEPLOYMENT_CONFIG_DIFF_SORT_KEY,
21+
SortingOrder,
2122
} from '@devtron-labs/devtron-fe-common-lib'
2223

2324
import { getTemplateOptions, getChartReferencesForAppAndEnv } from '@Services/service'
@@ -92,8 +93,15 @@ export const DeploymentConfigCompare = ({
9293
parseSearchParams: parseCompareWithSearchParams({ type, compareTo, environments }),
9394
})
9495

95-
// Set default query parameters
9696
useEffect(() => {
97+
// Set default initial sorting
98+
if (!isManifestView) {
99+
handleSorting(DEPLOYMENT_CONFIG_DIFF_SORT_KEY)
100+
}
101+
}, [])
102+
103+
useEffect(() => {
104+
// Set default query parameters
97105
updateSearchParams({
98106
configType,
99107
compareWith,
@@ -338,12 +346,13 @@ export const DeploymentConfigCompare = ({
338346
convertVariables,
339347
compareToTemplateOptions: options[0].result,
340348
compareWithTemplateOptions: options[1].result,
349+
sortingConfig: { sortBy, sortOrder },
341350
})
342351
}
343352
}
344353

345354
return null
346-
}, [comparisonDataLoader, comparisonData, isManifestView, convertVariables, options])
355+
}, [comparisonDataLoader, comparisonData, isManifestView, convertVariables, options, sortBy, sortOrder])
347356

348357
// SELECT PICKER OPTIONS
349358
/** Compare Environment Select Picker Options */
@@ -629,7 +638,7 @@ export const DeploymentConfigCompare = ({
629638
onClick: onTabClick,
630639
}
631640

632-
const onSorting = () => handleSorting(sortOrder !== SortingOrder.DESC ? 'sort-config' : '')
641+
const onSorting = () => handleSorting(sortOrder !== SortingOrder.DESC ? DEPLOYMENT_CONFIG_DIFF_SORT_KEY : '')
633642

634643
const sortingConfig: DeploymentConfigDiffProps['sortingConfig'] = {
635644
handleSorting: onSorting,

src/components/app/details/appDetails/SecurityVulnerabilityCard.tsx

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
API_STATUS_CODES,
2121
capitalizeFirstLetter,
2222
getCompiledSecurityThreats,
23+
getSecurityScanStatus,
2324
getTotalSeverities,
2425
SecurityModal,
2526
SeveritiesDTO,
@@ -62,12 +63,10 @@ export const SecurityVulnerabilityCard = ({
6263

6364
const threatCount = getTotalSeverities(scanThreats)
6465

65-
const imageScanVulnerabilities = scanResultResponse.result.imageScan?.vulnerability
66-
const imageScanList = imageScanVulnerabilities?.list ?? []
67-
const imageScanProgressing: boolean = imageScanList.some(
68-
(image) => image.status === 'Running' || image.status === 'Progressing',
69-
)
70-
const imageScanFailed: boolean = imageScanList.every((image) => image.status === 'Failed')
66+
const scanStatus = getSecurityScanStatus(scanResultResponse.result)
67+
68+
const scanProgressing: boolean = scanStatus === 'Progressing'
69+
const scanFailed: boolean = scanStatus === 'Failed'
7170

7271
const handleOnCardClick = () => {
7372
if (!cardLoading && !scanResultLoading && !scanResultError && !showScanDetailsModal) {
@@ -77,7 +76,7 @@ export const SecurityVulnerabilityCard = ({
7776
}
7877

7978
const getIcon = () => {
80-
if (scanResultError || imageScanFailed || imageScanProgressing || threatCount) {
79+
if (scanResultError || scanStatus !== 'Completed' || threatCount) {
8180
return <Bug className="scy-7" />
8281
}
8382
return <Secure />
@@ -94,10 +93,10 @@ export const SecurityVulnerabilityCard = ({
9493
</div>
9594
)
9695
}
97-
if (imageScanProgressing) {
96+
if (scanProgressing) {
9897
return <div className="f-progressing dc__loading-dots">Scanning</div>
9998
}
100-
if (imageScanFailed) {
99+
if (scanFailed) {
101100
return <div className="dc__info-title lh-20 f-failed">Scan failed</div>
102101
}
103102
return <div className="dc__info-title lh-20 ">You&apos;re secure!</div>
@@ -113,10 +112,10 @@ export const SecurityVulnerabilityCard = ({
113112
.map(([key, value]) => `${value} ${capitalizeFirstLetter(key)}`)
114113
.join(', ')
115114
}
116-
if (imageScanProgressing) {
115+
if (scanProgressing) {
117116
return 'Security scan in progress'
118117
}
119-
if (imageScanFailed) {
118+
if (scanFailed) {
120119
return 'Security scan failed'
121120
}
122121
return 'No Vulnerabilities found'

src/components/app/details/triggerView/CIMaterialModal.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ export const CIMaterialModal = ({
7575

7676
const renderBranchCIModal = () => (
7777
<VisibleModal className="" close={closeCIModal}>
78-
(
7978
<div className="modal-body--ci-material h-100 w-100 flexbox-col" onClick={stopPropagation}>
8079
{loader ? (
8180
<>
@@ -104,7 +103,6 @@ export const CIMaterialModal = ({
104103
/>
105104
)}
106105
</div>
107-
)
108106
</VisibleModal>
109107
)
110108

src/components/app/details/triggerView/PipelineConfigDiff/PipelineConfigDiff.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
import { useLocation } from 'react-router-dom'
22

3-
import { DeploymentConfigDiff, DeploymentConfigDiffProps, SortingOrder } from '@devtron-labs/devtron-fe-common-lib'
3+
import {
4+
DEPLOYMENT_CONFIG_DIFF_SORT_KEY,
5+
DeploymentConfigDiff,
6+
DeploymentConfigDiffProps,
7+
SortingOrder,
8+
} from '@devtron-labs/devtron-fe-common-lib'
49

510
import { URLS } from '@Config/routes'
611

@@ -23,7 +28,7 @@ export const PipelineConfigDiff = ({
2328
const [resourceType, resourceName] = pathname.split(`${URLS.APP_DIFF_VIEW}/`)[1].split('/')
2429

2530
// METHODS
26-
const onSorting = () => handleSorting(sortOrder !== SortingOrder.DESC ? 'sort-config' : '')
31+
const onSorting = () => handleSorting(sortOrder !== SortingOrder.DESC ? DEPLOYMENT_CONFIG_DIFF_SORT_KEY : '')
2732

2833
// SELECTORS CONFIG
2934
const pipelineConfigDiffSelectors: DeploymentConfigDiffProps['selectorsConfig'] = {

src/components/app/details/triggerView/PipelineConfigDiff/usePipelineDeploymentConfig.ts

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
showError,
1919
getCompareSecretsData,
2020
useMainContext,
21+
DEPLOYMENT_CONFIG_DIFF_SORT_KEY,
2122
} from '@devtron-labs/devtron-fe-common-lib'
2223

2324
import { URLS } from '@Config/routes'
@@ -56,7 +57,12 @@ export const usePipelineDeploymentConfig = ({
5657
const urlFilters = useUrlFilters<string, PipelineConfigDiffQueryParamsType>({
5758
parseSearchParams: parseCompareWithSearchParams(isRollbackTriggerSelected),
5859
})
59-
const { deploy, mode, updateSearchParams, handleSorting } = urlFilters
60+
const { sortBy, sortOrder, deploy, mode, updateSearchParams, handleSorting } = urlFilters
61+
62+
useEffect(() => {
63+
// INITIAL DEFAULT SORTING
64+
handleSorting(DEPLOYMENT_CONFIG_DIFF_SORT_KEY)
65+
}, [])
6066

6167
// FETCH PREVIOUS DEPLOYMENTS
6268
const [previousDeploymentsLoader, previousDeployments, previousDeploymentsErr, reloadPreviousDeployments] =
@@ -249,11 +255,20 @@ export const usePipelineDeploymentConfig = ({
249255
},
250256
getNavItemHref,
251257
convertVariables,
258+
sortingConfig: { sortBy, sortOrder },
252259
})
253260
}
254261

255262
return null
256-
}, [pipelineDeploymentConfigLoading, pipelineDeploymentConfigRes, deploy, mode, convertVariables])
263+
}, [
264+
pipelineDeploymentConfigLoading,
265+
pipelineDeploymentConfigRes,
266+
deploy,
267+
mode,
268+
convertVariables,
269+
sortBy,
270+
sortOrder,
271+
])
257272

258273
const reload = () => {
259274
reloadPreviousDeployments()

src/components/app/details/triggerView/cdMaterial.tsx

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,11 @@ const ApprovalEmptyState = importComponentFromFELibrary('ApprovalEmptyState')
131131
const FilterActionBar = importComponentFromFELibrary('FilterActionBar')
132132
const ConfiguredFilters = importComponentFromFELibrary('ConfiguredFilters')
133133
const CDMaterialInfo = importComponentFromFELibrary('CDMaterialInfo')
134-
const downloadManifestForVirtualEnvironment = importComponentFromFELibrary('downloadManifestForVirtualEnvironment', null, 'function')
134+
const downloadManifestForVirtualEnvironment = importComponentFromFELibrary(
135+
'downloadManifestForVirtualEnvironment',
136+
null,
137+
'function',
138+
)
135139
const ImagePromotionInfoChip = importComponentFromFELibrary('ImagePromotionInfoChip', null, 'function')
136140
const getDeploymentWindowProfileMetaData = importComponentFromFELibrary(
137141
'getDeploymentWindowProfileMetaData',
@@ -627,7 +631,8 @@ const CDMaterial = ({
627631
const getIsApprovalRequester = (userApprovalMetadata?: UserApprovalMetadataType) =>
628632
userApprovalMetadata?.requestedUserData && userApprovalMetadata.requestedUserData.userId === requestedUserId
629633

630-
const getIsImageApprover = (userApprovalMetadata?: UserApprovalMetadataType): boolean => userApprovalMetadata?.hasCurrentUserApproved
634+
const getIsImageApprover = (userApprovalMetadata?: UserApprovalMetadataType): boolean =>
635+
userApprovalMetadata?.hasCurrentUserApproved
631636

632637
// NOTE: Pure
633638
const getApprovedImageClass = (disableSelection: boolean, isApprovalConfigured: boolean) => {
@@ -795,7 +800,8 @@ const CDMaterial = ({
795800
history.push({
796801
pathname:
797802
modeParamValue === 'review-config'
798-
? `${pathname}/${URLS.APP_DIFF_VIEW}/${EnvResourceType.DeploymentTemplate}`
803+
? // Replace consecutive trailing single slashes
804+
`${pathname.replace(/\/+$/g, '')}/${URLS.APP_DIFF_VIEW}/${EnvResourceType.DeploymentTemplate}`
799805
: `${pathname.split(`/${URLS.APP_DIFF_VIEW}`)[0]}`,
800806
search: newParams.toString(),
801807
})
@@ -888,11 +894,9 @@ const CDMaterial = ({
888894
wfrId,
889895
abortControllerRef: abortDeployRef,
890896
isRollbackTrigger: state.isRollbackTrigger,
891-
...(
892-
getRuntimeParamsPayload
893-
? { runtimeParamsPayload: getRuntimeParamsPayload(runtimeParamsList ?? []) }
894-
: {}
895-
),
897+
...(getRuntimeParamsPayload
898+
? { runtimeParamsPayload: getRuntimeParamsPayload(runtimeParamsList ?? []) }
899+
: {}),
896900
})
897901
.then((response: any) => {
898902
if (response.result) {

src/components/app/details/triggerView/ciMaterial.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,6 @@ class CIMaterial extends Component<CIMaterialProps, CIMaterialState> {
393393
const response = await savePipeline(payload, true)
394394
if (response) {
395395
await this.props.getWorkflows()
396-
this.context.onClickCIMaterial(this.props.pipelineId.toString(), this.props.pipelineName)
397396
}
398397
} catch (error) {
399398
showError(error)

src/components/notifications/SMTPConfigModal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ export const SMTPConfigModal = ({
117117
setForm((prevForm) => ({ ...prevForm, isLoading: true }))
118118

119119
const payload = {
120-
channel: ConfigurationsTabTypes.SES,
120+
channel: ConfigurationsTabTypes.SMTP,
121121
configs: [
122122
{
123123
configName: form.configName,

src/components/notifications/WebhookConfigurationTable.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export const WebhookConfigurationTable = ({ state, deleteClickHandler }: Configu
2424

2525
return (
2626
<div className="webhook-config-container">
27-
<div className="webhook-config-grid fs-12 fw-6 dc__uppercase cn-7 py-6 dc__gap-16 dc__border-bottom-n1 px-20">
27+
<div className="webhook-config-grid fs-12 fw-6 dc__uppercase cn-7 py-6 dc__gap-16 dc__border-bottom-n1 px-20 dc__position-sticky dc__top-0 bcn-0">
2828
<p className="icon-dim-24 m-0" />
2929
<p className="flex left m-0">Name</p>
3030
<p className="dc__truncate-text flex left m-0">Webhook URL</p>

0 commit comments

Comments
 (0)