Skip to content

Commit d3cad58

Browse files
committed
Setting serveSecure flag on project redirects after saving project
1 parent e2eb707 commit d3cad58

File tree

2 files changed

+44
-33
lines changed

2 files changed

+44
-33
lines changed

client/modules/IDE/actions/project.js

Lines changed: 43 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { setUnsavedChanges,
99
resetJustOpenedProject,
1010
showErrorModal } from './ide';
1111
import { clearState, saveState } from '../../../persistState';
12+
import { redirectToProtocol, protocols } from '../../../components/forceProtocol';
1213

1314
const ROOT_URL = process.env.API_URL;
1415

@@ -28,13 +29,6 @@ export function setProjectName(name) {
2829
};
2930
}
3031

31-
export function setServeSecure(serveSecure) {
32-
return {
33-
type: ActionTypes.SET_SERVE_SECURE,
34-
serveSecure
35-
};
36-
}
37-
3832
export function getProject(id) {
3933
return (dispatch, getState) => {
4034
dispatch(justOpenedProject());
@@ -110,39 +104,38 @@ export function saveProject(autosave = false) {
110104
});
111105
}
112106
});
113-
browserHistory.push(`/${response.data.user.username}/sketches/${response.data.id}`);
114-
dispatch({
115-
type: ActionTypes.NEW_PROJECT,
116-
project: response.data,
117-
owner: response.data.user,
118-
files: response.data.files
119-
});
120-
if (!autosave) {
121-
if (state.preferences.autosave) {
122-
dispatch(showToast(5500));
123-
dispatch(setToastText('Project saved.'));
124-
setTimeout(() => dispatch(setToastText('Autosave enabled.')), 1500);
125-
dispatch(resetJustOpenedProject());
126-
} else {
127-
dispatch(showToast(1500));
128-
dispatch(setToastText('Project saved.'));
129-
}
130-
}
131-
})
132-
.catch((response) => {
133-
if (response.status === 403) {
134-
dispatch(showErrorModal('staleSession'));
135107
}
136108

137109
return axios.post(`${ROOT_URL}/projects`, formParams, { withCredentials: true })
138110
.then((response) => {
139111
dispatch(setUnsavedChanges(false));
140112
dispatch(setProject(response.data));
113+
browserHistory.push(`/${response.data.user.username}/sketches/${response.data.id}`);
114+
dispatch({
115+
type: ActionTypes.NEW_PROJECT,
116+
project: response.data,
117+
owner: response.data.user,
118+
files: response.data.files
119+
});
120+
if (!autosave) {
121+
if (state.preferences.autosave) {
122+
dispatch(showToast(5500));
123+
dispatch(setToastText('Project saved.'));
124+
setTimeout(() => dispatch(setToastText('Autosave enabled.')), 1500);
125+
dispatch(resetJustOpenedProject());
141126
} else {
142-
dispatch({
143-
type: ActionTypes.PROJECT_SAVE_FAIL,
144-
error: response.data
127+
dispatch(showToast(1500));
128+
dispatch(setToastText('Project saved.'));
145129
}
130+
}
131+
})
132+
.catch((response) => {
133+
if (response.status === 403) {
134+
dispatch(showErrorModal('staleSession'));
135+
} else {
136+
dispatch({
137+
type: ActionTypes.PROJECT_SAVE_FAIL,
138+
error: response.data
146139
});
147140
}
148141
});
@@ -257,6 +250,24 @@ export function cloneProject() {
257250
};
258251
}
259252

253+
export function setServeSecure(serveSecure, { redirect = true } = {}) {
254+
return (dispatch, getState) => {
255+
dispatch({
256+
type: ActionTypes.SET_SERVE_SECURE,
257+
serveSecure
258+
});
259+
260+
if (redirect === true) {
261+
dispatch(saveProject(false /* autosave */))
262+
.then(
263+
() => redirectToProtocol(serveSecure === true ? protocols.https : protocols.http)
264+
);
265+
}
266+
267+
return null;
268+
};
269+
}
270+
260271
export function showEditProjectName() {
261272
return {
262273
type: ActionTypes.SHOW_EDIT_PROJECT_NAME

client/modules/IDE/components/Toolbar.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ class Toolbar extends React.Component {
110110
<input
111111
id="serve-secure"
112112
type="checkbox"
113-
value={this.props.project.serveSecure}
113+
checked={this.props.project.serveSecure || false}
114114
onChange={(event) => {
115115
this.props.setServeSecure(event.target.checked);
116116
}}

0 commit comments

Comments
 (0)