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:
jasnovak 2018-05-03 17:36:31 -07:00 committed by Maxime Beauchemin
parent 976e43e681
commit e2d5c33638
4 changed files with 56 additions and 34 deletions

View File

@ -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')}

View File

@ -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);
},
});
}

View File

@ -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);

View File

@ -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 = {