mirror of
https://github.com/strapi/strapi.git
synced 2025-12-24 13:43:41 +00:00
Update eslint dependencies
This commit is contained in:
parent
b981fed892
commit
ddcfd8fb1f
@ -110,7 +110,7 @@ const registerPlugin = (plugin) => {
|
||||
|
||||
// Create a new prefixed route for each plugin routes
|
||||
if (formattedPlugin && formattedPlugin.routes) {
|
||||
formattedPlugin.routes.forEach(route => {
|
||||
formattedPlugin.routes.forEach((route) => {
|
||||
pluginsRoute.childRoutes.push({
|
||||
path: `/plugins/${formattedPlugin.id}${route.path}`,
|
||||
name: `plugins_${formattedPlugin.id}_${route.name}`,
|
||||
|
||||
@ -29,9 +29,9 @@ class LeftMenuLink extends React.Component { // eslint-disable-line react/prefer
|
||||
}
|
||||
|
||||
LeftMenuLink.propTypes = {
|
||||
destination: React.PropTypes.string,
|
||||
icon: React.PropTypes.string,
|
||||
label: React.PropTypes.string,
|
||||
destination: React.PropTypes.string.isRequired.isRequired,
|
||||
icon: React.PropTypes.string.isRequired.isRequired,
|
||||
label: React.PropTypes.string.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default LeftMenuLink;
|
||||
|
||||
@ -88,7 +88,7 @@ class LeftMenuLinkContainer extends React.Component { // eslint-disable-line rea
|
||||
}
|
||||
|
||||
LeftMenuLinkContainer.propTypes = {
|
||||
plugins: React.PropTypes.object,
|
||||
plugins: React.PropTypes.object.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default LeftMenuLinkContainer;
|
||||
|
||||
@ -54,8 +54,8 @@ class Notification extends React.Component { // eslint-disable-line react/prefer
|
||||
}
|
||||
|
||||
Notification.propTypes = {
|
||||
notification: React.PropTypes.object,
|
||||
onHideNotification: React.PropTypes.func,
|
||||
notification: React.PropTypes.object.isRequired.isRequired,
|
||||
onHideNotification: React.PropTypes.func.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default Notification;
|
||||
|
||||
@ -38,8 +38,8 @@ class NotificationsContainer extends React.Component { // eslint-disable-line re
|
||||
}
|
||||
|
||||
NotificationsContainer.propTypes = {
|
||||
notifications: React.PropTypes.object,
|
||||
onHideNotification: React.PropTypes.func,
|
||||
notifications: React.PropTypes.object.isRequired.isRequired,
|
||||
onHideNotification: React.PropTypes.func.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default NotificationsContainer;
|
||||
|
||||
@ -23,8 +23,8 @@ class Plugin extends React.Component { // eslint-disable-line react/prefer-state
|
||||
}
|
||||
|
||||
Plugin.propTypes = {
|
||||
description: React.PropTypes.object,
|
||||
title: React.PropTypes.object,
|
||||
description: React.PropTypes.object.isRequired.isRequired,
|
||||
title: React.PropTypes.object.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default Plugin;
|
||||
|
||||
@ -31,9 +31,9 @@ class PluginHeader extends React.Component { // eslint-disable-line react/prefer
|
||||
}
|
||||
|
||||
PluginHeader.propTypes = {
|
||||
actions: React.PropTypes.array,
|
||||
description: React.PropTypes.object,
|
||||
title: React.PropTypes.object,
|
||||
actions: React.PropTypes.array.isRequired.isRequired,
|
||||
description: React.PropTypes.object.isRequired.isRequired,
|
||||
title: React.PropTypes.object.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default PluginHeader;
|
||||
|
||||
@ -11,9 +11,9 @@ import styles from './styles.scss';
|
||||
|
||||
class PluginHeaderActions extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
||||
render() {
|
||||
const actions = this.props.actions && this.props.actions.map((action, i) => (
|
||||
const actions = this.props.actions && this.props.actions.map((action) => (
|
||||
<button
|
||||
key={i}
|
||||
key={action.label}
|
||||
className={`btn ${action.class} ${styles.btn}`}
|
||||
onClick={action.onClick}
|
||||
disabled={action.disabled}
|
||||
@ -33,7 +33,7 @@ class PluginHeaderActions extends React.Component { // eslint-disable-line react
|
||||
}
|
||||
|
||||
PluginHeaderActions.propTypes = {
|
||||
actions: React.PropTypes.array,
|
||||
actions: React.PropTypes.array.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default PluginHeaderActions;
|
||||
|
||||
@ -25,8 +25,8 @@ class PluginHeaderTitle extends React.Component { // eslint-disable-line react/p
|
||||
}
|
||||
|
||||
PluginHeaderTitle.propTypes = {
|
||||
description: React.PropTypes.object,
|
||||
title: React.PropTypes.object,
|
||||
description: React.PropTypes.object.isRequired.isRequired,
|
||||
title: React.PropTypes.object.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default PluginHeaderTitle;
|
||||
|
||||
@ -10,7 +10,7 @@ import ToggleOption from 'components/ToggleOption';
|
||||
|
||||
import styles from './styles.scss';
|
||||
|
||||
function Toggle(props) { // eslint-disable-line react/prefer-stateless-function
|
||||
function Toggle(props) { // eslint-disable-line react/prefer-stateless-function
|
||||
let content = (<option>--</option>);
|
||||
|
||||
// If we have items, render them
|
||||
@ -28,9 +28,9 @@ function Toggle(props) { // eslint-disable-line react/prefer-stateless-function
|
||||
}
|
||||
|
||||
Toggle.propTypes = {
|
||||
messages: React.PropTypes.object,
|
||||
onToggle: React.PropTypes.func,
|
||||
values: React.PropTypes.array,
|
||||
messages: React.PropTypes.object.isRequired.isRequired,
|
||||
onToggle: React.PropTypes.func.isRequired.isRequired,
|
||||
values: React.PropTypes.array.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default Toggle;
|
||||
|
||||
@ -16,10 +16,10 @@ const ToggleOption = ({ value, message, intl }) => (
|
||||
ToggleOption.propTypes = {
|
||||
intl: intlShape.isRequired,
|
||||
message: React.PropTypes.oneOfType([
|
||||
React.PropTypes.object,
|
||||
React.PropTypes.string,
|
||||
]),
|
||||
value: React.PropTypes.string.isRequired,
|
||||
React.PropTypes.object.isRequired,
|
||||
React.PropTypes.string.isRequired,
|
||||
]).isRequired,
|
||||
value: React.PropTypes.string.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default injectIntl(ToggleOption);
|
||||
|
||||
@ -37,13 +37,13 @@ export class App extends React.Component { // eslint-disable-line react/prefer-s
|
||||
}
|
||||
|
||||
App.contextTypes = {
|
||||
router: React.PropTypes.object.isRequired,
|
||||
router: React.PropTypes.object.isRequired.isRequired.isRequired,
|
||||
};
|
||||
|
||||
App.propTypes = {
|
||||
children: React.PropTypes.node,
|
||||
notifications: React.PropTypes.object,
|
||||
onHideNotification: React.PropTypes.func,
|
||||
children: React.PropTypes.node.isRequired.isRequired,
|
||||
notifications: React.PropTypes.object.isRequired.isRequired,
|
||||
onHideNotification: React.PropTypes.func.isRequired.isRequired,
|
||||
};
|
||||
|
||||
const mapStateToProps = createStructuredSelector({
|
||||
|
||||
@ -20,7 +20,7 @@ const selectLocationState = () => {
|
||||
/**
|
||||
* Direct selector to the languageToggle state domain
|
||||
*/
|
||||
const selectApp = () => state => state.get('app');
|
||||
const selectApp = () => (state) => state.get('app');
|
||||
|
||||
/**
|
||||
* Select the language locale
|
||||
|
||||
@ -13,10 +13,6 @@ import { selectPlugins } from 'containers/App/selectors';
|
||||
import styles from './styles.scss';
|
||||
|
||||
export class Content extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
||||
static propTypes = {
|
||||
children: React.PropTypes.node,
|
||||
};
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className={styles.content}>
|
||||
@ -27,6 +23,7 @@ export class Content extends React.Component { // eslint-disable-line react/pref
|
||||
}
|
||||
|
||||
Content.propTypes = {
|
||||
children: React.PropTypes.node.isRequired.isRequired,
|
||||
};
|
||||
|
||||
const mapStateToProps = createSelector(
|
||||
|
||||
@ -35,7 +35,7 @@ export class HomePage extends React.Component { // eslint-disable-line react/pre
|
||||
}
|
||||
|
||||
HomePage.propTypes = {
|
||||
plugins: React.PropTypes.object,
|
||||
plugins: React.PropTypes.object.isRequired.isRequired,
|
||||
};
|
||||
|
||||
const mapStateToProps = createStructuredSelector({
|
||||
|
||||
@ -23,9 +23,9 @@ export class LanguageProvider extends React.Component { // eslint-disable-line r
|
||||
}
|
||||
|
||||
LanguageProvider.propTypes = {
|
||||
children: React.PropTypes.element.isRequired,
|
||||
locale: React.PropTypes.string,
|
||||
messages: React.PropTypes.object,
|
||||
children: React.PropTypes.element.isRequired.isRequired.isRequired,
|
||||
locale: React.PropTypes.string.isRequired.isRequired,
|
||||
messages: React.PropTypes.object.isRequired.isRequired,
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@ import { createSelector } from 'reselect';
|
||||
/**
|
||||
* Direct selector to the languageToggle state domain
|
||||
*/
|
||||
const selectLanguage = () => state => state.get('language');
|
||||
const selectLanguage = () => (state) => state.get('language');
|
||||
|
||||
/**
|
||||
* Select the language locale
|
||||
|
||||
@ -26,7 +26,7 @@ export class LeftMenu extends React.Component { // eslint-disable-line react/pre
|
||||
}
|
||||
|
||||
LeftMenu.propTypes = {
|
||||
plugins: React.PropTypes.object,
|
||||
plugins: React.PropTypes.object.isRequired.isRequired,
|
||||
};
|
||||
|
||||
function mapDispatchToProps(dispatch) {
|
||||
|
||||
@ -18,7 +18,7 @@ import styles from './styles.scss';
|
||||
export class LocaleToggle extends React.Component { // eslint-disable-line
|
||||
render() {
|
||||
const messages = {};
|
||||
languages.forEach(locale => { messages[locale] = locale.toUpperCase(); });
|
||||
languages.forEach((locale) => { messages[locale] = locale.toUpperCase(); });
|
||||
|
||||
return (
|
||||
<div className={styles.localeToggle}>
|
||||
@ -29,7 +29,7 @@ export class LocaleToggle extends React.Component { // eslint-disable-line
|
||||
}
|
||||
|
||||
LocaleToggle.propTypes = {
|
||||
onLocaleToggle: React.PropTypes.func,
|
||||
onLocaleToggle: React.PropTypes.func.isRequired.isRequired,
|
||||
};
|
||||
|
||||
const mapStateToProps = createSelector(
|
||||
|
||||
@ -20,7 +20,7 @@ export class NotificationProvider extends React.Component { // eslint-disable-li
|
||||
}
|
||||
|
||||
NotificationProvider.propTypes = {
|
||||
children: React.PropTypes.object,
|
||||
children: React.PropTypes.object.isRequired.isRequired,
|
||||
};
|
||||
|
||||
const mapStateToProps = selectNotificationProvider();
|
||||
|
||||
@ -17,9 +17,9 @@ const exposedComponents = {
|
||||
|
||||
export class PluginPage extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
||||
render() {
|
||||
const containers = this.props.plugins.valueSeq().map((plugin, i) => {
|
||||
const containers = this.props.plugins.valueSeq().map((plugin) => {
|
||||
const Elem = plugin.get('mainComponent');
|
||||
return <Elem key={i} {...this.props} exposedComponents={exposedComponents}></Elem>;
|
||||
return <Elem key={plugin.id} {...this.props} exposedComponents={exposedComponents}></Elem>;
|
||||
});
|
||||
|
||||
return (
|
||||
@ -37,11 +37,11 @@ export class PluginPage extends React.Component { // eslint-disable-line react/p
|
||||
}
|
||||
|
||||
PluginPage.contextTypes = {
|
||||
router: React.PropTypes.object.isRequired,
|
||||
router: React.PropTypes.object.isRequired.isRequired.isRequired,
|
||||
};
|
||||
|
||||
PluginPage.propTypes = {
|
||||
plugins: React.PropTypes.object,
|
||||
plugins: React.PropTypes.object.isRequired.isRequired,
|
||||
};
|
||||
|
||||
const mapStateToProps = createSelector(
|
||||
|
||||
@ -27,16 +27,16 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"cross-env": "^3.1.3",
|
||||
"eslint": "^3.9.0",
|
||||
"eslint-config-airbnb": "^12.0.0",
|
||||
"eslint-config-airbnb-base": "^9.0.0",
|
||||
"eslint": "^4.4.1",
|
||||
"eslint-config-airbnb": "^15.1.0",
|
||||
"eslint-config-airbnb-base": "^11.3.1",
|
||||
"eslint-config-prettier": "^2.3.0",
|
||||
"eslint-import-resolver-webpack": "^0.6.0",
|
||||
"eslint-import-resolver-webpack": "^0.8.3",
|
||||
"eslint-plugin-babel": "^4.1.2",
|
||||
"eslint-plugin-import": "^2.0.1",
|
||||
"eslint-plugin-jsx-a11y": "^2.2.3",
|
||||
"eslint-plugin-react": "^6.4.1",
|
||||
"eslint-plugin-redux-saga": "^0.1.5",
|
||||
"eslint-plugin-import": "^2.7.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.0.2",
|
||||
"eslint-plugin-react": "^7.2.1",
|
||||
"eslint-plugin-redux-saga": "^0.4.0",
|
||||
"extract-text-webpack-plugin": "^1.0.1",
|
||||
"html-loader": "^0.4.3",
|
||||
"html-webpack-plugin": "^2.22.0",
|
||||
|
||||
@ -2,7 +2,8 @@
|
||||
"parser": "babel-eslint",
|
||||
"extends": [
|
||||
"airbnb",
|
||||
"prettier"
|
||||
"prettier",
|
||||
"eslint:recommended"
|
||||
],
|
||||
"env": {
|
||||
"browser": true,
|
||||
@ -16,9 +17,10 @@
|
||||
"jsx-a11y"
|
||||
],
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 6,
|
||||
"ecmaVersion": 7,
|
||||
"sourceType": "module",
|
||||
"ecmaFeatures": {
|
||||
"impliedStrict": true,
|
||||
"jsx": true
|
||||
}
|
||||
},
|
||||
@ -56,11 +58,13 @@
|
||||
],
|
||||
"jsx-a11y/aria-props": 2,
|
||||
"jsx-a11y/heading-has-content": 0,
|
||||
"jsx-a11y/href-no-hash": 2,
|
||||
"jsx-a11y/label-has-for": 2,
|
||||
"jsx-a11y/mouse-events-have-key-events": 2,
|
||||
"jsx-a11y/role-has-required-aria-props": 2,
|
||||
"jsx-a11y/role-supports-aria-props": 2,
|
||||
"jsx-a11y/href-no-hash": "off",
|
||||
"jsx-a11y/anchor-is-valid": ["warn", { "aspects": ["invalidHref"] }],
|
||||
"jsx-a11y/no-noninteractive-element-interactions": 0,
|
||||
"max-len": 0,
|
||||
"newline-per-chained-call": 0,
|
||||
"no-console": 1,
|
||||
@ -82,7 +86,9 @@
|
||||
"require-yield": 0,
|
||||
"react/no-unescaped-entities": 0,
|
||||
"react/prefer-stateless-function": 0,
|
||||
"react/sort-prop-types": 2
|
||||
"react/sort-prop-types": 2,
|
||||
"no-undef": 0,
|
||||
"react/no-array-index-key": 0
|
||||
},
|
||||
"settings": {
|
||||
"import/resolver": {
|
||||
|
||||
@ -92,8 +92,8 @@ module.exports = require('./webpack.base.babel')({
|
||||
[
|
||||
require.resolve('babel-preset-latest'),
|
||||
{
|
||||
"es2015": {
|
||||
"modules": false,
|
||||
es2015: {
|
||||
modules: false,
|
||||
},
|
||||
},
|
||||
],
|
||||
|
||||
@ -49,7 +49,7 @@ function Comp(props) {
|
||||
|
||||
// Add contextTypes to get access to the admin router
|
||||
Comp.contextTypes = {
|
||||
router: React.PropTypes.object.isRequired,
|
||||
router: React.PropTypes.object.isRequired.isRequired,
|
||||
};
|
||||
|
||||
// Hot reloadable translation json files
|
||||
|
||||
@ -57,16 +57,16 @@
|
||||
"cross-env": "3.1.3",
|
||||
"css-loader": "0.25.0",
|
||||
"enzyme": "2.5.1",
|
||||
"eslint": "3.9.0",
|
||||
"eslint-config-airbnb": "12.0.0",
|
||||
"eslint-config-airbnb-base": "9.0.0",
|
||||
"eslint-config-prettier": "2.3.0",
|
||||
"eslint-import-resolver-webpack": "0.6.0",
|
||||
"eslint-plugin-babel": "^4.1.1",
|
||||
"eslint-plugin-import": "2.0.1",
|
||||
"eslint-plugin-jsx-a11y": "2.2.3",
|
||||
"eslint-plugin-react": "6.4.1",
|
||||
"eslint-plugin-redux-saga": "0.1.5",
|
||||
"eslint": "^4.4.1",
|
||||
"eslint-config-airbnb": "^15.1.0",
|
||||
"eslint-config-airbnb-base": "^11.3.1",
|
||||
"eslint-config-prettier": "^2.3.0",
|
||||
"eslint-import-resolver-webpack": "^0.8.3",
|
||||
"eslint-plugin-babel": "^4.1.2",
|
||||
"eslint-plugin-import": "^2.7.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.0.2",
|
||||
"eslint-plugin-react": "^7.2.1",
|
||||
"eslint-plugin-redux-saga": "^0.4.0",
|
||||
"eventsource-polyfill": "0.9.6",
|
||||
"expect": "1.20.2",
|
||||
"expect-jsx": "2.6.0",
|
||||
@ -123,4 +123,4 @@
|
||||
"webpack-hot-middleware": "2.13.1",
|
||||
"whatwg-fetch": "1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -24,7 +24,7 @@ Container.propTypes = {
|
||||
children: React.PropTypes.oneOfType([
|
||||
React.PropTypes.object,
|
||||
React.PropTypes.array,
|
||||
]),
|
||||
]).isRequired,
|
||||
};
|
||||
|
||||
export default Container;
|
||||
|
||||
@ -104,7 +104,11 @@ class EditForm extends React.Component {
|
||||
|
||||
return (
|
||||
<div key={attributeKey} className="form-group">
|
||||
<label htmlFor={attributeKey}>{attributeValue.label || attributeKey}</label>
|
||||
<label // eslint-disable-line jsx-a11y/label-has-for
|
||||
htmlFor={attributeKey}
|
||||
>
|
||||
{attributeValue.label || attributeKey}
|
||||
</label>
|
||||
{description}
|
||||
{input}
|
||||
</div>
|
||||
@ -139,7 +143,7 @@ EditForm.propTypes = {
|
||||
record: React.PropTypes.oneOfType([
|
||||
React.PropTypes.object,
|
||||
React.PropTypes.bool,
|
||||
]),
|
||||
]).isRequired,
|
||||
schema: React.PropTypes.object.isRequired,
|
||||
setRecordAttribute: React.PropTypes.func.isRequired,
|
||||
};
|
||||
|
||||
@ -70,7 +70,11 @@ class EditFormRelation extends React.Component { // eslint-disable-line react/pr
|
||||
|
||||
return (
|
||||
<div className="form-group">
|
||||
<label htmlFor={this.props.relation.label}>{this.props.relation.label}</label>
|
||||
<label // eslint-disable-line jsx-a11y/label-has-for
|
||||
htmlFor={this.props.relation.label}
|
||||
>
|
||||
{this.props.relation.label}
|
||||
</label>
|
||||
{description}
|
||||
<Select.Async
|
||||
onChange={this.onChange}
|
||||
@ -87,7 +91,7 @@ EditFormRelation.propTypes = {
|
||||
record: React.PropTypes.oneOfType([
|
||||
React.PropTypes.object,
|
||||
React.PropTypes.bool,
|
||||
]),
|
||||
]).isRequired,
|
||||
relation: React.PropTypes.object.isRequired,
|
||||
setRecordAttribute: React.PropTypes.func.isRequired,
|
||||
};
|
||||
|
||||
@ -35,15 +35,15 @@ EditFormRelations.propTypes = {
|
||||
currentModelName: React.PropTypes.oneOfType([
|
||||
React.PropTypes.bool,
|
||||
React.PropTypes.string,
|
||||
]),
|
||||
]).isRequired,
|
||||
record: React.PropTypes.oneOfType([
|
||||
React.PropTypes.object,
|
||||
React.PropTypes.bool,
|
||||
]),
|
||||
]).isRequired,
|
||||
schema: React.PropTypes.oneOfType([
|
||||
React.PropTypes.object,
|
||||
React.PropTypes.bool,
|
||||
]),
|
||||
]).isRequired,
|
||||
setRecordAttribute: React.PropTypes.func.isRequired,
|
||||
};
|
||||
|
||||
|
||||
@ -241,7 +241,7 @@ Pagination.propTypes = {
|
||||
count: React.PropTypes.oneOfType([
|
||||
React.PropTypes.number,
|
||||
React.PropTypes.bool,
|
||||
]),
|
||||
]).isRequired,
|
||||
currentPage: React.PropTypes.number.isRequired,
|
||||
limit: React.PropTypes.number.isRequired,
|
||||
};
|
||||
|
||||
@ -42,7 +42,7 @@ TableFooter.propTypes = {
|
||||
count: React.PropTypes.oneOfType([
|
||||
React.PropTypes.number,
|
||||
React.PropTypes.bool,
|
||||
]),
|
||||
]).isRequired,
|
||||
currentPage: React.PropTypes.number.isRequired,
|
||||
limit: React.PropTypes.number.isRequired,
|
||||
onLimitChange: React.PropTypes.func.isRequired,
|
||||
|
||||
@ -58,7 +58,7 @@ App.contextTypes = {
|
||||
App.propTypes = {
|
||||
children: React.PropTypes.node.isRequired,
|
||||
exposedComponents: React.PropTypes.object.isRequired,
|
||||
loading: React.PropTypes.bool,
|
||||
loading: React.PropTypes.bool.isRequired,
|
||||
loadModels: React.PropTypes.func.isRequired,
|
||||
updateSchema: React.PropTypes.func.isRequired,
|
||||
};
|
||||
|
||||
@ -135,7 +135,7 @@ Edit.propTypes = {
|
||||
currentModelName: React.PropTypes.oneOfType([
|
||||
React.PropTypes.bool,
|
||||
React.PropTypes.string,
|
||||
]),
|
||||
]).isRequired,
|
||||
deleteRecord: React.PropTypes.func.isRequired,
|
||||
deleting: React.PropTypes.bool.isRequired,
|
||||
editing: React.PropTypes.bool.isRequired,
|
||||
@ -147,12 +147,12 @@ Edit.propTypes = {
|
||||
record: React.PropTypes.oneOfType([
|
||||
React.PropTypes.object,
|
||||
React.PropTypes.bool,
|
||||
]),
|
||||
]).isRequired,
|
||||
routeParams: React.PropTypes.object.isRequired,
|
||||
schema: React.PropTypes.oneOfType([
|
||||
React.PropTypes.object,
|
||||
React.PropTypes.bool,
|
||||
]),
|
||||
]).isRequired,
|
||||
setCurrentModelName: React.PropTypes.func.isRequired,
|
||||
setInitialState: React.PropTypes.func.isRequired,
|
||||
setIsCreating: React.PropTypes.func.isRequired,
|
||||
|
||||
@ -162,11 +162,11 @@ List.propTypes = {
|
||||
count: React.PropTypes.oneOfType([
|
||||
React.PropTypes.number,
|
||||
React.PropTypes.bool,
|
||||
]),
|
||||
]).isRequired,
|
||||
currentModelName: React.PropTypes.oneOfType([
|
||||
React.PropTypes.string,
|
||||
React.PropTypes.bool,
|
||||
]),
|
||||
]).isRequired,
|
||||
currentPage: React.PropTypes.number.isRequired,
|
||||
exposedComponents: React.PropTypes.object.isRequired,
|
||||
history: React.PropTypes.object.isRequired,
|
||||
@ -178,18 +178,19 @@ List.propTypes = {
|
||||
models: React.PropTypes.oneOfType([
|
||||
React.PropTypes.object,
|
||||
React.PropTypes.bool,
|
||||
]),
|
||||
]).isRequired,
|
||||
onLimitChange: React.PropTypes.func.isRequired,
|
||||
params: React.PropTypes.object.isRequired,
|
||||
records: React.PropTypes.oneOfType([
|
||||
React.PropTypes.array,
|
||||
React.PropTypes.bool,
|
||||
]),
|
||||
]).isRequired,
|
||||
route: React.PropTypes.object.isRequired,
|
||||
routeParams: React.PropTypes.object.isRequired,
|
||||
schema: React.PropTypes.oneOfType([
|
||||
React.PropTypes.object,
|
||||
React.PropTypes.bool,
|
||||
]),
|
||||
]).isRequired,
|
||||
setCurrentModelName: React.PropTypes.func.isRequired,
|
||||
sort: React.PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
@ -33,15 +33,15 @@ const generateSchema = (models) => {
|
||||
|
||||
// Model relations
|
||||
schemaModel.relations = _.mapValues(_.pickBy(model.attributes, attribute =>
|
||||
attribute.model
|
||||
), (value, attribute) => ({
|
||||
columnName: attribute,
|
||||
model: value.model,
|
||||
attribute,
|
||||
label: _.upperFirst(attribute),
|
||||
description: '',
|
||||
displayedAttribute: _.findKey(models[value.model].attributes, { type: 'string' }) || 'id',
|
||||
})
|
||||
attribute.model
|
||||
), (value, attribute) => ({
|
||||
columnName: attribute,
|
||||
model: value.model,
|
||||
attribute,
|
||||
label: _.upperFirst(attribute),
|
||||
descripion: '',
|
||||
displayedAttribute: _.findKey(models[value.model].attributes, { type: 'string' }) || 'id',
|
||||
})
|
||||
);
|
||||
|
||||
// Set the formatted model to the schema
|
||||
|
||||
@ -48,16 +48,16 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"cross-env": "^3.1.3",
|
||||
"eslint": "^3.9.0",
|
||||
"eslint-config-airbnb": "^12.0.0",
|
||||
"eslint-config-airbnb-base": "^9.0.0",
|
||||
"eslint": "^4.4.1",
|
||||
"eslint-config-airbnb": "^15.1.0",
|
||||
"eslint-config-airbnb-base": "^11.3.1",
|
||||
"eslint-config-prettier": "^2.3.0",
|
||||
"eslint-import-resolver-webpack": "^0.6.0",
|
||||
"eslint-import-resolver-webpack": "^0.8.3",
|
||||
"eslint-plugin-babel": "^4.1.2",
|
||||
"eslint-plugin-import": "^2.0.1",
|
||||
"eslint-plugin-jsx-a11y": "^2.2.3",
|
||||
"eslint-plugin-react": "^6.4.1",
|
||||
"eslint-plugin-redux-saga": "^0.1.5",
|
||||
"eslint-plugin-import": "^2.7.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.0.2",
|
||||
"eslint-plugin-react": "^7.2.1",
|
||||
"eslint-plugin-redux-saga": "^0.4.0",
|
||||
"plop": "^1.5.0",
|
||||
"prettier": "^1.5.3",
|
||||
"rimraf": "^2.5.4",
|
||||
|
||||
@ -22,11 +22,11 @@ class Button extends React.Component {
|
||||
}
|
||||
|
||||
Button.propTypes = {
|
||||
addShape: React.PropTypes.bool,
|
||||
buttonBackground: React.PropTypes.string,
|
||||
buttonSize: React.PropTypes.string,
|
||||
handlei18n: React.PropTypes.bool,
|
||||
label: React.PropTypes.string.isRequired,
|
||||
addShape: React.PropTypes.bool.isRequired,
|
||||
buttonBackground: React.PropTypes.string.isRequired,
|
||||
buttonSize: React.PropTypes.string.isRequired,
|
||||
handlei18n: React.PropTypes.bool.isRequired,
|
||||
label: React.PropTypes.string.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default Button;
|
||||
|
||||
@ -22,8 +22,8 @@ class ContentHeader extends React.Component { // eslint-disable-line react/prefe
|
||||
}
|
||||
|
||||
ContentHeader.propTypes = {
|
||||
description: React.PropTypes.string,
|
||||
name: React.PropTypes.string,
|
||||
description: React.PropTypes.string.isRequired,
|
||||
name: React.PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
export default ContentHeader;
|
||||
|
||||
@ -56,13 +56,13 @@ class EditForm extends React.Component { // eslint-disable-line react/prefer-sta
|
||||
}
|
||||
|
||||
EditForm.propTypes = {
|
||||
cancelAction: React.PropTypes.bool,
|
||||
formErrors: React.PropTypes.array,
|
||||
handleCancel: React.PropTypes.func,
|
||||
handleChange: React.PropTypes.func.isRequired,
|
||||
handleSubmit: React.PropTypes.func,
|
||||
sections: React.PropTypes.array,
|
||||
values: React.PropTypes.object,
|
||||
cancelAction: React.PropTypes.bool.isRequired,
|
||||
formErrors: React.PropTypes.array.isRequired,
|
||||
handleCancel: React.PropTypes.func.isRequired,
|
||||
handleChange: React.PropTypes.func.isRequired.isRequired,
|
||||
handleSubmit: React.PropTypes.func.isRequired,
|
||||
sections: React.PropTypes.array.isRequired,
|
||||
values: React.PropTypes.object.isRequired,
|
||||
};
|
||||
|
||||
export default EditForm;
|
||||
|
||||
@ -56,13 +56,13 @@ class EditFormSection extends React.Component { // eslint-disable-line react/pre
|
||||
}
|
||||
|
||||
EditFormSection.propTypes = {
|
||||
formErrors: React.PropTypes.array,
|
||||
handleChange: React.PropTypes.func,
|
||||
renderInput: React.PropTypes.func,
|
||||
section: React.PropTypes.object,
|
||||
showNestedForm: React.PropTypes.bool,
|
||||
styles: React.PropTypes.object,
|
||||
values: React.PropTypes.object,
|
||||
formErrors: React.PropTypes.array.isRequired,
|
||||
handleChange: React.PropTypes.func.isRequired,
|
||||
renderInput: React.PropTypes.func.isRequired,
|
||||
section: React.PropTypes.object.isRequired,
|
||||
showNestedForm: React.PropTypes.bool.isRequired,
|
||||
styles: React.PropTypes.object.isRequired,
|
||||
values: React.PropTypes.object.isRequired,
|
||||
};
|
||||
|
||||
export default WithFormSection(EditFormSection); // eslint-disable-line new-cap
|
||||
|
||||
@ -47,7 +47,7 @@ class EditFormSectionNested extends React.Component { // eslint-disable-line rea
|
||||
this.setState({ showNestedForm: false });
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -81,15 +81,16 @@ class EditFormSectionNested extends React.Component { // eslint-disable-line rea
|
||||
}
|
||||
|
||||
EditFormSectionNested.propTypes = {
|
||||
formErrors: React.PropTypes.array,
|
||||
handleChange: React.PropTypes.func,
|
||||
renderInput: React.PropTypes.func,
|
||||
formErrors: React.PropTypes.array.isRequired,
|
||||
handleChange: React.PropTypes.func.isRequired,
|
||||
renderInput: React.PropTypes.func.isRequired,
|
||||
section: React.PropTypes.oneOfType([
|
||||
React.PropTypes.array,
|
||||
React.PropTypes.object,
|
||||
]),
|
||||
styles: React.PropTypes.object,
|
||||
values: React.PropTypes.object,
|
||||
React.PropTypes.array.isRequired,
|
||||
React.PropTypes.object.isRequired,
|
||||
]).isRequired,
|
||||
styles: React.PropTypes.object.isRequired,
|
||||
value: React.PropTypes.object.isRequired,
|
||||
values: React.PropTypes.object.isRequired,
|
||||
};
|
||||
|
||||
export default WithFormSection(EditFormSectionNested); // eslint-disable-line new-cap
|
||||
|
||||
@ -24,12 +24,12 @@ class EditFormSectionSubNested extends React.Component { // eslint-disable-line
|
||||
}
|
||||
|
||||
EditFormSectionSubNested.propTypes = {
|
||||
renderInput: React.PropTypes.func,
|
||||
renderInput: React.PropTypes.func.isRequired,
|
||||
section: React.PropTypes.oneOfType([
|
||||
React.PropTypes.array,
|
||||
React.PropTypes.object,
|
||||
]),
|
||||
styles: React.PropTypes.object,
|
||||
React.PropTypes.array.isRequired,
|
||||
React.PropTypes.object.isRequired,
|
||||
]).isRequired,
|
||||
styles: React.PropTypes.object.isRequired,
|
||||
};
|
||||
|
||||
export default WithFormSection(EditFormSectionSubNested); // eslint-disable-line new-cap
|
||||
|
||||
@ -48,8 +48,8 @@ class HeaderNav extends React.Component { // eslint-disable-line react/prefer-st
|
||||
}
|
||||
|
||||
HeaderNav.propTypes = {
|
||||
links: React.PropTypes.array,
|
||||
path: React.PropTypes.string,
|
||||
renderListComponent: React.PropTypes.bool,
|
||||
links: React.PropTypes.array.isRequired,
|
||||
path: React.PropTypes.string.isRequired,
|
||||
renderListComponent: React.PropTypes.bool.isRequired,
|
||||
}
|
||||
export default HeaderNav;
|
||||
|
||||
@ -44,12 +44,12 @@ class InputEnum extends React.Component { // eslint-disable-line react/prefer-st
|
||||
}
|
||||
|
||||
InputEnum.propTypes = {
|
||||
customBootstrapClass: React.PropTypes.string,
|
||||
handleChange: React.PropTypes.func.isRequired,
|
||||
name: React.PropTypes.string,
|
||||
selectOptions: React.PropTypes.array,
|
||||
target: React.PropTypes.string,
|
||||
value: React.PropTypes.any,
|
||||
customBootstrapClass: React.PropTypes.string.isRequired,
|
||||
handleChange: React.PropTypes.func.isRequired.isRequired,
|
||||
name: React.PropTypes.string.isRequired,
|
||||
selectOptions: React.PropTypes.array.isRequired,
|
||||
target: React.PropTypes.string.isRequired,
|
||||
value: React.PropTypes.any.isRequired,
|
||||
}
|
||||
|
||||
export default InputEnum;
|
||||
|
||||
@ -127,18 +127,21 @@ class InputNumber extends React.Component { // eslint-disable-line react/prefer-
|
||||
const bootStrapClassDanger = !this.props.deactivateErrorHighlight && !isEmpty(this.state.errors) ? 'has-danger' : '';
|
||||
const placeholder = this.props.placeholder || this.props.name;
|
||||
|
||||
const input = placeholder ? this.renderFormattedInput(handleBlur, inputValue, placeholder)
|
||||
: <input
|
||||
type="number"
|
||||
name={this.props.target}
|
||||
id={this.props.name}
|
||||
value={inputValue}
|
||||
onBlur={handleBlur}
|
||||
onChange={this.props.handleChange}
|
||||
onFocus={this.props.handleFocus}
|
||||
className={`form-control ${this.state.errors? 'form-control-danger' : ''}`}
|
||||
placeholder={placeholder}
|
||||
/>;
|
||||
const input = placeholder
|
||||
? this.renderFormattedInput(handleBlur, inputValue, placeholder)
|
||||
: (
|
||||
<input
|
||||
type="number"
|
||||
name={this.props.target}
|
||||
id={this.props.name}
|
||||
value={inputValue}
|
||||
onBlur={handleBlur}
|
||||
onChange={this.props.handleChange}
|
||||
onFocus={this.props.handleFocus}
|
||||
className={`form-control ${this.state.errors? 'form-control-danger' : ''}`}
|
||||
placeholder={placeholder}
|
||||
/>
|
||||
);
|
||||
|
||||
const requiredClass = this.props.validations.required && this.props.addRequiredInputDesign ? this.props.styles.requiredClass : '';
|
||||
|
||||
@ -154,27 +157,27 @@ class InputNumber extends React.Component { // eslint-disable-line react/prefer-
|
||||
}
|
||||
|
||||
InputNumber.propTypes = {
|
||||
addRequiredInputDesign: React.PropTypes.bool,
|
||||
customBootstrapClass: React.PropTypes.string,
|
||||
deactivateErrorHighlight: React.PropTypes.bool,
|
||||
addRequiredInputDesign: React.PropTypes.bool.isRequired,
|
||||
customBootstrapClass: React.PropTypes.string.isRequired,
|
||||
deactivateErrorHighlight: React.PropTypes.bool.isRequired,
|
||||
errors: React.PropTypes.oneOfType([
|
||||
React.PropTypes.bool,
|
||||
React.PropTypes.array,
|
||||
]),
|
||||
handleBlur: React.PropTypes.func,
|
||||
handleChange: React.PropTypes.func.isRequired,
|
||||
handleFocus: React.PropTypes.func,
|
||||
inputDescription: React.PropTypes.string,
|
||||
name: React.PropTypes.string.isRequired,
|
||||
noErrorsDescription: React.PropTypes.bool,
|
||||
placeholder: React.PropTypes.string,
|
||||
styles: React.PropTypes.object,
|
||||
target: React.PropTypes.string.isRequired,
|
||||
validations: React.PropTypes.object.isRequired,
|
||||
React.PropTypes.bool.isRequired,
|
||||
React.PropTypes.array.isRequired,
|
||||
]).isRequired,
|
||||
handleBlur: React.PropTypes.func.isRequired,
|
||||
handleChange: React.PropTypes.func.isRequired.isRequired,
|
||||
handleFocus: React.PropTypes.func.isRequired,
|
||||
inputDescription: React.PropTypes.string.isRequired,
|
||||
name: React.PropTypes.string.isRequired.isRequired,
|
||||
noErrorsDescription: React.PropTypes.bool.isRequired,
|
||||
placeholder: React.PropTypes.string.isRequired,
|
||||
styles: React.PropTypes.object.isRequired,
|
||||
target: React.PropTypes.string.isRequired.isRequired,
|
||||
validations: React.PropTypes.object.isRequired.isRequired,
|
||||
value: React.PropTypes.oneOfType([
|
||||
React.PropTypes.number.isRequired,
|
||||
React.PropTypes.string.isRequired,
|
||||
]),
|
||||
React.PropTypes.number.isRequired.isRequired,
|
||||
React.PropTypes.string.isRequired.isRequired,
|
||||
]).isRequired,
|
||||
}
|
||||
|
||||
export default WithInput(InputNumber); // eslint-disable-line new-cap
|
||||
|
||||
@ -144,20 +144,20 @@ class InputPassword extends React.Component { // eslint-disable-line react/prefe
|
||||
}
|
||||
|
||||
InputPassword.propTypes = {
|
||||
customBootstrapClass: React.PropTypes.string,
|
||||
deactivateErrorHighlight: React.PropTypes.bool,
|
||||
errors: React.PropTypes.array,
|
||||
handleBlur: React.PropTypes.func,
|
||||
handleChange: React.PropTypes.func.isRequired,
|
||||
handleFocus: React.PropTypes.func,
|
||||
inputDescription: React.PropTypes.string,
|
||||
name: React.PropTypes.string.isRequired,
|
||||
noErrorsDescription: React.PropTypes.bool,
|
||||
placeholder: React.PropTypes.string,
|
||||
styles: React.PropTypes.object,
|
||||
target: React.PropTypes.string.isRequired,
|
||||
validations: React.PropTypes.object.isRequired,
|
||||
value: React.PropTypes.string,
|
||||
customBootstrapClass: React.PropTypes.string.isRequired,
|
||||
deactivateErrorHighlight: React.PropTypes.bool.isRequired,
|
||||
errors: React.PropTypes.array.isRequired,
|
||||
handleBlur: React.PropTypes.func.isRequired,
|
||||
handleChange: React.PropTypes.func.isRequired.isRequired,
|
||||
handleFocus: React.PropTypes.func.isRequired,
|
||||
inputDescription: React.PropTypes.string.isRequired,
|
||||
name: React.PropTypes.string.isRequired.isRequired,
|
||||
noErrorsDescription: React.PropTypes.bool.isRequired,
|
||||
placeholder: React.PropTypes.string.isRequired,
|
||||
styles: React.PropTypes.object.isRequired,
|
||||
target: React.PropTypes.string.isRequired.isRequired,
|
||||
validations: React.PropTypes.object.isRequired.isRequired,
|
||||
value: React.PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
export default WithInput(InputPassword); // eslint-disable-line new-cap
|
||||
|
||||
@ -50,17 +50,17 @@ class InputSelect extends React.Component { // eslint-disable-line react/prefer-
|
||||
}
|
||||
|
||||
InputSelect.propTypes = {
|
||||
addRequiredInputDesign: React.PropTypes.bool,
|
||||
customBootstrapClass: React.PropTypes.string,
|
||||
handleChange: React.PropTypes.func.isRequired,
|
||||
name: React.PropTypes.string.isRequired,
|
||||
addRequiredInputDesign: React.PropTypes.bool.isRequired,
|
||||
customBootstrapClass: React.PropTypes.string.isRequired,
|
||||
handleChange: React.PropTypes.func.isRequired.isRequired,
|
||||
name: React.PropTypes.string.isRequired.isRequired,
|
||||
selectOptions: React.PropTypes.oneOfType([
|
||||
React.PropTypes.array,
|
||||
React.PropTypes.object, // TODO remove
|
||||
]),
|
||||
target: React.PropTypes.string,
|
||||
validations: React.PropTypes.object,
|
||||
value: React.PropTypes.string,
|
||||
React.PropTypes.array.isRequired,
|
||||
React.PropTypes.object.isRequired, // TODO remove
|
||||
]).isRequired,
|
||||
target: React.PropTypes.string.isRequired,
|
||||
validations: React.PropTypes.object.isRequired,
|
||||
value: React.PropTypes.string.isRequired,
|
||||
};
|
||||
|
||||
export default InputSelect;
|
||||
|
||||
@ -148,18 +148,21 @@ class InputText extends React.Component { // eslint-disable-line react/prefer-st
|
||||
const label = this.props.name ? <label htmlFor={this.props.name}><FormattedMessage id={`settings-manager.${this.props.name}`} /></label> : '';
|
||||
const spacer = !this.props.name ? {marginTop: '2.4rem'} : {marginTop: ''};
|
||||
|
||||
const input = placeholder ? this.renderFormattedInput(handleBlur, inputValue, placeholder)
|
||||
: <input
|
||||
name={this.props.target}
|
||||
id={this.props.name}
|
||||
onBlur={handleBlur}
|
||||
onFocus={this.props.handleFocus}
|
||||
onChange={this.props.handleChange}
|
||||
value={inputValue}
|
||||
type="text"
|
||||
className={`form-control ${this.state.errors? 'form-control-danger' : ''}`}
|
||||
placeholder={placeholder}
|
||||
/>;
|
||||
const input = placeholder
|
||||
? this.renderFormattedInput(handleBlur, inputValue, placeholder)
|
||||
: (
|
||||
<input
|
||||
name={this.props.target}
|
||||
id={this.props.name}
|
||||
onBlur={handleBlur}
|
||||
onFocus={this.props.handleFocus}
|
||||
onChange={this.props.handleChange}
|
||||
value={inputValue}
|
||||
type="text"
|
||||
className={`form-control ${this.state.errors? 'form-control-danger' : ''}`}
|
||||
placeholder={placeholder}
|
||||
/>
|
||||
);
|
||||
|
||||
|
||||
const requiredClass = this.props.validations.required && this.props.addRequiredInputDesign ? this.props.styles.requiredClass : '';
|
||||
@ -176,21 +179,21 @@ class InputText extends React.Component { // eslint-disable-line react/prefer-st
|
||||
}
|
||||
|
||||
InputText.propTypes = {
|
||||
addRequiredInputDesign: React.PropTypes.bool,
|
||||
customBootstrapClass: React.PropTypes.string,
|
||||
deactivateErrorHighlight: React.PropTypes.bool,
|
||||
errors: React.PropTypes.array,
|
||||
handleBlur: React.PropTypes.func,
|
||||
handleChange: React.PropTypes.func.isRequired,
|
||||
handleFocus: React.PropTypes.func,
|
||||
inputDescription: React.PropTypes.string,
|
||||
name: React.PropTypes.string.isRequired,
|
||||
noErrorsDescription: React.PropTypes.bool,
|
||||
placeholder: React.PropTypes.string,
|
||||
styles: React.PropTypes.object,
|
||||
target: React.PropTypes.string,
|
||||
validations: React.PropTypes.object.isRequired,
|
||||
value: React.PropTypes.string,
|
||||
addRequiredInputDesign: React.PropTypes.bool.isRequired,
|
||||
customBootstrapClass: React.PropTypes.string.isRequired,
|
||||
deactivateErrorHighlight: React.PropTypes.bool.isRequired,
|
||||
errors: React.PropTypes.array.isRequired,
|
||||
handleBlur: React.PropTypes.func.isRequired,
|
||||
handleChange: React.PropTypes.func.isRequired.isRequired,
|
||||
handleFocus: React.PropTypes.func.isRequired,
|
||||
inputDescription: React.PropTypes.string.isRequired,
|
||||
name: React.PropTypes.string.isRequired.isRequired,
|
||||
noErrorsDescription: React.PropTypes.bool.isRequired,
|
||||
placeholder: React.PropTypes.string.isRequired,
|
||||
styles: React.PropTypes.object.isRequired,
|
||||
target: React.PropTypes.string.isRequired,
|
||||
validations: React.PropTypes.object.isRequired.isRequired,
|
||||
value: React.PropTypes.string.isRequired,
|
||||
}
|
||||
|
||||
export default WithInput(InputText); // eslint-disable-line new-cap
|
||||
|
||||
@ -72,12 +72,12 @@ class InputToggle extends React.Component { // eslint-disable-line react/prefer-
|
||||
}
|
||||
|
||||
InputToggle.propTypes = {
|
||||
customBootstrapClass: React.PropTypes.string,
|
||||
handleChange: React.PropTypes.func.isRequired,
|
||||
hiddenLabel: React.PropTypes.bool,
|
||||
isChecked: React.PropTypes.bool,
|
||||
name: React.PropTypes.string,
|
||||
target: React.PropTypes.string.isRequired,
|
||||
customBootstrapClass: React.PropTypes.string.isRequired,
|
||||
handleChange: React.PropTypes.func.isRequired.isRequired,
|
||||
hiddenLabel: React.PropTypes.bool.isRequired,
|
||||
isChecked: React.PropTypes.bool.isRequired,
|
||||
name: React.PropTypes.string.isRequired,
|
||||
target: React.PropTypes.string.isRequired.isRequired,
|
||||
}
|
||||
|
||||
export default InputToggle;
|
||||
|
||||
@ -51,14 +51,17 @@ class List extends React.Component { // eslint-disable-line react/prefer-statele
|
||||
}
|
||||
|
||||
render() {
|
||||
const button = this.props.noListButtonPopUp ? '' :
|
||||
<ButtonPrimaryHotline
|
||||
buttonBackground={'secondaryAddType'}
|
||||
label={this.props.listButtonLabel}
|
||||
handlei18n={this.props.handlei18n}
|
||||
addShape
|
||||
onClick={this.toggle}
|
||||
/>;
|
||||
const button = this.props.noListButtonPopUp
|
||||
? ''
|
||||
: (
|
||||
<ButtonPrimaryHotline
|
||||
buttonBackground={'secondaryAddType'}
|
||||
label={this.props.listButtonLabel}
|
||||
handlei18n={this.props.handlei18n}
|
||||
addShape
|
||||
onClick={this.toggle}
|
||||
/>
|
||||
);
|
||||
|
||||
const addListTitleMarginTop = this.props.addListTitleMarginTop ? styles.paddedTopList : '';
|
||||
|
||||
@ -128,22 +131,23 @@ class List extends React.Component { // eslint-disable-line react/prefer-statele
|
||||
}
|
||||
|
||||
List.propTypes = {
|
||||
actionBeforeOpenPopUp: React.PropTypes.func,
|
||||
addListTitleMarginTop: React.PropTypes.bool,
|
||||
error: React.PropTypes.bool,
|
||||
handlei18n: React.PropTypes.bool,
|
||||
handleListPopUpSubmit: React.PropTypes.func,
|
||||
listButtonLabel: React.PropTypes.string,
|
||||
listItems: React.PropTypes.array,
|
||||
actionBeforeOpenPopUp: React.PropTypes.func.isRequired,
|
||||
addListTitleMarginTop: React.PropTypes.bool.isRequired,
|
||||
error: React.PropTypes.bool.isRequired,
|
||||
formErrors: React.PropTypes.array.isRequired,
|
||||
handlei18n: React.PropTypes.bool.isRequired,
|
||||
handleListPopUpSubmit: React.PropTypes.func.isRequired,
|
||||
listButtonLabel: React.PropTypes.string.isRequired,
|
||||
listItems: React.PropTypes.array.isRequired,
|
||||
listTitle: React.PropTypes.oneOfType([
|
||||
React.PropTypes.string,
|
||||
React.PropTypes.object,
|
||||
]),
|
||||
noListButtonPopUp: React.PropTypes.bool,
|
||||
React.PropTypes.string.isRequired,
|
||||
React.PropTypes.object.isRequired,
|
||||
]).isRequired,
|
||||
noListButtonPopUp: React.PropTypes.bool.isRequired,
|
||||
renderRow: React.PropTypes.oneOfType([
|
||||
React.PropTypes.bool,
|
||||
React.PropTypes.func,
|
||||
]),
|
||||
React.PropTypes.bool.isRequired,
|
||||
React.PropTypes.func.isRequired,
|
||||
]).isRequired,
|
||||
}
|
||||
|
||||
export default List;
|
||||
|
||||
@ -22,9 +22,9 @@ class PluginLeftMenu extends React.Component { // eslint-disable-line react/pref
|
||||
}
|
||||
|
||||
PluginLeftMenu.propTypes = {
|
||||
environments: React.PropTypes.array,
|
||||
envParams: React.PropTypes.string,
|
||||
sections: React.PropTypes.array.isRequired,
|
||||
environments: React.PropTypes.array.isRequired,
|
||||
envParams: React.PropTypes.string.isRequired,
|
||||
sections: React.PropTypes.array.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default PluginLeftMenu;
|
||||
|
||||
@ -46,10 +46,10 @@ class PluginLeftMenuLink extends React.Component { // eslint-disable-line react/
|
||||
}
|
||||
|
||||
PluginLeftMenuLink.propTypes = {
|
||||
environments: React.PropTypes.array,
|
||||
environmentsRequired: React.PropTypes.bool,
|
||||
envParams: React.PropTypes.string,
|
||||
link: React.PropTypes.object.isRequired,
|
||||
environments: React.PropTypes.array.isRequired,
|
||||
environmentsRequired: React.PropTypes.bool.isRequired,
|
||||
envParams: React.PropTypes.string.isRequired,
|
||||
link: React.PropTypes.object.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default PluginLeftMenuLink;
|
||||
|
||||
@ -38,9 +38,9 @@ class PluginLeftMenuSection extends React.Component { // eslint-disable-line rea
|
||||
}
|
||||
|
||||
PluginLeftMenuSection.propTypes = {
|
||||
environments: React.PropTypes.array,
|
||||
envParams: React.PropTypes.string,
|
||||
section: React.PropTypes.object.isRequired,
|
||||
environments: React.PropTypes.array.isRequired,
|
||||
envParams: React.PropTypes.string.isRequired,
|
||||
section: React.PropTypes.object.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default PluginLeftMenuSection;
|
||||
|
||||
@ -41,12 +41,12 @@ class PopUpForm extends React.Component { // eslint-disable-line react/prefer-st
|
||||
}
|
||||
|
||||
PopUpForm.propTypes = {
|
||||
renderInput: React.PropTypes.func.isRequired,
|
||||
renderInput: React.PropTypes.func.isRequired.isRequired,
|
||||
renderPopUpForm: React.PropTypes.oneOfType([
|
||||
React.PropTypes.func,
|
||||
React.PropTypes.bool,
|
||||
]),
|
||||
sections: React.PropTypes.array,
|
||||
React.PropTypes.func.isRequired,
|
||||
React.PropTypes.bool.isRequired,
|
||||
]).isRequired,
|
||||
sections: React.PropTypes.array.isRequired,
|
||||
};
|
||||
|
||||
export default WithFormSection(PopUpForm); // eslint-disable-line new-cap
|
||||
|
||||
@ -68,13 +68,13 @@ class PopUpWarning extends React.Component { // eslint-disable-line react/prefer
|
||||
}
|
||||
|
||||
PopUpWarning.propTypes = {
|
||||
dangerMessage: React.PropTypes.string,
|
||||
handleConfirm: React.PropTypes.func,
|
||||
handleConfirmDanger: React.PropTypes.func,
|
||||
isOpen: React.PropTypes.bool.isRequired,
|
||||
showDanger: React.PropTypes.bool,
|
||||
toggleModal: React.PropTypes.func.isRequired,
|
||||
warningMessage: React.PropTypes.string,
|
||||
dangerMessage: React.PropTypes.string.isRequired,
|
||||
handleConfirm: React.PropTypes.func.isRequired,
|
||||
handleConfirmDanger: React.PropTypes.func.isRequired,
|
||||
isOpen: React.PropTypes.bool.isRequired.isRequired,
|
||||
showDanger: React.PropTypes.bool.isRequired,
|
||||
toggleModal: React.PropTypes.func.isRequired.isRequired,
|
||||
warningMessage: React.PropTypes.string.isRequired,
|
||||
}
|
||||
|
||||
export default PopUpWarning;
|
||||
|
||||
@ -119,11 +119,12 @@ class RowDatabase extends React.Component { // eslint-disable-line react/prefer-
|
||||
}
|
||||
|
||||
RowDatabase.propTypes = {
|
||||
data: React.PropTypes.object.isRequired,
|
||||
error: React.PropTypes.bool,
|
||||
getDatabase: React.PropTypes.func,
|
||||
handleDatabaseDelete: React.PropTypes.func,
|
||||
handleSubmit: React.PropTypes.func,
|
||||
}
|
||||
data: React.PropTypes.object.isRequired.isRequired,
|
||||
error: React.PropTypes.bool.isRequired,
|
||||
formErrors: React.PropTypes.array.isRequired,
|
||||
getDatabase: React.PropTypes.func.isRequired,
|
||||
handleDatabaseDelete: React.PropTypes.func.isRequired,
|
||||
handleSubmit: React.PropTypes.func.isRequired,
|
||||
};
|
||||
|
||||
export default RowDatabase;
|
||||
|
||||
@ -38,23 +38,27 @@ class RowLanguage extends React.Component { // eslint-disable-line react/prefer-
|
||||
// apply i18n
|
||||
const languageDisplay = isObject(languageObject) ? <FormattedMessage {...{ id: `settings-manager.${languageObject.name}` }} /> : '';
|
||||
|
||||
const languageLabel = this.props.active ?
|
||||
<FormattedMessage id="settings-manager.list.languages.default.languages">
|
||||
{(message) => (
|
||||
const languageLabel = this.props.active
|
||||
? (
|
||||
<FormattedMessage id="settings-manager.list.languages.default.languages">
|
||||
{(message) => (
|
||||
|
||||
<div className={this.props.liStyles.italicText} >
|
||||
{message}
|
||||
</div>
|
||||
)}
|
||||
</FormattedMessage> :
|
||||
// set the span's id with the language name to retrieve it
|
||||
<div className={this.props.liStyles.italicText} >
|
||||
{message}
|
||||
</div>
|
||||
)}
|
||||
</FormattedMessage>
|
||||
)
|
||||
: (
|
||||
// set the span's id with the language name to retrieve it
|
||||
<FormattedMessage id="settings-manager.list.languages.set.languages">
|
||||
{(message) => (
|
||||
<button className={this.props.liStyles.normal} onClick={this.props.changeDefaultLanguage} id={this.props.name}>
|
||||
{message}
|
||||
</button>
|
||||
)}
|
||||
</FormattedMessage>;
|
||||
</FormattedMessage>
|
||||
);
|
||||
|
||||
return (
|
||||
<li>
|
||||
@ -84,12 +88,12 @@ class RowLanguage extends React.Component { // eslint-disable-line react/prefer-
|
||||
}
|
||||
|
||||
RowLanguage.propTypes = {
|
||||
active: React.PropTypes.bool,
|
||||
changeDefaultLanguage: React.PropTypes.func.isRequired,
|
||||
handleLanguageDelete: React.PropTypes.func.isRequired,
|
||||
listLanguages: React.PropTypes.object.isRequired,
|
||||
liStyles: React.PropTypes.object,
|
||||
name: React.PropTypes.string.isRequired,
|
||||
active: React.PropTypes.bool.isRequired,
|
||||
changeDefaultLanguage: React.PropTypes.func.isRequired.isRequired,
|
||||
handleLanguageDelete: React.PropTypes.func.isRequired.isRequired,
|
||||
listLanguages: React.PropTypes.object.isRequired.isRequired,
|
||||
liStyles: React.PropTypes.object.isRequired,
|
||||
name: React.PropTypes.string.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default RowLanguage;
|
||||
|
||||
@ -39,10 +39,10 @@ class SelectOptionLanguage extends React.Component { // eslint-disable-line reac
|
||||
}
|
||||
|
||||
SelectOptionLanguage.propTypes = {
|
||||
isFocused: React.PropTypes.bool,
|
||||
onFocus: React.PropTypes.func,
|
||||
onSelect: React.PropTypes.func,
|
||||
option: React.PropTypes.object.isRequired,
|
||||
isFocused: React.PropTypes.bool.isRequired,
|
||||
onFocus: React.PropTypes.func.isRequired,
|
||||
onSelect: React.PropTypes.func.isRequired,
|
||||
option: React.PropTypes.object.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export default SelectOptionLanguage;
|
||||
|
||||
@ -19,15 +19,15 @@ import styles from './styles.scss';
|
||||
|
||||
const WithFormSection = (InnerComponent) => class extends React.Component {
|
||||
static propTypes = {
|
||||
addRequiredInputDesign: React.PropTypes.bool,
|
||||
cancelAction: React.PropTypes.bool,
|
||||
formErrors: React.PropTypes.array,
|
||||
handleChange: React.PropTypes.func.isRequired,
|
||||
addRequiredInputDesign: React.PropTypes.bool.isRequired,
|
||||
cancelAction: React.PropTypes.bool.isRequired,
|
||||
formErrors: React.PropTypes.array.isRequired,
|
||||
handleChange: React.PropTypes.func.isRequired.isRequired,
|
||||
section: React.PropTypes.oneOfType([
|
||||
React.PropTypes.object,
|
||||
React.PropTypes.array,
|
||||
]),
|
||||
values: React.PropTypes.object,
|
||||
React.PropTypes.object.isRequired,
|
||||
React.PropTypes.array.isRequired,
|
||||
]).isRequired,
|
||||
values: React.PropTypes.object.isRequired,
|
||||
}
|
||||
|
||||
constructor(props) {
|
||||
|
||||
@ -50,18 +50,18 @@ class App extends React.Component {
|
||||
}
|
||||
|
||||
App.contextTypes = {
|
||||
router: React.PropTypes.object.isRequired,
|
||||
router: React.PropTypes.object.isRequired.isRequired,
|
||||
};
|
||||
|
||||
App.propTypes = {
|
||||
children: React.PropTypes.node.isRequired,
|
||||
environments: React.PropTypes.array,
|
||||
environmentsFetch: React.PropTypes.func,
|
||||
exposedComponents: React.PropTypes.object.isRequired,
|
||||
loading: React.PropTypes.bool,
|
||||
menuFetch: React.PropTypes.func,
|
||||
params: React.PropTypes.object,
|
||||
sections: React.PropTypes.array.isRequired,
|
||||
children: React.PropTypes.node.isRequired.isRequired,
|
||||
environments: React.PropTypes.array.isRequired,
|
||||
environmentsFetch: React.PropTypes.func.isRequired,
|
||||
exposedComponents: React.PropTypes.object.isRequired.isRequired,
|
||||
loading: React.PropTypes.bool.isRequired,
|
||||
menuFetch: React.PropTypes.func.isRequired,
|
||||
params: React.PropTypes.object.isRequired,
|
||||
sections: React.PropTypes.array.isRequired.isRequired,
|
||||
};
|
||||
|
||||
export function mapDispatchToProps(dispatch) {
|
||||
@ -72,7 +72,7 @@ export function mapDispatchToProps(dispatch) {
|
||||
},
|
||||
dispatch
|
||||
);
|
||||
};
|
||||
}
|
||||
|
||||
const mapStateToProps = createStructuredSelector({
|
||||
sections: makeSelectSections(),
|
||||
|
||||
@ -430,9 +430,9 @@ export class HomePage extends React.Component { // eslint-disable-line react/pre
|
||||
}
|
||||
|
||||
setDefaultConnectionDb = () => {
|
||||
const value = this.state.toggleDefaultConnection ?
|
||||
this.props.home.addDatabaseSection.sections[1].items[0].value
|
||||
: this.props.home.modifiedData[this.props.home.dbNameTarget];
|
||||
const value = this.state.toggleDefaultConnection
|
||||
? this.props.home.addDatabaseSection.sections[1].items[0].value
|
||||
: this.props.home.modifiedData[this.props.home.dbNameTarget];
|
||||
const target = { name: 'database.defaultConnection', value };
|
||||
this.handleChange({target});
|
||||
this.setState({ toggleDefaultConnection: !this.state.toggleDefaultConnection });
|
||||
@ -507,26 +507,26 @@ function mapDispatchToProps(dispatch) {
|
||||
}
|
||||
|
||||
HomePage.propTypes = {
|
||||
cancelChanges: React.PropTypes.func,
|
||||
changeDefaultLanguage: React.PropTypes.func,
|
||||
changeInput: React.PropTypes.func,
|
||||
configFetch: React.PropTypes.func.isRequired,
|
||||
databaseDelete: React.PropTypes.func,
|
||||
databaseEdit: React.PropTypes.func,
|
||||
databasesFetch: React.PropTypes.func,
|
||||
editSettings: React.PropTypes.func,
|
||||
emptyDbModifiedData: React.PropTypes.func,
|
||||
environments: React.PropTypes.array,
|
||||
home: React.PropTypes.object,
|
||||
languageDelete: React.PropTypes.func,
|
||||
languagesFetch: React.PropTypes.func,
|
||||
location: React.PropTypes.object,
|
||||
menuSections: React.PropTypes.array,
|
||||
newDatabasePost: React.PropTypes.func,
|
||||
newLanguagePost: React.PropTypes.func,
|
||||
params: React.PropTypes.object.isRequired,
|
||||
setErrors: React.PropTypes.func,
|
||||
specificDatabaseFetch: React.PropTypes.func,
|
||||
cancelChanges: React.PropTypes.func.isRequired,
|
||||
changeDefaultLanguage: React.PropTypes.func.isRequired,
|
||||
changeInput: React.PropTypes.func.isRequired,
|
||||
configFetch: React.PropTypes.func.isRequired.isRequired,
|
||||
databaseDelete: React.PropTypes.func.isRequired,
|
||||
databaseEdit: React.PropTypes.func.isRequired,
|
||||
databasesFetch: React.PropTypes.func.isRequired,
|
||||
editSettings: React.PropTypes.func.isRequired,
|
||||
emptyDbModifiedData: React.PropTypes.func.isRequired,
|
||||
environments: React.PropTypes.array.isRequired,
|
||||
home: React.PropTypes.object.isRequired,
|
||||
languageDelete: React.PropTypes.func.isRequired,
|
||||
languagesFetch: React.PropTypes.func.isRequired,
|
||||
location: React.PropTypes.object.isRequired,
|
||||
menuSections: React.PropTypes.array.isRequired,
|
||||
newDatabasePost: React.PropTypes.func.isRequired,
|
||||
newLanguagePost: React.PropTypes.func.isRequired,
|
||||
params: React.PropTypes.object.isRequired.isRequired,
|
||||
setErrors: React.PropTypes.func.isRequired,
|
||||
specificDatabaseFetch: React.PropTypes.func.isRequired,
|
||||
};
|
||||
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(HomePage);
|
||||
|
||||
@ -60,9 +60,9 @@ function homePageReducer(state = initialState, action) {
|
||||
return state.updateIn(['modifiedData', action.key], () => action.value);
|
||||
case CANCEL_CHANGES:
|
||||
return state
|
||||
.set('modifiedData', state.get('initialData'))
|
||||
.set('formErrors', [])
|
||||
.set('cancelAction', !state.get('cancelAction'));
|
||||
.set('modifiedData', state.get('initialData'))
|
||||
.set('formErrors', [])
|
||||
.set('cancelAction', !state.get('cancelAction'));
|
||||
case DATABASES_FETCH_SUCCEEDED:
|
||||
return state
|
||||
.set('configsDisplay', OrderedMap(action.configsDisplay))
|
||||
@ -123,10 +123,10 @@ function homePageReducer(state = initialState, action) {
|
||||
case EMPTY_DB_MODIFIED_DATA:
|
||||
const defaultDbConnection = state.getIn(['modifiedData', 'database.defaultConnection']);
|
||||
return state
|
||||
.set('modifiedData', Map())
|
||||
.set('dbNameTarget', 'database.connections.${name}.name') // eslint-disable-line no-template-curly-in-string
|
||||
.set('formErrors', [])
|
||||
.setIn(['modifiedData', 'database.defaultConnection'], defaultDbConnection);
|
||||
.set('modifiedData', Map())
|
||||
.set('dbNameTarget', 'database.connections.${name}.name') // eslint-disable-line no-template-curly-in-string
|
||||
.set('formErrors', [])
|
||||
.setIn(['modifiedData', 'database.defaultConnection'], defaultDbConnection);
|
||||
case NEW_LANGUAGE_POST:
|
||||
const sections = state.getIn(['configsDisplay', 'sections']);
|
||||
sections.push({ active: false, name: state.getIn(['modifiedData', 'language.defaultLocale']) });
|
||||
|
||||
@ -9,9 +9,9 @@ export default function sendUpdatedParams() {
|
||||
body[key] = value;
|
||||
}
|
||||
else if (key === 'security.xframe.value.nested' && prevSettings['security.xframe.value.nested'] !== this.props.home.modifiedData['security.xframe.value.nested'] && this.props.home.modifiedData['security.xframe.value'] === 'ALLOW-FROM') {
|
||||
const xFrameValue = includes(this.props.home.modifiedData['security.xframe.value.nested'], 'ALLOW-FROM') ?
|
||||
`ALLOW-FROM ${this.props.home.modifiedData['security.xframe.value.nested']}`
|
||||
: `ALLOW-FROM.ALLOW-FROM ${this.props.home.modifiedData['security.xframe.value.nested']}`;
|
||||
const xFrameValue = includes(this.props.home.modifiedData['security.xframe.value.nested'], 'ALLOW-FROM')
|
||||
? `ALLOW-FROM ${this.props.home.modifiedData['security.xframe.value.nested']}`
|
||||
: `ALLOW-FROM.ALLOW-FROM ${this.props.home.modifiedData['security.xframe.value.nested']}`;
|
||||
|
||||
body['security.xframe.value'] = xFrameValue;
|
||||
}
|
||||
|
||||
@ -34,16 +34,16 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"cross-env": "^3.1.3",
|
||||
"eslint": "^3.9.0",
|
||||
"eslint-config-airbnb": "^12.0.0",
|
||||
"eslint-config-airbnb-base": "^9.0.0",
|
||||
"eslint": "^4.4.1",
|
||||
"eslint-config-airbnb": "^15.1.0",
|
||||
"eslint-config-airbnb-base": "^11.3.1",
|
||||
"eslint-config-prettier": "^2.3.0",
|
||||
"eslint-import-resolver-webpack": "^0.6.0",
|
||||
"eslint-import-resolver-webpack": "^0.8.3",
|
||||
"eslint-plugin-babel": "^4.1.2",
|
||||
"eslint-plugin-import": "^2.0.1",
|
||||
"eslint-plugin-jsx-a11y": "^2.2.3",
|
||||
"eslint-plugin-react": "^6.4.1",
|
||||
"eslint-plugin-redux-saga": "^0.1.5",
|
||||
"eslint-plugin-import": "^2.7.0",
|
||||
"eslint-plugin-jsx-a11y": "^6.0.2",
|
||||
"eslint-plugin-react": "^7.2.1",
|
||||
"eslint-plugin-redux-saga": "^0.4.0",
|
||||
"plop": "^1.5.0",
|
||||
"prettier": "^1.5.3",
|
||||
"rimraf": "^2.5.4",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user