1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-04-15 01:16:22 +02:00

Merge branch 'master' into signout.proxy.friendly

This commit is contained in:
ckrych 2018-04-19 10:40:51 +02:00 committed by GitHub
commit 96f6be48d4
8 changed files with 74 additions and 49 deletions

View File

@ -83,8 +83,8 @@
"react-test-renderer": "^16.2.0", "react-test-renderer": "^16.2.0",
"redux-devtools": "^3.3.1", "redux-devtools": "^3.3.1",
"redux-mock-store": "^1.5.1", "redux-mock-store": "^1.5.1",
"sass-loader": "^6.0.6", "sass-loader": "^7.0.1",
"style-loader": "^0.20.0", "style-loader": "^0.21.0",
"toolbox-loader": "0.0.3", "toolbox-loader": "0.0.3",
"webpack": "^3.1.0", "webpack": "^3.1.0",
"webpack-dev-server": "^2.6.1" "webpack-dev-server": "^2.6.1"

View File

@ -22,7 +22,7 @@ exports[`renders correctly with one feature 1`] = `
> >
<react-mdl-Switch <react-mdl-Switch
checked={false} checked={false}
disabled={true} disabled={false}
onChange={[Function]} onChange={[Function]}
title="Toggle Another" title="Toggle Another"
/> />

View File

@ -42,7 +42,7 @@ const Feature = ({
</span> </span>
<span className={styles.listItemToggle}> <span className={styles.listItemToggle}>
<Switch <Switch
disabled={toggleFeature !== undefined} disabled={toggleFeature === undefined}
title={`Toggle ${name}`} title={`Toggle ${name}`}
key="left-actions" key="left-actions"
onChange={() => toggleFeature(name)} onChange={() => toggleFeature(name)}

View File

@ -27,6 +27,7 @@ ShallowWrapper {
"name": "feature", "name": "feature",
"nameError": Object {}, "nameError": Object {},
}, },
undefined,
], ],
], ],
} }

View File

@ -14,15 +14,23 @@ class UpdateFeatureComponent extends Component {
} }
render() { render() {
const { input, addStrategy, removeStrategy, updateStrategy, moveStrategy, onSubmit, onCancel } = this.props; const {
input,
features,
addStrategy,
removeStrategy,
updateStrategy,
moveStrategy,
onSubmit,
onCancel,
} = this.props;
const { const {
name, // eslint-disable-line name, // eslint-disable-line
} = input; } = input;
const configuredStrategies = input.strategies || []; const configuredStrategies = input.strategies || [];
return ( return (
<form onSubmit={onSubmit(input)}> <form onSubmit={onSubmit(input, features)}>
<section style={{ padding: '16px' }}> <section style={{ padding: '16px' }}>
<StrategiesSection <StrategiesSection
configuredStrategies={configuredStrategies} configuredStrategies={configuredStrategies}
@ -42,6 +50,7 @@ class UpdateFeatureComponent extends Component {
UpdateFeatureComponent.propTypes = { UpdateFeatureComponent.propTypes = {
input: PropTypes.object, input: PropTypes.object,
features: PropTypes.array,
setValue: PropTypes.func.isRequired, setValue: PropTypes.func.isRequired,
addStrategy: PropTypes.func.isRequired, addStrategy: PropTypes.func.isRequired,
removeStrategy: PropTypes.func.isRequired, removeStrategy: PropTypes.func.isRequired,

View File

@ -26,7 +26,7 @@ const mapStateToProps = createMapper({
}); });
const prepare = (methods, dispatch) => { const prepare = (methods, dispatch) => {
methods.onSubmit = input => e => { methods.onSubmit = (input, features) => e => {
e.preventDefault(); e.preventDefault();
if (Array.isArray(input.strategies)) { if (Array.isArray(input.strategies)) {
@ -35,6 +35,9 @@ const prepare = (methods, dispatch) => {
}); });
} }
delete input.description; delete input.description;
// take the status of the feature toggles from the central store in case `toggleFeature` function was called
const feat = features.find(f => f.name === input.name);
input.enabled = feat.enabled;
// TODO: should add error handling // TODO: should add error handling
requestUpdateFeatureToggle(input)(dispatch) requestUpdateFeatureToggle(input)(dispatch)

View File

@ -46,13 +46,13 @@ export default class ViewFeatureToggleComponent extends React.Component {
} }
getTabContent(activeTab) { getTabContent(activeTab) {
const { featureToggle, featureToggleName } = this.props; const { features, featureToggle, featureToggleName } = this.props;
if (TABS[activeTab] === TABS.history) { if (TABS[activeTab] === TABS.history) {
return <HistoryComponent toggleName={featureToggleName} />; return <HistoryComponent toggleName={featureToggleName} />;
} else if (TABS[activeTab] === TABS.strategies) { } else if (TABS[activeTab] === TABS.strategies) {
if (this.isFeatureView) { if (this.isFeatureView) {
return <EditFeatureToggle featureToggle={featureToggle} />; return <EditFeatureToggle featureToggle={featureToggle} features={features} />;
} }
return <ViewFeatureToggle featureToggle={featureToggle} />; return <ViewFeatureToggle featureToggle={featureToggle} />;
} else { } else {
@ -165,7 +165,7 @@ export default class ViewFeatureToggleComponent extends React.Component {
> >
<span style={{ paddingRight: '24px' }}> <span style={{ paddingRight: '24px' }}>
<Switch <Switch
disabled={this.isFeatureView} disabled={!this.isFeatureView}
ripple ripple
checked={featureToggle.enabled} checked={featureToggle.enabled}
onChange={() => toggleFeature(featureToggle.name)} onChange={() => toggleFeature(featureToggle.name)}

View File

@ -115,6 +115,10 @@ ajv-keywords@^2.0.0, ajv-keywords@^2.1.0:
version "2.1.1" version "2.1.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762"
ajv-keywords@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be"
ajv@^4.9.1: ajv@^4.9.1:
version "4.11.8" version "4.11.8"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
@ -131,6 +135,15 @@ ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5, ajv@^5.2.3, ajv@^5.3.0:
fast-json-stable-stringify "^2.0.0" fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0" json-schema-traverse "^0.3.0"
ajv@^6.1.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.4.0.tgz#d3aff78e9277549771daf0164cff48482b754fc6"
dependencies:
fast-deep-equal "^1.0.0"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
uri-js "^3.0.2"
align-text@^0.1.1, align-text@^0.1.3: align-text@^0.1.1, align-text@^0.1.3:
version "0.1.4" version "0.1.4"
resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
@ -327,7 +340,7 @@ async@^1.4.0, async@^1.5.2:
version "1.5.2" version "1.5.2"
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
async@^2.1.2, async@^2.1.4, async@^2.1.5, async@^2.4.1: async@^2.1.2, async@^2.1.4, async@^2.4.1:
version "2.6.0" version "2.6.0"
resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
dependencies: dependencies:
@ -1562,14 +1575,14 @@ cliui@^4.0.0:
strip-ansi "^4.0.0" strip-ansi "^4.0.0"
wrap-ansi "^2.0.0" wrap-ansi "^2.0.0"
clone-deep@^0.3.0: clone-deep@^2.0.1:
version "0.3.0" version "2.0.2"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.3.0.tgz#348c61ae9cdbe0edfe053d91ff4cc521d790ede8" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713"
dependencies: dependencies:
for-own "^1.0.0" for-own "^1.0.0"
is-plain-object "^2.0.1" is-plain-object "^2.0.4"
kind-of "^3.2.2" kind-of "^6.0.0"
shallow-clone "^0.1.2" shallow-clone "^1.0.0"
clone@^1.0.2: clone@^1.0.2:
version "1.0.3" version "1.0.3"
@ -3549,7 +3562,7 @@ is-boolean-object@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93"
is-buffer@^1.0.2, is-buffer@^1.1.5: is-buffer@^1.1.5:
version "1.1.6" version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
@ -4257,13 +4270,7 @@ killable@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b"
kind-of@^2.0.1: kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5"
dependencies:
is-buffer "^1.0.2"
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0, kind-of@^3.2.2:
version "3.2.2" version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
dependencies: dependencies:
@ -4283,10 +4290,6 @@ kind-of@^6.0.0, kind-of@^6.0.2:
version "6.0.2" version "6.0.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
lazy-cache@^0.2.3:
version "0.2.7"
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65"
lazy-cache@^1.0.3: lazy-cache@^1.0.3:
version "1.0.4" version "1.0.4"
resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
@ -4708,6 +4711,10 @@ negotiator@0.6.1:
version "0.6.1" version "0.6.1"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
neo-async@^2.5.0:
version "2.5.1"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee"
node-fetch@^1.0.1: node-fetch@^1.0.1:
version "1.7.3" version "1.7.3"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef"
@ -6229,14 +6236,14 @@ sass-graph@^2.2.4:
scss-tokenizer "^0.2.3" scss-tokenizer "^0.2.3"
yargs "^7.0.0" yargs "^7.0.0"
sass-loader@^6.0.6: sass-loader@^7.0.1:
version "6.0.6" version "7.0.1"
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.6.tgz#e9d5e6c1f155faa32a4b26d7a9b7107c225e40f9" resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.0.1.tgz#fd937259ccba3a9cfe0d5f8a98746d48adfcc261"
dependencies: dependencies:
async "^2.1.5" clone-deep "^2.0.1"
clone-deep "^0.3.0"
loader-utils "^1.0.1" loader-utils "^1.0.1"
lodash.tail "^4.1.1" lodash.tail "^4.1.1"
neo-async "^2.5.0"
pify "^3.0.0" pify "^3.0.0"
sax@^1.2.4, sax@~1.2.1: sax@^1.2.4, sax@~1.2.1:
@ -6249,12 +6256,12 @@ schema-utils@^0.3.0:
dependencies: dependencies:
ajv "^5.0.0" ajv "^5.0.0"
schema-utils@^0.4.3: schema-utils@^0.4.5:
version "0.4.3" version "0.4.5"
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.3.tgz#e2a594d3395834d5e15da22b48be13517859458e" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e"
dependencies: dependencies:
ajv "^5.0.0" ajv "^6.1.0"
ajv-keywords "^2.1.0" ajv-keywords "^3.1.0"
scroll-behavior@^0.9.5: scroll-behavior@^0.9.5:
version "0.9.9" version "0.9.9"
@ -6378,13 +6385,12 @@ sha.js@^2.4.0, sha.js@^2.4.8:
inherits "^2.0.1" inherits "^2.0.1"
safe-buffer "^5.0.1" safe-buffer "^5.0.1"
shallow-clone@^0.1.2: shallow-clone@^1.0.0:
version "0.1.2" version "1.0.0"
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571"
dependencies: dependencies:
is-extendable "^0.1.1" is-extendable "^0.1.1"
kind-of "^2.0.1" kind-of "^5.0.0"
lazy-cache "^0.2.3"
mixin-object "^2.0.1" mixin-object "^2.0.1"
shebang-command@^1.2.0: shebang-command@^1.2.0:
@ -6715,12 +6721,12 @@ strip-json-comments@~2.0.1:
version "2.0.1" version "2.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
style-loader@^0.20.0: style-loader@^0.21.0:
version "0.20.1" version "0.21.0"
resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.20.1.tgz#33ac2bf4d5c65a8906bc586ad253334c246998d0" resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.21.0.tgz#68c52e5eb2afc9ca92b6274be277ee59aea3a852"
dependencies: dependencies:
loader-utils "^1.1.0" loader-utils "^1.1.0"
schema-utils "^0.4.3" schema-utils "^0.4.5"
supports-color@^2.0.0: supports-color@^2.0.0:
version "2.0.0" version "2.0.0"
@ -7026,6 +7032,12 @@ upath@1.0.0:
lodash "3.x" lodash "3.x"
underscore.string "2.3.x" underscore.string "2.3.x"
uri-js@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-3.0.2.tgz#f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa"
dependencies:
punycode "^2.1.0"
urix@^0.1.0: urix@^0.1.0:
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"