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());
}
}