Skip to content

Commit

Permalink
merge save-dash changes from dashboard v1
Browse files Browse the repository at this point in the history
  • Loading branch information
Grace Guo committed May 22, 2018
1 parent a821619 commit 2713440
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 7 deletions.
7 changes: 5 additions & 2 deletions superset/assets/src/dashboard/components/Header.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,8 @@ class Header extends React.PureComponent {
hasUnsavedChanges,
} = this.props;

const userCanEdit = dashboardInfo.dash_save_perm;
const userCanEdit = dashboardInfo.dash_edit_perm;
const userCanSaveAs = dashboardInfo.dash_save_perm;

return (
<div className="dashboard-header">
Expand All @@ -167,7 +168,7 @@ class Header extends React.PureComponent {
</span>
</div>
<ButtonToolbar>
{userCanEdit && (
{userCanSaveAs && (
<ButtonGroup>
{editMode && (
<Button
Expand Down Expand Up @@ -202,6 +203,7 @@ class Header extends React.PureComponent {
bsSize="small"
onClick={this.toggleEditMode}
bsStyle={hasUnsavedChanges ? 'primary' : undefined}
disabled={!userCanEdit}
>
{editMode ? t('Switch to view mode') : t('Edit dashboard')}
</Button>
Expand Down Expand Up @@ -234,6 +236,7 @@ class Header extends React.PureComponent {
onSave={onSave}
isMenuItem
triggerNode={<span>{t('Save as')}</span>}
canOverwrite={userCanEdit}
/>
{hasUnsavedChanges && (
<MenuItem eventKey="discard" onSelect={Header.discardChanges}>
Expand Down
2 changes: 2 additions & 0 deletions superset/assets/src/dashboard/components/SaveModal.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ const propTypes = {
css: PropTypes.string.isRequired,
onSave: PropTypes.func.isRequired,
isMenuItem: PropTypes.bool,
canOverwrite: PropTypes.bool.isRequired,
};

const defaultProps = {
Expand Down Expand Up @@ -113,6 +114,7 @@ class SaveModal extends React.PureComponent {
value={SAVE_TYPE_OVERWRITE}
onChange={this.handleSaveTypeChange}
checked={this.state.saveType === SAVE_TYPE_OVERWRITE}
disabled={!this.props.canOverwrite}
>
{t('Overwrite Dashboard [%s]', this.props.dashboardTitle)}
</Radio>
Expand Down
18 changes: 14 additions & 4 deletions superset/assets/src/dashboard/components/SliceHeaderControls.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ const propTypes = {
isCached: PropTypes.bool,
isExpanded: PropTypes.bool,
cachedDttm: PropTypes.string,
supersetCanExplore: PropTypes.bool,
sliceCanEdit: PropTypes.bool,
toggleExpandSlice: PropTypes.func,
forceRefresh: PropTypes.func,
exploreChart: PropTypes.func,
Expand All @@ -25,6 +27,8 @@ const defaultProps = {
cachedDttm: null,
isCached: false,
isExpanded: false,
supersetCanExplore: false,
sliceCanEdit: false,
};

const VerticalDotsTrigger = () => (
Expand Down Expand Up @@ -93,13 +97,19 @@ class SliceHeaderControls extends React.PureComponent {
</MenuItem>
)}

<MenuItem href={slice.edit_url} target="_blank">
{t('Edit chart metadata')}
</MenuItem>
{this.props.sliceCanEdit && (
<MenuItem href={slice.edit_url} target="_blank">
{t('Edit chart metadata')}
</MenuItem>
)}

<MenuItem onClick={this.exportCSV}>{t('Export CSV')}</MenuItem>

<MenuItem onClick={this.exploreChart}>{t('Explore chart')}</MenuItem>
{this.props.supersetCanExplore && (
<MenuItem onClick={this.exploreChart}>
{t('Explore chart')}
</MenuItem>
)}
</Dropdown.Menu>
</Dropdown>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ const propTypes = {
removeFilter: PropTypes.func.isRequired,
editMode: PropTypes.bool.isRequired,
isExpanded: PropTypes.bool.isRequired,
supersetCanExplore: PropTypes.bool.isRequired,
sliceCanEdit: PropTypes.bool.isRequired,
};

// we use state + shouldComponentUpdate() logic to prevent perf-wrecking
Expand Down Expand Up @@ -155,6 +157,8 @@ class Chart extends React.Component {
sliceName,
toggleExpandSlice,
timeout,
supersetCanExplore,
sliceCanEdit,
} = this.props;

const { width } = this.state;
Expand All @@ -179,6 +183,8 @@ class Chart extends React.Component {
exportCSV={this.exportCSV}
updateSliceName={updateSliceName}
sliceName={sliceName}
supersetCanExplore={supersetCanExplore}
sliceCanEdit={sliceCanEdit}
/>

{/*
Expand Down
2 changes: 2 additions & 0 deletions superset/assets/src/dashboard/containers/Chart.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ function mapStateToProps(
}),
editMode: dashboardState.editMode,
isExpanded: !!dashboardState.expandedSlices[id],
supersetCanExplore: !!dashboardInfo.superset_can_explore,
sliceCanEdit: !!dashboardInfo.slice_can_edit,
};
}

Expand Down
2 changes: 2 additions & 0 deletions superset/assets/src/dashboard/reducers/getInitialState.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,8 @@ export default function(bootstrapData) {
userId: user_id,
dash_edit_perm: dashboard.dash_edit_perm,
dash_save_perm: dashboard.dash_save_perm,
superset_can_explore: dashboard.superset_can_explore,
slice_can_edit: dashboard.slice_can_edit,
common,
},
dashboardState: {
Expand Down
2 changes: 1 addition & 1 deletion superset/assets/src/modules/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ export function slugify(string) {

export function getAjaxErrorMsg(error) {
const respJSON = error.responseJSON;
return (respJSON && respJSON.message) ? respJSON.message :
return (respJSON && respJSON.error) ? respJSON.error :
error.responseText;
}

Expand Down

0 comments on commit 2713440

Please sign in to comment.