diff --git a/packages/strapi-plugin-content-type-builder/admin/src/components/AttributeRow/index.js b/packages/strapi-plugin-content-type-builder/admin/src/components/AttributeRow/index.js index 056a4cf5a6..56862839cd 100644 --- a/packages/strapi-plugin-content-type-builder/admin/src/components/AttributeRow/index.js +++ b/packages/strapi-plugin-content-type-builder/admin/src/components/AttributeRow/index.js @@ -7,7 +7,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; -import { capitalize } from 'lodash'; +import { capitalize, has } from 'lodash'; import PopUpWarning from 'components/PopUpWarning'; import IcoContainer from 'components/IcoContainer'; @@ -66,6 +66,7 @@ class AttributeRow extends React.Component { // eslint-disable-line react/prefer } render() { + const isNotEditable = has(this.props.row.params, 'configurable') && !this.props.row.params.configurable; const relationType = this.props.row.params.type ? : ( @@ -87,10 +88,16 @@ class AttributeRow extends React.Component { // eslint-disable-line react/prefer ); const relationStyle = !this.props.row.params.type ? styles.relation : ''; - const icons = [{ icoType: 'pencil', onClick: this.handleEdit }, { icoType: 'trash', onClick: () => this.setState({ showWarning: !this.state.showWarning }) }]; - + const icons = isNotEditable ? [{ icoType: 'lock' }] : [{ icoType: 'pencil', onClick: this.handleEdit }, { icoType: 'trash', onClick: () => this.setState({ showWarning: !this.state.showWarning }) }]; + const editableStyle = isNotEditable ? '' : styles.editable; + return ( -
  • +
  • { + isNotEditable ? () => {} : this.handleEdit(); + }} + >
    {this.renderAttributesBox()} diff --git a/packages/strapi-plugin-content-type-builder/admin/src/components/AttributeRow/styles.scss b/packages/strapi-plugin-content-type-builder/admin/src/components/AttributeRow/styles.scss index ded9c67f27..0e86fffd2b 100644 --- a/packages/strapi-plugin-content-type-builder/admin/src/components/AttributeRow/styles.scss +++ b/packages/strapi-plugin-content-type-builder/admin/src/components/AttributeRow/styles.scss @@ -1,5 +1,4 @@ .attributeRow { /* stylelint-disable */ - cursor: pointer; min-height: 5.3rem; margin-top: 0!important; list-style: none; @@ -10,9 +9,14 @@ border-bottom: none; } +} + +.editable { &:hover { background-color: #F7F8F8; } + + cursor: pointer; } .flex { diff --git a/packages/strapi-plugin-content-type-builder/admin/src/containers/ModelPage/sagas.js b/packages/strapi-plugin-content-type-builder/admin/src/containers/ModelPage/sagas.js index 41799949e3..a6c4d9bc81 100644 --- a/packages/strapi-plugin-content-type-builder/admin/src/containers/ModelPage/sagas.js +++ b/packages/strapi-plugin-content-type-builder/admin/src/containers/ModelPage/sagas.js @@ -147,7 +147,8 @@ export function* submitChanges(action) { } } catch(error) { - strapi.notification.error(error); + strapi.notification.error(get(error, ['response', 'payload', 'message'], 'notification.error')); + yield put(unsetButtonLoader()); } }