From e04f0f7070a1352934715b1cf722ea4d355c37e6 Mon Sep 17 00:00:00 2001 From: gaba Date: Wed, 12 Apr 2017 14:08:55 -0700 Subject: [PATCH 1/7] Moves settings into the state for the stream. Adds premodlinks to the query. --- .../components/ConfigureCommentStream.js | 9 +++---- .../containers/ConfigureStreamContainer.js | 26 ++++++++++--------- .../graphql/queries/streamQuery.graphql | 1 + 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/client/coral-configure/components/ConfigureCommentStream.js b/client/coral-configure/components/ConfigureCommentStream.js index 348d26f53..bef53e1ef 100644 --- a/client/coral-configure/components/ConfigureCommentStream.js +++ b/client/coral-configure/components/ConfigureCommentStream.js @@ -7,7 +7,7 @@ import I18n from 'coral-framework/modules/i18n/i18n'; import translations from '../translations.json'; const lang = new I18n(translations); -export default ({handleChange, handleApply, changed, updateQuestionBoxContent, ...props}) => ( +export default ({handleChange, handleApply, changed, ...props}) => (
@@ -38,9 +38,9 @@ export default ({handleChange, handleApply, changed, updateQuestionBoxContent, . -
diff --git a/client/coral-framework/graphql/queries/streamQuery.graphql b/client/coral-framework/graphql/queries/streamQuery.graphql index 102c656e5..244118859 100644 --- a/client/coral-framework/graphql/queries/streamQuery.graphql +++ b/client/coral-framework/graphql/queries/streamQuery.graphql @@ -28,6 +28,7 @@ query AssetQuery($asset_id: ID, $asset_url: String, $comment_id: ID!, $has_comme moderation infoBoxEnable infoBoxContent + premodLinksEnable questionBoxEnable questionBoxContent closeTimeout From abc7aa7b303e681565eeb58372953b12f7ab0f87 Mon Sep 17 00:00:00 2001 From: gaba Date: Wed, 12 Apr 2017 18:38:14 -0700 Subject: [PATCH 2/7] Uh... wrong element. --- client/coral-configure/containers/ConfigureStreamContainer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/coral-configure/containers/ConfigureStreamContainer.js b/client/coral-configure/containers/ConfigureStreamContainer.js index b90e76420..6ea8e0822 100644 --- a/client/coral-configure/containers/ConfigureStreamContainer.js +++ b/client/coral-configure/containers/ConfigureStreamContainer.js @@ -58,7 +58,7 @@ class ConfigureStreamContainer extends Component { if (e.target && e.target.id === 'qboxcontent') { this.state.settings.questionBoxContent = e.target.value; } - if (e.target && e.target.id === 'qboxcontent') { + if (e.target && e.target.id === 'plinksenable') { this.state.settings.premodLinksEnable = e.target.value; } From 9dae72dd8a45859cc26a97ccff9ce86c11d32c25 Mon Sep 17 00:00:00 2001 From: gaba Date: Thu, 13 Apr 2017 11:44:08 -0700 Subject: [PATCH 3/7] Good catch. Use setState. --- .../containers/ConfigureStreamContainer.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/client/coral-configure/containers/ConfigureStreamContainer.js b/client/coral-configure/containers/ConfigureStreamContainer.js index 6ea8e0822..e7ea96b66 100644 --- a/client/coral-configure/containers/ConfigureStreamContainer.js +++ b/client/coral-configure/containers/ConfigureStreamContainer.js @@ -48,18 +48,26 @@ class ConfigureStreamContainer extends Component { changed: false }); }, 300); + + this.props.loadAsset(this.props.data.asset); } } handleChange (e) { if (e.target && e.target.id === 'qboxenable') { - this.state.settings.questionBoxEnable = e.target.checked; + this.setState({ + questionBoxEnable: e.target.checked + }); } if (e.target && e.target.id === 'qboxcontent') { - this.state.settings.questionBoxContent = e.target.value; + this.setState({ + questionBoxContent: e.target.value + }); } if (e.target && e.target.id === 'plinksenable') { - this.state.settings.premodLinksEnable = e.target.value; + this.setState({ + premodLinksEnable: e.target.value + }); } this.setState({ From fa72a661ad2bc6e03b1e6da48fa21b4f6cd2c3c5 Mon Sep 17 00:00:00 2001 From: gaba Date: Thu, 13 Apr 2017 12:43:24 -0700 Subject: [PATCH 4/7] Going back to previous setting state as I do not want it to re-render. --- .../containers/ConfigureStreamContainer.js | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/client/coral-configure/containers/ConfigureStreamContainer.js b/client/coral-configure/containers/ConfigureStreamContainer.js index e7ea96b66..433fde1d4 100644 --- a/client/coral-configure/containers/ConfigureStreamContainer.js +++ b/client/coral-configure/containers/ConfigureStreamContainer.js @@ -49,25 +49,19 @@ class ConfigureStreamContainer extends Component { }); }, 300); - this.props.loadAsset(this.props.data.asset); + // this.props.loadAsset(this.props.data.asset); } } handleChange (e) { if (e.target && e.target.id === 'qboxenable') { - this.setState({ - questionBoxEnable: e.target.checked - }); + this.state.settings.questionBoxEnable = e.target.checked; } if (e.target && e.target.id === 'qboxcontent') { - this.setState({ - questionBoxContent: e.target.value - }); + this.state.settings.questionBoxContent = e.target.value; } if (e.target && e.target.id === 'plinksenable') { - this.setState({ - premodLinksEnable: e.target.value - }); + this.state.settings.premodLinksEnable = e.target.value; } this.setState({ From fa944927e4af7fcd1df302e950a4716863c6aea3 Mon Sep 17 00:00:00 2001 From: gaba Date: Fri, 14 Apr 2017 10:37:05 -0700 Subject: [PATCH 5/7] A note on the from/to parameters. --- graph/typeDefs.graphql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/graph/typeDefs.graphql b/graph/typeDefs.graphql index 0aac36aaa..ef6ff5937 100644 --- a/graph/typeDefs.graphql +++ b/graph/typeDefs.graphql @@ -550,11 +550,11 @@ type RootQuery { users(query: UsersQuery): [User] # Asset metrics related to user actions are saturated into the assets - # returned. + # returned. Parameters `from` and `to` are related to the action created_at field. assetMetrics(from: Date!, to: Date!, sort: ASSET_METRICS_SORT!, limit: Int = 10): [Asset!] # Comment metrics related to user actions are saturated into the comments - # returned. + # returned. Parameters `from` and `to` are related to the action created_at field. commentMetrics(from: Date!, to: Date!, sort: ACTION_TYPE!, limit: Int = 10): [Comment!] } From fb010bfa675ac08627374e2640d9dfd95850ee20 Mon Sep 17 00:00:00 2001 From: gaba Date: Mon, 17 Apr 2017 11:49:48 -0700 Subject: [PATCH 6/7] Rename settings of the state to dirtySettings and add TO DO item to be sure we refactor this next time we do a refactor. --- .../containers/ConfigureStreamContainer.js | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/client/coral-configure/containers/ConfigureStreamContainer.js b/client/coral-configure/containers/ConfigureStreamContainer.js index 433fde1d4..c71ec7469 100644 --- a/client/coral-configure/containers/ConfigureStreamContainer.js +++ b/client/coral-configure/containers/ConfigureStreamContainer.js @@ -16,7 +16,7 @@ class ConfigureStreamContainer extends Component { this.state = { changed: false, - settings: props.asset.settings + dirtySettings: props.asset.settings }; this.toggleStatus = this.toggleStatus.bind(this); @@ -54,14 +54,16 @@ class ConfigureStreamContainer extends Component { } handleChange (e) { + + // TO DO: Don’t directly manipulate state and make state change immutable. if (e.target && e.target.id === 'qboxenable') { - this.state.settings.questionBoxEnable = e.target.checked; + this.state.dirtySettings.questionBoxEnable = e.target.checked; } if (e.target && e.target.id === 'qboxcontent') { - this.state.settings.questionBoxContent = e.target.value; + this.state.dirtySettings.questionBoxContent = e.target.value; } if (e.target && e.target.id === 'plinksenable') { - this.state.settings.premodLinksEnable = e.target.value; + this.state.dirtySettings.premodLinksEnable = e.target.value; } this.setState({ @@ -83,9 +85,9 @@ class ConfigureStreamContainer extends Component { render () { const {closedAt} = this.props.asset; - const {settings} = this.state; + const {dirtySettings} = this.state; const status = closedAt === null ? 'open' : 'closed'; - const premod = settings.moderation === 'PRE'; + const premod = dirtySettings.moderation === 'PRE'; return (
@@ -93,10 +95,10 @@ class ConfigureStreamContainer extends Component { handleChange={this.handleChange} handleApply={this.handleApply} changed={this.state.changed} - premodLinksEnable={settings.premodLinksEnable} + premodLinksEnable={dirtySettings.premodLinksEnable} premod={premod} - questionBoxEnable={settings.questionBoxEnable} - questionBoxContent={settings.questionBoxContent} + questionBoxEnable={dirtySettings.questionBoxEnable} + questionBoxContent={dirtySettings.questionBoxContent} />

{status === 'open' ? 'Close' : 'Open'} Comment Stream

From 04a4918fd57f0de136dbbbde1096f690254ebd78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriela=20Rodr=C3=ADguez=20Ber=C3=B3n?= Date: Mon, 17 Apr 2017 12:35:29 -0700 Subject: [PATCH 7/7] Update ConfigureStreamContainer.js --- client/coral-configure/containers/ConfigureStreamContainer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/coral-configure/containers/ConfigureStreamContainer.js b/client/coral-configure/containers/ConfigureStreamContainer.js index 3d256bc4a..aef7093f2 100644 --- a/client/coral-configure/containers/ConfigureStreamContainer.js +++ b/client/coral-configure/containers/ConfigureStreamContainer.js @@ -56,7 +56,7 @@ class ConfigureStreamContainer extends Component { handleChange (e) { - // TO DO: Don’t directly manipulate state and make state change immutable. + // TODO: Don’t directly manipulate state and make state change immutable. if (e.target && e.target.id === 'qboxenable') { this.state.dirtySettings.questionBoxEnable = e.target.checked; }