Sfoglia il codice sorgente

Implement messages and resons for success creation/deletion

jnfrati 3 anni fa
parent
commit
21d35f065e

+ 9 - 0
api/server/handlers/stack/add_application.go

@@ -175,6 +175,15 @@ func (p *StackAddApplicationHandler) ServeHTTP(w http.ResponseWriter, r *http.Re
 
 		_, err = p.Repo().Stack().UpdateStackRevision(revision)
 
+		if err != nil {
+			p.HandleAPIError(w, r, apierrors.NewErrInternal(err))
+			return
+		}
+	} else {
+		revision.Reason = "AddAppSuccess"
+		revision.Message = "New application " + req.Name + " added successfully."
+
+		_, err = p.Repo().Stack().UpdateStackRevision(revision)
 		if err != nil {
 			p.HandleAPIError(w, r, apierrors.NewErrInternal(err))
 			return

+ 2 - 0
api/server/handlers/stack/add_env_group.go

@@ -139,6 +139,8 @@ func (p *StackAddEnvGroupHandler) ServeHTTP(w http.ResponseWriter, r *http.Reque
 		revision.Message = strings.Join(envGroupDeployErrors, " , ")
 	} else {
 		revision.Status = string(types.StackRevisionStatusDeployed)
+		revision.Reason = "AddEnvGroupSuccess"
+		revision.Message = "Env Group " + req.Name + " added successfully."
 	}
 
 	_, err = p.Repo().Stack().UpdateStackRevision(revision)

+ 10 - 0
api/server/handlers/stack/create.go

@@ -217,6 +217,16 @@ func (p *StackCreateHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 
 			revision, err = p.Repo().Stack().UpdateStackRevision(revision)
 
+			if err != nil {
+				p.HandleAPIError(w, r, apierrors.NewErrInternal(err))
+				return
+			}
+		} else {
+			revision.Reason = "CreationSuccess"
+			revision.Message = "Stack deployed successfully"
+
+			revision, err = p.Repo().Stack().UpdateStackRevision(revision)
+
 			if err != nil {
 				p.HandleAPIError(w, r, apierrors.NewErrInternal(err))
 				return

+ 2 - 0
api/server/handlers/stack/remove_application.go

@@ -115,6 +115,8 @@ func (p *StackRemoveApplicationHandler) ServeHTTP(w http.ResponseWriter, r *http
 
 	if err == nil {
 		revision.Status = string(types.StackRevisionStatusDeployed)
+		revision.Reason = "RemoveAppSuccess"
+		revision.Message = "Application " + appResourceName + " removed successfully"
 	} else {
 		revision.Status = string(types.StackRevisionStatusFailed)
 		revision.Reason = "RemoveAppError"

+ 2 - 0
api/server/handlers/stack/remove_env_group.go

@@ -115,6 +115,8 @@ func (p *StackRemoveEnvGroupHandler) ServeHTTP(w http.ResponseWriter, r *http.Re
 
 	if err == nil {
 		revision.Status = string(types.StackRevisionStatusDeployed)
+		revision.Reason = "RemoveEnvGroupSuccess"
+		revision.Message = "EnvGroup " + envGroupName + " removed successfully"
 	} else {
 		revision.Status = string(types.StackRevisionStatusFailed)
 		revision.Reason = "RemoveEnvGroupError"

+ 21 - 18
dashboard/src/main/home/cluster-dashboard/stacks/ExpandedStack/NewAppResource/_TemplateSelector.tsx

@@ -119,29 +119,32 @@ const TemplateSelector = () => {
       <Card.Grid>
         {templates.map((template) => {
           return (
-            <Card.Wrapper key={template.name}>
+            <Card.Wrapper
+              key={template.name}
+              as={DynamicLink}
+              to={`settings/${template.name}/${selectedVersion[template.name]}`}
+            >
               <Card.Title>
                 New {template.name} with version:
-                <VersionSelector
-                  value={selectedVersion[template.name]}
-                  options={template.versions}
-                  onChange={(newVersion) => {
-                    setSelectedVersion((prev) => ({
-                      ...prev,
-                      [template.name]: newVersion,
-                    }));
+                <div
+                  onClickCapture={(e) => {
+                    e.preventDefault();
                   }}
-                />
+                >
+                  <VersionSelector
+                    value={selectedVersion[template.name]}
+                    options={template.versions}
+                    onChange={(newVersion) => {
+                      setSelectedVersion((prev) => ({
+                        ...prev,
+                        [template.name]: newVersion,
+                      }));
+                    }}
+                  />
+                </div>
               </Card.Title>
               <Card.Actions>
-                <Card.ActionButton
-                  as={DynamicLink}
-                  to={`settings/${template.name}/${
-                    selectedVersion[template.name]
-                  }`}
-                >
-                  <i className="material-icons-outlined">arrow_forward</i>
-                </Card.ActionButton>
+                <i className="material-icons-outlined">arrow_forward</i>
               </Card.Actions>
             </Card.Wrapper>
           );

+ 0 - 7
dashboard/src/main/home/cluster-dashboard/stacks/ExpandedStack/components/NewAppResource.tsx

@@ -1,7 +0,0 @@
-import React from "react";
-
-const NewAppResource = () => {
-  return <div>NewAppResource</div>;
-};
-
-export default NewAppResource;

+ 15 - 8
dashboard/src/main/home/cluster-dashboard/stacks/types.ts

@@ -55,19 +55,26 @@ export type FullStackRevision = StackRevision & {
   env_groups: EnvGroup[];
 };
 
+type StackRevisionReason =
+  | "DeployError"
+  | "SaveError"
+  | "RollbackError"
+  | "EnvGroupUpgrade"
+  | "ApplicationUpgrade"
+  | "SourceConfigUpgrade"
+  | "Rollback"
+  | "CreationSuccess"
+  | "AddEnvGroupSuccess"
+  | "AddAppSuccess"
+  | "RemoveEnvGroupSuccess"
+  | "RemoveAppSuccess";
+
 export type StackRevision = {
   id: number;
   created_at: string;
   status: "deploying" | "deployed" | "failed"; // type with enum
   stack_id: string;
-  reason:
-    | "DeployError"
-    | "SaveError"
-    | "RollbackError"
-    | "EnvGroupUpgrade"
-    | "ApplicationUpgrade"
-    | "SourceConfigUpgrade"
-    | "Rollback";
+  reason: StackRevisionReason;
   message: string;
 };