github.com/argoproj/argo-cd/v3@v3.2.1/ui/src/app/applications/components/application-deployment-history/revision-metadata-rows.tsx (about) 1 import {DataLoader} from 'argo-ui'; 2 import * as React from 'react'; 3 import {Timestamp} from '../../../shared/components'; 4 import {ApplicationSource, RevisionMetadata, ChartDetails, OCIMetadata} from '../../../shared/models'; 5 import {services} from '../../../shared/services'; 6 7 export const RevisionMetadataRows = (props: {applicationName: string; applicationNamespace: string; source: ApplicationSource; index: number; versionId: number | null}) => { 8 if (props?.source?.repoURL?.startsWith('oci://')) { 9 return ( 10 <DataLoader 11 input={props} 12 load={input => services.applications.ociMetadata(input.applicationName, input.applicationNamespace, input.source.targetRevision, input.index, input.versionId)}> 13 {(m: OCIMetadata) => ( 14 <div> 15 {m.description && ( 16 <div className='row'> 17 <div className='columns small-3'>Description:</div> 18 <div className='columns small-9'>{m.description}</div> 19 </div> 20 )} 21 {m.authors && m.authors.length > 0 && ( 22 <div className='row'> 23 <div className='columns small-3'>Maintainers:</div> 24 <div className='columns small-9'>{m.authors}</div> 25 </div> 26 )} 27 </div> 28 )} 29 </DataLoader> 30 ); 31 } 32 if (props?.source?.chart) { 33 return ( 34 <DataLoader 35 input={props} 36 load={input => 37 services.applications.revisionChartDetails(input.applicationName, input.applicationNamespace, input.source.targetRevision, input.index, input.versionId) 38 }> 39 {(m: ChartDetails) => ( 40 <div> 41 <div className='row'> 42 <div className='columns small-3'>Helm Chart:</div> 43 <div className='columns small-9'> 44 {props.source.chart} 45 {m.home && ( 46 <a 47 title={m.home} 48 onClick={e => { 49 e.stopPropagation(); 50 window.open(m.home); 51 }}> 52 <i className='fa fa-external-link-alt' /> 53 </a> 54 )} 55 </div> 56 </div> 57 {m.description && ( 58 <div className='row'> 59 <div className='columns small-3'>Description:</div> 60 <div className='columns small-9'>{m.description}</div> 61 </div> 62 )} 63 {m.maintainers && m.maintainers.length > 0 && ( 64 <div className='row'> 65 <div className='columns small-3'>Maintainers:</div> 66 <div className='columns small-9'>{m.maintainers.join(', ')}</div> 67 </div> 68 )} 69 </div> 70 )} 71 </DataLoader> 72 ); 73 } 74 return ( 75 <DataLoader 76 input={props} 77 load={input => services.applications.revisionMetadata(input.applicationName, input.applicationNamespace, input.source.targetRevision, input.index, input.versionId)}> 78 {(m: RevisionMetadata) => ( 79 <div> 80 <div className='row'> 81 <div className='columns small-3'>Authored by</div> 82 <div className='columns small-9'> 83 {m.author || 'unknown'} 84 <br /> 85 {m.date && <Timestamp date={m.date} />} 86 </div> 87 </div> 88 {m.message && ( 89 <div className='row'> 90 <div className='columns small-3' /> 91 <div className='columns small-9'>{m.message?.split('\n')[0].slice(0, 64)}</div> 92 </div> 93 )} 94 <div className='row'> 95 <div className='columns small-3'>GPG signature</div> 96 <div className='columns small-9'>{m.signatureInfo || '-'}</div> 97 </div> 98 </div> 99 )} 100 </DataLoader> 101 ); 102 };