Skip to content

Commit b564586

Browse files
Merge pull request #261 from devtron-labs/fix/approve-material
fix: approve material
2 parents 3205923 + a3a3bdd commit b564586

File tree

6 files changed

+44
-21
lines changed

6 files changed

+44
-21
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@devtron-labs/devtron-fe-common-lib",
3-
"version": "0.2.6-beta-7",
3+
"version": "0.2.6-beta-9",
44
"description": "Supporting common component library",
55
"type": "module",
66
"main": "dist/index.js",

src/Common/Common.service.ts

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ import {
3737
ImageApprovalPolicyType,
3838
ImageApprovalUsersInfoDTO,
3939
UserApprovalMetadataType,
40+
UserApprovalConfigType,
41+
CDMaterialListModalServiceUtilProps,
4042
} from './Types'
4143
import { ApiResourceType } from '../Pages'
4244
import { getIsManualApprovalSpecific, sanitizeUserApprovalConfig, stringComparatorBySortOrder } from '@Shared/Helpers'
@@ -88,30 +90,35 @@ export function setImageTags(request, pipelineId: number, artifactId: number) {
8890
return post(`${ROUTES.IMAGE_TAGGING}/${pipelineId}/${artifactId}`, request)
8991
}
9092

91-
const sanitizeApprovalConfigFromApprovalMetadata = (approvalMetadata: UserApprovalMetadataType):UserApprovalMetadataType => {
93+
const sanitizeApprovalConfigFromApprovalMetadata = (
94+
approvalMetadata: UserApprovalMetadataType,
95+
userApprovalConfig: UserApprovalConfigType,
96+
): UserApprovalMetadataType => {
9297
if (!approvalMetadata) {
9398
return null
9499
}
95100

96101
const approvedUsersData = approvalMetadata.approvedUsersData || []
102+
const unsanitizedApprovalConfig = approvalMetadata.approvalConfig || userApprovalConfig
97103

98104
return {
99105
...approvalMetadata,
100106
approvedUsersData: approvedUsersData.map((userData) => ({
101107
...userData,
102108
userGroups: userData.userGroups?.filter((group) => !!group?.identifier && !!group?.name) ?? [],
103109
})),
104-
approvalConfig: sanitizeUserApprovalConfig(approvalMetadata.approvalConfig),
110+
approvalConfig: sanitizeUserApprovalConfig(unsanitizedApprovalConfig),
105111
}
106112
}
107113

108-
const cdMaterialListModal = (
109-
artifacts: any[],
110-
offset: number,
111-
artifactId?: number,
112-
artifactStatus?: string,
113-
disableDefaultSelection?: boolean,
114-
) => {
114+
const cdMaterialListModal = ({
115+
artifacts,
116+
offset,
117+
artifactId,
118+
artifactStatus,
119+
disableDefaultSelection,
120+
userApprovalConfig,
121+
}: CDMaterialListModalServiceUtilProps) => {
115122
if (!artifacts || !artifacts.length) return []
116123

117124
const markFirstSelected = offset === 0
@@ -155,7 +162,10 @@ const cdMaterialListModal = (
155162
vulnerable: material.vulnerable,
156163
runningOnParentCd: material.runningOnParentCd,
157164
artifactStatus: artifactStatusValue,
158-
userApprovalMetadata: sanitizeApprovalConfigFromApprovalMetadata(material.userApprovalMetadata),
165+
userApprovalMetadata: sanitizeApprovalConfigFromApprovalMetadata(
166+
material.userApprovalMetadata,
167+
userApprovalConfig,
168+
),
159169
triggeredBy: material.triggeredBy,
160170
isVirtualEnvironment: material.isVirtualEnvironment,
161171
imageComment: material.imageComment,
@@ -356,13 +366,14 @@ export const processCDMaterialServiceResponse = (
356366
}
357367
}
358368

359-
const materials = cdMaterialListModal(
360-
cdMaterialsResult.ci_artifacts,
361-
offset ?? 0,
362-
cdMaterialsResult.latest_wf_artifact_id,
363-
cdMaterialsResult.latest_wf_artifact_status,
369+
const materials = cdMaterialListModal({
370+
artifacts: cdMaterialsResult.ci_artifacts,
371+
offset: offset ?? 0,
372+
artifactId: cdMaterialsResult.latest_wf_artifact_id,
373+
artifactStatus: cdMaterialsResult.latest_wf_artifact_status,
364374
disableDefaultSelection,
365-
)
375+
userApprovalConfig: cdMaterialsResult.userApprovalConfig,
376+
})
366377
const approvalInfo = processCDMaterialsApprovalInfo(
367378
stage === DeploymentNodeType.CD || stage === DeploymentNodeType.APPROVAL,
368379
cdMaterialsResult,

src/Common/Types.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,15 @@ export interface ArtifactReleaseMappingType {
448448
version: string
449449
}
450450

451+
export interface CDMaterialListModalServiceUtilProps {
452+
artifacts: any[],
453+
offset: number,
454+
artifactId?: number,
455+
artifactStatus?: string,
456+
disableDefaultSelection?: boolean,
457+
userApprovalConfig?: UserApprovalConfigType,
458+
}
459+
451460
export interface CDMaterialType {
452461
index: number
453462
id: string
@@ -669,6 +678,9 @@ export interface CDMaterialsApprovalInfo {
669678
approvalUsers: string[]
670679
userApprovalConfig: UserApprovalConfigType
671680
canApproverDeploy: boolean
681+
/**
682+
* Only available incase of approvals do'nt use in cd materials or any other flow since approvalUsers are not present there
683+
*/
672684
imageApprovalPolicyDetails: ImageApprovalPolicyType
673685
}
674686

src/Shared/Components/CICDHistory/Artifacts.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export const CIListItem = ({
7070
return (
7171
<>
7272
{type === 'deployed-artifact' && (
73-
<div className="flex dc__width-inherit">
73+
<div className="flex dc__width-inherit pb-12">
7474
<div className="w-50 text-underline-dashed-300" />
7575
<Down className="icon-dim-16 ml-8 mr-8" style={{ transform: 'rotate(90deg)' }} />
7676
<div className="w-50 text-underline-dashed-300" />

src/Shared/Components/CICDHistory/History.components.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ export const GitChanges = ({
161161
) : null
162162
})}
163163
{artifact && (
164-
<div className="history-component__artifact flex left column dc__gap-12">
164+
<div className="history-component__artifact flex left column">
165165
<CIListItem
166166
type="deployed-artifact"
167167
userApprovalMetadata={userApprovalMetadata}

0 commit comments

Comments
 (0)