Просмотр исходного кода

Merge pull request #2090 from porter-dev/nico/por-474-fix-source-settings-behavior

[POR-474] Fix source settings behavio
Nicolas Frati 4 лет назад
Родитель
Сommit
a7d1257cf5

+ 1 - 1
dashboard/src/components/image-selector/ImageList.tsx

@@ -172,7 +172,7 @@ export default class ImageList extends Component<PropsType, StateType> {
           <Loading />
         </LoadingWrapper>
       );
-    } else if (error || !images) {
+    } else if (error || !Array.isArray(images)) {
       return <LoadingWrapper>Error loading repos</LoadingWrapper>;
     } else if (images.length === 0) {
       return <LoadingWrapper>No registries found.</LoadingWrapper>;

+ 0 - 1
dashboard/src/components/image-selector/ImageSelector.tsx

@@ -95,7 +95,6 @@ export default class ImageSelector extends Component<PropsType, StateType> {
         <img src={icon} />
         <Input
           disabled={this.props.disableImageSelect}
-          autoFocus={true}
           onClick={(e: any) => e.stopPropagation()}
           value={selectedImageUrl}
           onChange={(e: any) => {

+ 9 - 5
dashboard/src/components/image-selector/TagList.tsx

@@ -56,18 +56,22 @@ export default class TagList extends Component<PropsType, StateType> {
         }
       )
       .then((res) => {
+        let tags: any[] = res.data;
         // Sort if timestamp is available
         if (res.data.length > 0 && res.data[0].pushed_at) {
-          res.data.sort((a: any, b: any) => {
+          tags = tags.sort((a: any, b: any) => {
             let d1 = new Date(a.pushed_at);
             let d2 = new Date(b.pushed_at);
             return d2.getTime() - d1.getTime();
           });
         }
-        let tags = res.data.map((tag: any, i: number) => {
-          return tag.tag;
-        });
-        this.setState({ tags, loading: false });
+
+        const latestImageIndex = tags.findIndex((tag) => tag.tag === "latest");
+        if (latestImageIndex > -1) {
+          const [latestImage] = tags.splice(latestImageIndex, 1);
+          tags.unshift(latestImage);
+        }
+        this.setState({ tags: tags.map((tag) => tag.tag), loading: false });
       })
       .catch((err) => {
         console.log(err);

+ 28 - 37
dashboard/src/main/home/cluster-dashboard/expanded-chart/SettingsSection.tsx

@@ -217,35 +217,33 @@ const SettingsSection: React.FC<PropsType> = ({
 
     return (
       <>
-        {!isDeployedFromGithub(currentChart) ? (
-          <>
-            <Heading>Source Settings</Heading>
-            <Helper>Specify an image tag to use.</Helper>
-            <ImageSelector
-              selectedTag={selectedTag}
-              selectedImageUrl={selectedImageUrl}
-              setSelectedImageUrl={(x: string) => setSelectedImageUrl(x)}
-              setSelectedTag={(x: string) => setSelectedTag(x)}
-              forceExpanded={true}
-              disableImageSelect={true}
-            />
-            {!loadingWebhookToken && (
-              <>
-                <Br />
-                <Br />
-                <Br />
-                <SaveButton
-                  clearPosition={true}
-                  statusPosition="right"
-                  text="Save Source Settings"
-                  status={saveValuesStatus}
-                  onClick={handleSubmit}
-                />
-              </>
-            )}
-            <Br />
-          </>
-        ) : null}
+        <>
+          <Heading>Source Settings</Heading>
+          <Helper>Specify an image tag to use.</Helper>
+          <ImageSelector
+            selectedTag={selectedTag}
+            selectedImageUrl={selectedImageUrl}
+            setSelectedImageUrl={(x: string) => setSelectedImageUrl(x)}
+            setSelectedTag={(x: string) => setSelectedTag(x)}
+            forceExpanded={true}
+            disableImageSelect={isDeployedFromGithub(currentChart)}
+          />
+          {!loadingWebhookToken && (
+            <>
+              <Br />
+              <Br />
+              <Br />
+              <SaveButton
+                clearPosition={true}
+                statusPosition="right"
+                text="Save Source Settings"
+                status={saveValuesStatus}
+                onClick={handleSubmit}
+              />
+            </>
+          )}
+          <Br />
+        </>
 
         <>
           <Heading>Redeploy Webhook</Heading>
@@ -287,15 +285,8 @@ const SettingsSection: React.FC<PropsType> = ({
     );
   };
 
-  const chartWasDeployedWithGithub = () => {
-    if (currentChart.git_action_config) {
-      return true;
-    }
-    return false;
-  };
-
   const canBeCloned = () => {
-    if (chartWasDeployedWithGithub()) {
+    if (isDeployedFromGithub(currentChart)) {
       return false;
     }
 

+ 4 - 0
internal/registry/registry.go

@@ -690,6 +690,10 @@ func (r *Registry) listECRImages(repoName string, repo repository.Repository) ([
 		return nil, err
 	}
 
+	if len(resp.ImageIds) == 0 {
+		return []*ptypes.Image{}, nil
+	}
+
 	describeResp, err := svc.DescribeImages(&ecr.DescribeImagesInput{
 		RepositoryName: &repoName,
 		ImageIds:       resp.ImageIds,