Hide restricted ui elements, remove <br> from error message (#4900)
* hide forbidden ui elements, remove <br> from message * add comma for flake8 * add commma for flake8 * change js variables from snake to camel case
This commit is contained in:
parent
976e43e681
commit
e2d5c33638
|
|
@ -143,20 +143,22 @@ class Controls extends React.PureComponent {
|
|||
/>
|
||||
}
|
||||
/>
|
||||
<SaveModal
|
||||
dashboard={dashboard}
|
||||
filters={filters}
|
||||
serialize={serialize}
|
||||
onSave={onSave}
|
||||
css={this.state.css}
|
||||
triggerNode={
|
||||
<MenuItemContent
|
||||
text={saveText}
|
||||
tooltip={t('Save the dashboard')}
|
||||
faIcon="save"
|
||||
/>
|
||||
}
|
||||
/>
|
||||
{dashboard.dash_save_perm &&
|
||||
<SaveModal
|
||||
dashboard={dashboard}
|
||||
filters={filters}
|
||||
serialize={serialize}
|
||||
onSave={onSave}
|
||||
css={this.state.css}
|
||||
triggerNode={
|
||||
<MenuItemContent
|
||||
text={saveText}
|
||||
tooltip={t('Save the dashboard')}
|
||||
faIcon="save"
|
||||
/>
|
||||
}
|
||||
/>
|
||||
}
|
||||
{editMode &&
|
||||
<ActionMenuItem
|
||||
text={t('Edit properties')}
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ class SaveModal extends React.PureComponent {
|
|||
error(error) {
|
||||
saveModal.close();
|
||||
const errorMsg = getAjaxErrorMsg(error);
|
||||
notify.error(t('Sorry, there was an error saving this dashboard: ') + '</ br>' + errorMsg);
|
||||
notify.error(t('Sorry, there was an error saving this dashboard: ') + errorMsg);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import moment from 'moment';
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { t } from '../../locales';
|
||||
import EditableTitle from '../../components/EditableTitle';
|
||||
|
|
@ -8,6 +9,8 @@ import TooltipWrapper from '../../components/TooltipWrapper';
|
|||
|
||||
const propTypes = {
|
||||
slice: PropTypes.object.isRequired,
|
||||
supersetCanExplore: PropTypes.bool,
|
||||
sliceCanEdit: PropTypes.bool,
|
||||
isExpanded: PropTypes.bool,
|
||||
isCached: PropTypes.bool,
|
||||
cachedDttm: PropTypes.string,
|
||||
|
|
@ -72,6 +75,7 @@ class SliceHeader extends React.PureComponent {
|
|||
title={slice.slice_name}
|
||||
canEdit={!!this.props.updateSliceName && this.props.editMode}
|
||||
onSaveTitle={this.onSaveTitle}
|
||||
showTooltip={this.props.editMode}
|
||||
noPermitTooltip={'You don\'t have the rights to alter this dashboard.'}
|
||||
/>
|
||||
{!!Object.values(this.props.annotationQuery || {}).length &&
|
||||
|
|
@ -126,15 +130,17 @@ class SliceHeader extends React.PureComponent {
|
|||
</TooltipWrapper>
|
||||
</a>
|
||||
}
|
||||
<a href={slice.edit_url} target="_blank">
|
||||
<TooltipWrapper
|
||||
placement="top"
|
||||
label="edit"
|
||||
tooltip={t('Edit chart')}
|
||||
>
|
||||
<i className="fa fa-pencil" />
|
||||
</TooltipWrapper>
|
||||
</a>
|
||||
{this.props.sliceCanEdit &&
|
||||
<a href={slice.edit_url} target="_blank">
|
||||
<TooltipWrapper
|
||||
placement="top"
|
||||
label="edit"
|
||||
tooltip={t('Edit chart')}
|
||||
>
|
||||
<i className="fa fa-pencil" />
|
||||
</TooltipWrapper>
|
||||
</a>
|
||||
}
|
||||
<a className="exportCSV" onClick={this.exportCSV}>
|
||||
<TooltipWrapper
|
||||
placement="top"
|
||||
|
|
@ -144,15 +150,17 @@ class SliceHeader extends React.PureComponent {
|
|||
<i className="fa fa-table" />
|
||||
</TooltipWrapper>
|
||||
</a>
|
||||
<a className="exploreChart" onClick={this.exploreChart}>
|
||||
<TooltipWrapper
|
||||
placement="top"
|
||||
label="exploreChart"
|
||||
tooltip={t('Explore chart')}
|
||||
>
|
||||
<i className="fa fa-share" />
|
||||
</TooltipWrapper>
|
||||
</a>
|
||||
{this.props.supersetCanExplore &&
|
||||
<a className="exploreChart" onClick={this.exploreChart}>
|
||||
<TooltipWrapper
|
||||
placement="top"
|
||||
label="exploreChart"
|
||||
tooltip={t('Explore chart')}
|
||||
>
|
||||
<i className="fa fa-share" />
|
||||
</TooltipWrapper>
|
||||
</a>
|
||||
}
|
||||
{this.props.editMode &&
|
||||
<a className="remove-chart" onClick={this.removeSlice}>
|
||||
<TooltipWrapper
|
||||
|
|
@ -175,4 +183,12 @@ class SliceHeader extends React.PureComponent {
|
|||
SliceHeader.propTypes = propTypes;
|
||||
SliceHeader.defaultProps = defaultProps;
|
||||
|
||||
export default SliceHeader;
|
||||
function mapStateToProps({ dashboard }) {
|
||||
return {
|
||||
supersetCanExplore: dashboard.dashboard.superset_can_explore,
|
||||
sliceCanEdit: dashboard.dashboard.slice_can_edit,
|
||||
};
|
||||
}
|
||||
|
||||
export { SliceHeader };
|
||||
export default connect(mapStateToProps, () => ({}))(SliceHeader);
|
||||
|
|
|
|||
|
|
@ -2046,6 +2046,8 @@ class Superset(BaseSupersetView):
|
|||
dash_edit_perm = check_ownership(dash, raise_if_false=False)
|
||||
dash_save_perm = \
|
||||
dash_edit_perm and security_manager.can_access('can_save_dash', 'Superset')
|
||||
superset_can_explore = security_manager.can_access('can_explore', 'Superset')
|
||||
slice_can_edit = security_manager.can_access('can_edit', 'SliceModelView')
|
||||
|
||||
standalone_mode = request.args.get('standalone') == 'true'
|
||||
|
||||
|
|
@ -2054,6 +2056,8 @@ class Superset(BaseSupersetView):
|
|||
'standalone_mode': standalone_mode,
|
||||
'dash_save_perm': dash_save_perm,
|
||||
'dash_edit_perm': dash_edit_perm,
|
||||
'superset_can_explore': superset_can_explore,
|
||||
'slice_can_edit': slice_can_edit,
|
||||
})
|
||||
|
||||
bootstrap_data = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue