After saving slice fixing redirect (#3572)
diff --git a/superset/assets/javascripts/explore/components/SaveModal.jsx b/superset/assets/javascripts/explore/components/SaveModal.jsx
index 9de8353..2939f2e 100644
--- a/superset/assets/javascripts/explore/components/SaveModal.jsx
+++ b/superset/assets/javascripts/explore/components/SaveModal.jsx
@@ -108,7 +108,11 @@
this.props.actions.saveSlice(saveUrl)
.then((data) => {
// Go to new slice url or dashboard url
- window.location = data.slice.slice_url;
+ if (gotodash) {
+ window.location = data.dashboard;
+ } else {
+ window.location = data.slice.slice_url;
+ }
});
this.props.onHide();
}
diff --git a/superset/views/core.py b/superset/views/core.py
index d068997..23a3993 100755
--- a/superset/views/core.py
+++ b/superset/views/core.py
@@ -1194,16 +1194,18 @@
dash.slices.append(slc)
db.session.commit()
+ response = {
+ "can_add": slice_add_perm,
+ "can_download": slice_download_perm,
+ "can_overwrite": is_owner(slc, g.user),
+ 'form_data': form_data,
+ 'slice': slc.data,
+ }
+
if request.args.get('goto_dash') == 'true':
- return dash.url
- else:
- return json_success(json.dumps({
- "can_add": slice_add_perm,
- "can_download": slice_download_perm,
- "can_overwrite": is_owner(slc, g.user),
- 'form_data': form_data,
- 'slice': slc.data,
- }))
+ response.update({'dashboard': dash.url})
+
+ return json_success(json.dumps(response))
def save_slice(self, slc):
session = db.session()