Skip to content
This repository was archived by the owner on Mar 24, 2023. It is now read-only.

Commit f89c9bf

Browse files
authored
Merge pull request #453 from GraysonNull/kustomize-flow-enhancements
Helm Values step has save/save & continue buttons instead of save toast
2 parents 375500c + 2993d41 commit f89c9bf

File tree

4 files changed

+33
-58
lines changed

4 files changed

+33
-58
lines changed

web/src/components/kustomize/HelmValuesEditor.jsx

+32-55
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import * as linter from "replicated-lint";
44
import Linter from "../shared/Linter";
55
import AceEditor from "react-ace";
66
import ErrorBoundary from "../../ErrorBoundary";
7-
import Toast from "../shared/Toast";
87
import get from "lodash/get";
98
import find from "lodash/find";
109

@@ -24,10 +23,8 @@ export default class HelmValuesEditor extends React.Component {
2423
initialSpecValue: "",
2524
helmLintErrors: [],
2625
saving: false,
26+
saveFinal: false,
2727
unsavedChanges: false,
28-
toastDetails: {
29-
opts: {}
30-
}
3128
}
3229
autoBind(this);
3330
}
@@ -76,44 +73,13 @@ export default class HelmValuesEditor extends React.Component {
7673
});
7774
}
7875

79-
cancelToast() {
80-
let nextState = {};
81-
nextState.toastDetails = {
82-
showToast: false,
83-
title: "",
84-
subText: "",
85-
type: "default",
86-
opts: {}
87-
};
88-
this.setState(nextState)
89-
}
90-
9176
handleContinue() {
92-
const { actions, isNewRouter } = this.props;
77+
const { actions } = this.props;
9378
let submitAction;
94-
if (isNewRouter) {
95-
submitAction = find(actions, ["buttonType", "popover"]);
96-
} else {
97-
submitAction = find(actions, ["sort", 1]);
98-
}
79+
submitAction = find(actions, ["buttonType", "popover"]);
9980
this.props.handleAction(submitAction, true);
10081
}
10182

102-
onValuesSaved() {
103-
let nextState = {};
104-
nextState.toastDetails = {
105-
showToast: true,
106-
title: "All changes have been saved.",
107-
type: "default",
108-
opts: {
109-
showCancelButton: true,
110-
confirmButtonText: "Continue to next step",
111-
confirmAction: () => { this.handleContinue(); }
112-
}
113-
}
114-
this.setState(nextState);
115-
}
116-
11783
handleSkip() {
11884
const { initialSpecValue } = this.state;
11985
const payload = {
@@ -135,13 +101,13 @@ export default class HelmValuesEditor extends React.Component {
135101
})
136102
}
137103

138-
handleSaveValues() {
104+
handleSaveValues(finalize) {
139105
const { specValue } = this.state;
140106
const payload = {
141107
values: specValue
142108
}
143-
if(payload.values !== "") {
144-
this.setState({ saving: true, helmLintErrors: [] });
109+
if (payload.values !== "") {
110+
this.setState({ saving: true, saveFinal: finalize, helmLintErrors: [] });
145111
this.props.saveValues(payload)
146112
.then(({ errors }) => {
147113
if (errors) {
@@ -151,7 +117,13 @@ export default class HelmValuesEditor extends React.Component {
151117
});
152118
}
153119
this.setState({ saving: false, savedYaml: true });
154-
this.onValuesSaved();
120+
if (finalize) {
121+
this.handleContinue();
122+
return;
123+
}
124+
setTimeout(() => {
125+
this.setState({ savedYaml: false });
126+
}, 3000)
155127
})
156128
.catch((err) => {
157129
// TODO: better handling
@@ -164,8 +136,10 @@ export default class HelmValuesEditor extends React.Component {
164136
const {
165137
readOnly,
166138
specValue,
139+
initialSpecValue,
167140
saving,
168-
toastDetails,
141+
saveFinal,
142+
savedYaml,
169143
helmLintErrors,
170144
} = this.state;
171145
const {
@@ -177,7 +151,6 @@ export default class HelmValuesEditor extends React.Component {
177151
return (
178152
<ErrorBoundary>
179153
<div className="flex-column flex1 HelmValues--wrapper u-paddingTop--30">
180-
<Toast toast={toastDetails} onCancel={this.cancelToast} />
181154
<div className="flex-column flex-1-auto u-overflow--auto container">
182155
<p className="u-color--dutyGray u-fontStize--large u-fontWeight--medium u-marginBottom--small">
183156
/{name}/
@@ -212,19 +185,23 @@ export default class HelmValuesEditor extends React.Component {
212185
</div>
213186
</div>
214187
<div className="actions-wrapper container u-width--full flex flex-auto justifyContent--flexEnd">
215-
<p className="u-color--chestnut u-fontSize--small u-fontWeight--medium u-marginRight--30 u-lineHeight--normal">{helmLintErrors.join("\n")}</p>
188+
<div className="flex-column flex-verticalCenter">
189+
{helmLintErrors.length ?
190+
<p className="u-color--chestnut u-fontSize--small u-fontWeight--medium u-marginRight--normal u-lineHeight--normal">{helmLintErrors.join("\n")}</p>
191+
: null}
192+
{savedYaml ?
193+
<p className="u-color--vidaLoca u-fontSize--small u-fontWeight--medium u-marginRight--normal u-lineHeight--normal">Values saved</p>
194+
: null}
195+
</div>
216196
<div className="flex flex-auto alignItems--center">
217-
<p
218-
className="u-color--astral u-fontSize--small u-fontWeight--medium u-marginRight--20 u-textDecoration--underlineOnHover"
219-
onClick={() => { this.handleSkip() }}>
220-
Skip this step
221-
</p>
222-
<button
223-
className="btn primary"
224-
onClick={() => this.handleSaveValues()}
225-
disabled={saving}>
226-
{saving ? "Saving" : "Save values"}
227-
</button>
197+
{initialSpecValue === specValue ?
198+
<button className="btn primary" onClick={() => { this.handleSkip() }}>Continue</button>
199+
:
200+
<div className="flex">
201+
<button className="btn primary u-marginRight--normal" onClick={() => this.handleSaveValues(false)} disabled={saving || saveFinal}>{saving ? "Saving" : "Save values"}</button>
202+
<button className="btn secondary" onClick={() => this.handleSaveValues(true)} disabled={saving || saveFinal}>{saveFinal ? "Saving values" : "Save & continue"}</button>
203+
</div>
204+
}
228205
</div>
229206
</div>
230207

web/src/components/kustomize/kustomize_overlay/KustomizeOverlay.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ export default class KustomizeOverlay extends React.Component {
349349
:
350350
<div className="flex">
351351
<button type="button" disabled={dataLoading.saveKustomizeLoading || patch === "" || savingFinalize} onClick={() => this.handleKustomizeSave(false)} className="btn primary u-marginRight--normal">{dataLoading.saveKustomizeLoading && !savingFinalize ? "Saving overlay" : "Save overlay"}</button>
352-
<button type="button" disabled={dataLoading.saveKustomizeLoading || patch === "" || savingFinalize} onClick={() => this.handleKustomizeSave(true)} className="btn primary">{savingFinalize ? "Finalizing overlays" : "Save & continue"}</button>
352+
<button type="button" disabled={dataLoading.saveKustomizeLoading || patch === "" || savingFinalize} onClick={() => this.handleKustomizeSave(true)} className="btn secondary">{savingFinalize ? "Finalizing overlays" : "Save & continue"}</button>
353353
</div>
354354
}
355355
</div>

web/src/components/shared/DetermineComponentForRoute.jsx

-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,6 @@ class DetermineComponentForRoute extends React.Component {
154154
<StepHelmValues
155155
saveValues={this.props.saveHelmChartValues}
156156
getStep={currentStep.helmValues}
157-
isNewRouter={this.props.isNewRouter}
158157
shipAppMetadata={this.props.shipAppMetadata}
159158
actions={actions}
160159
handleAction={this.handleAction}

web/src/containers/DetermineComponentForRoute.js

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ const DetermineComponentForRoute = connect(
1313
actions: state.data.determineSteps.stepsData.actions,
1414
phase: state.data.determineSteps.stepsData.phase,
1515
progress: state.data.determineSteps.stepsData.progress,
16-
isNewRouter: state.data.appRoutes.routesData.isKustomizeFlow,
1716
isPolling: state.data.determineSteps.stepsData.isPolling,
1817
}),
1918
dispatch => ({

0 commit comments

Comments
 (0)