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}&nbsp;
    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  };