From d8533b7e8faf413f8a1c7f7ef595d6a5db2537c7 Mon Sep 17 00:00:00 2001 From: patte
Date: Wed, 19 Feb 2020 23:00:18 +0100 Subject: [PATCH 01/12] question groups --- src/components/Question.js | 6 +-- src/components/Questionnaire.js | 83 ++++++++++++++++++++++++++------- test/article.md | 2 +- 3 files changed, 71 insertions(+), 20 deletions(-) diff --git a/src/components/Question.js b/src/components/Question.js index 324312b..1b1673e 100644 --- a/src/components/Question.js +++ b/src/components/Question.js @@ -16,7 +16,7 @@ import Chart from './Chart' const styles = { container: css({ - margin: '50px 0 10px 0' + paddingBottom: 50 }), question: css({ margin: '0px 0 10px 0', @@ -71,8 +71,8 @@ class ChoiceQuestion extends Component { } const { questionnaire, question: { id, text, userAnswer, options, results } } = this.props - const { question } = this.props - const { userHasSubmitted } = questionnaire + const { question, style } = this.props + const { userHasSubmitted } = questionnaire return (
{i.text}
+ { + i.questions.map(q => elementForQuestion(q)) + } +Date: Wed, 19 Feb 2020 23:01:02 +0100 Subject: [PATCH 02/12] rename questionnaire-dn -> questionnaire --- README.md | 2 +- package.json | 10 +++++----- test/article.md | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 0b74316..4012b47 100755 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ npm run deploy Goto https://app.keycdn.com/zones/purgeurl/87880 and enter: ``` -/s3/republik-assets/dynamic-components/questionnaire-dn/index.js +/s3/republik-assets/dynamic-components/questionnaire/index.js ``` If you change asset files be sure to purge those too. diff --git a/package.json b/package.json index 9fe93ec..0469fab 100755 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "questionnaire-dn", + "name": "questionnaire", "version": "0.0.1", "description": "use a questionnaire inline", "main": "index.js", @@ -11,18 +11,18 @@ "now-build": "NODE_ENV=production rollup -c && cd test && next build", "heroku-postbuild": "NODE_ENV=production rollup -c && cd test && next build", "start": "NODE_ENV=production cd test && node server.js", - "deploy": "s3cmd sync --exclude '.DS_Store' --verbose --acl-public build/ s3://republik-assets/dynamic-components/questionnaire-dn/" + "deploy": "s3cmd sync --exclude '.DS_Store' --verbose --acl-public build/ s3://republik-assets/dynamic-components/questionnaire/" }, "repository": { "type": "git", - "url": "git+https://github.com/orbiting/questionnaire-dn.git" + "url": "git+https://github.com/orbiting/questionnaire.git" }, "author": "", "license": "BSD-3-Clause", "bugs": { - "url": "https://github.com/orbiting/questionnaire-dn/issues" + "url": "https://github.com/orbiting/questionnaire/issues" }, - "homepage": "https://github.com/orbiting/questionnaire-dn#readme", + "homepage": "https://github.com/orbiting/questionnaire#readme", "devDependencies": { "@babel/core": "^7.0.0-beta.51", "@babel/preset-env": "^7.0.0-beta.51", diff --git a/test/article.md b/test/article.md index 9aa808f..00426bc 100755 --- a/test/article.md +++ b/test/article.md @@ -24,7 +24,7 @@ Was möchten Sie Fragen? "props": { "slug": "mss-demokratie" }, - "src": "https://cdn.republik.space/s3/republik-assets/dynamic-components/questionnaire-dn/index.js" + "src": "https://cdn.republik.space/s3/republik-assets/dynamic-components/questionnaire/index.js" } ``` From 5ae2c15154361b22adf030c668c4aa44771c058b Mon Sep 17 00:00:00 2001 From: patte
Date: Wed, 19 Feb 2020 23:02:27 +0100 Subject: [PATCH 03/12] cleanup --- src/components/Question.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Question.js b/src/components/Question.js index 1b1673e..0db98a0 100644 --- a/src/components/Question.js +++ b/src/components/Question.js @@ -71,7 +71,7 @@ class ChoiceQuestion extends Component { } const { questionnaire, question: { id, text, userAnswer, options, results } } = this.props - const { question, style } = this.props + const { question } = this.props const { userHasSubmitted } = questionnaire return ( From 1d49972c327b5278efb443f9ecdd69a8e1d2b3f5 Mon Sep 17 00:00:00 2001 From: patte
Date: Thu, 20 Feb 2020 01:26:29 +0100 Subject: [PATCH 04/12] colors prop --- src/components/Chart.js | 9 ++++++--- src/components/Question.js | 4 ++-- src/components/Questionnaire.js | 5 +++-- test/article.md | 3 ++- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/components/Chart.js b/src/components/Chart.js index 67a0f36..947e3c1 100644 --- a/src/components/Chart.js +++ b/src/components/Chart.js @@ -69,7 +69,7 @@ const styles = { class Chart extends Component { render () { - const { question } = this.props + const { question, colors = [] } = this.props if (!question || !question.results) { return } @@ -87,6 +87,9 @@ class Chart extends Component { const truePercent = getPercentage(trueResult) const falsePercent = getPercentage(falseResult) + const trueColor = colors.find(c => c.value) + const falseColor = colors.find(c => !c.value) + return (
Date: Thu, 20 Feb 2020 01:34:34 +0100 Subject: [PATCH 05/12] devider for group --- src/components/Questionnaire.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/Questionnaire.js b/src/components/Questionnaire.js index 548535c..0e9f984 100644 --- a/src/components/Questionnaire.js +++ b/src/components/Questionnaire.js @@ -62,6 +62,7 @@ const styles = { }), group: css({ background: '#fff', + borderBottom: `0.5px solid ${colors.divider}`, zIndex: 10, position: 'sticky', top: HEADER_HEIGHT - 1, From 61692720f90835eefff27bc3372b65214261161f Mon Sep 17 00:00:00 2001 From: patte
Date: Thu, 20 Feb 2020 01:53:13 +0100 Subject: [PATCH 06/12] better signIn text --- src/components/Questionnaire.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/Questionnaire.js b/src/components/Questionnaire.js index 0e9f984..0c36612 100644 --- a/src/components/Questionnaire.js +++ b/src/components/Questionnaire.js @@ -56,9 +56,7 @@ const styles = { minHeight: 30 }), signIn: css({ - textAlign: 'center', - margin: '40px 0' - + margin: '60px 0' }), group: css({ background: '#fff', @@ -125,7 +123,10 @@ class Page extends Component { if (!me || !me.id) { return ( -
Damit wir Ihnen zeigen können wo Sie im Vergleich zu allen anderen stehen müssen Sie sich anmelden. Sie benötigen keine Mitgliedschaft. Um Ihre Privatsphäre müssen Sie sich keine Sorgen machen: Sie können Ihre Antworten jederzeit wieder anonymisieren.
+Melden Sie sich an um an der Umfrage teilzunehmen und live zu sehen wo Sie im Vergleich zu allen Anderen stehen. Sie können Ihre Antworten jederzeit anonymisieren.
+Das erste Mal hier? Starten Sie am besten gleich ein kostenloses Probeabo für 14 Tage.
+Date: Thu, 20 Feb 2020 04:53:41 +0100 Subject: [PATCH 07/12] cleanup --- src/components/Question.js | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/components/Question.js b/src/components/Question.js index 6a83666..8296100 100644 --- a/src/components/Question.js +++ b/src/components/Question.js @@ -51,7 +51,14 @@ class ChoiceQuestion extends Component { render () { this.handleChange = (value) => { - const { onChange, questionnaire, question: { userAnswer, cardinality } } = this.props + const { + onChange, + questionnaire, + question: { + userAnswer, + cardinality + } + } = this.props const nextValue = new Set(userAnswer ? userAnswer.payload.value : []) if (cardinality === 0 || cardinality > 1) { @@ -70,9 +77,18 @@ class ChoiceQuestion extends Component { onChange(answerId, Array.from(nextValue)) } - const { questionnaire, question: { id, text, userAnswer, options, results } } = this.props + const { + questionnaire = {}, + question: { + id, + text, + userAnswer, + options, + results + } + } = this.props const { question, colors } = this.props - const { userHasSubmitted } = questionnaire + const { userHasSubmitted = false } = questionnaire return (
Date: Thu, 20 Feb 2020 04:53:54 +0100
Subject: [PATCH 08/12] filter with questionIndex prop
---
src/components/Questionnaire.js | 35 +++++++++++++++++++--------------
1 file changed, 20 insertions(+), 15 deletions(-)
diff --git a/src/components/Questionnaire.js b/src/components/Questionnaire.js
index 0c36612..24fba63 100644
--- a/src/components/Questionnaire.js
+++ b/src/components/Questionnaire.js
@@ -106,7 +106,7 @@ class Page extends Component {
)
}
- const { data, me, t, meta, colors } = this.props
+ const { data, me, t, meta, colors, questionIndex } = this.props
return (
{i.text} {i.text}
Date: Thu, 20 Feb 2020 16:13:18 +0100
Subject: [PATCH 09/12] styling
---
src/components/Question.js | 2 +-
src/components/Questionnaire.js | 244 +++++++++++++++++---------------
2 files changed, 127 insertions(+), 119 deletions(-)
diff --git a/src/components/Question.js b/src/components/Question.js
index 8296100..f53d6f5 100644
--- a/src/components/Question.js
+++ b/src/components/Question.js
@@ -16,7 +16,7 @@ import Chart from './Chart'
const styles = {
container: css({
- paddingBottom: 50
+ paddingBottom: 30
}),
question: css({
margin: '0px 0 10px 0',
diff --git a/src/components/Questionnaire.js b/src/components/Questionnaire.js
index 24fba63..454d5ec 100644
--- a/src/components/Questionnaire.js
+++ b/src/components/Questionnaire.js
@@ -22,7 +22,8 @@ import {
OverlayToolbar,
OverlayToolbarClose,
OverlayBody,
- Button
+ Button,
+ Center
} from '@project-r/styleguide'
import Question from './Question'
@@ -61,6 +62,7 @@ const styles = {
group: css({
background: '#fff',
borderBottom: `0.5px solid ${colors.divider}`,
+ marginBottom: 10,
zIndex: 10,
position: 'sticky',
top: HEADER_HEIGHT - 1,
@@ -107,137 +109,143 @@ class Page extends Component {
}
const { data, me, t, meta, colors, questionIndex } = this.props
+ const singleQuestion = questionIndex !== undefined && questionIndex !== null
+ const Wrapper = singleQuestion ? Center : React.Fragment
return (
-
- Der Fragebogen konnte nicht gefunden werden.
-
+ Der Fragebogen konnte nicht gefunden werden.
+ Melden Sie sich an um an der Umfrage teilzunehmen und live zu sehen wo Sie im Vergleich zu allen Anderen stehen. Sie können Ihre Antworten jederzeit anonymisieren. Das erste Mal hier? Starten Sie am besten gleich ein kostenloses Probeabo für 14 Tage. Melden Sie sich an um an der Umfrage teilzunehmen und live zu sehen wo Sie im Vergleich zu allen Anderen stehen. Sie können Ihre Antworten jederzeit anonymisieren. Das erste Mal hier? Starten Sie am besten gleich ein kostenloses Probeabo für 14 Tage. {i.text} {errorToString(error)} Sie haben Ihre Antworten anonymisiert und können daher nicht noch einmal teilnehmen. {t('questionnaire/header', { questionCount, userAnswerCount })} Wenn Sie möchten, können Sie Ihre Antworten anonymisieren. Diese bleiben zwar in unserer Datenbank erhalten, aber wir vergessen, dass sie von Ihnen stammen. Wir können Ihnen danach nicht mehr anzeigen, was Sie geantwortet haben, und Sie können keine Antworten mehr abgeben.
Date: Thu, 20 Feb 2020 18:40:15 +0100
Subject: [PATCH 10/12] show results for unauthorized users
---
src/components/Question.js | 9 +-
src/components/Questionnaire.js | 151 ++++++++++++++++++--------------
2 files changed, 91 insertions(+), 69 deletions(-)
diff --git a/src/components/Question.js b/src/components/Question.js
index f53d6f5..4599122 100644
--- a/src/components/Question.js
+++ b/src/components/Question.js
@@ -85,21 +85,24 @@ class ChoiceQuestion extends Component {
userAnswer,
options,
results
- }
+ },
+ forceShowResults = false
} = this.props
const { question, colors } = this.props
const { userHasSubmitted = false } = questionnaire
+ const showResults = userAnswer || userHasSubmitted || forceShowResults
+
return (
{text} Melden Sie sich an um an der Umfrage teilzunehmen und live zu sehen wo Sie im Vergleich zu allen Anderen stehen. Sie können Ihre Antworten jederzeit anonymisieren. Das erste Mal hier? Starten Sie am besten gleich ein kostenloses Probeabo für 14 Tage. {i.text} {errorToString(error)} Melden Sie sich an, um an der Umfrage teilzunehmen und live zu sehen, wo Sie im Vergleich zu allen Anderen stehen. Sie können Ihre Antworten jederzeit anonymisieren. Das erste Mal hier? Starten Sie am besten gleich ein kostenloses Probeabo für 14 Tage. Jetzt gerade nicht? Resultate anzeigen. Sie haben Ihre Antworten anonymisiert und können daher nicht noch einmal teilnehmen. {t('questionnaire/header', { questionCount, userAnswerCount })} {i.text} {errorToString(error)} Sie haben Ihre Antworten anonymisiert und können daher nicht noch einmal teilnehmen. {t('questionnaire/header', { questionCount, userAnswerCount })} Wenn Sie möchten, können Sie Ihre Antworten anonymisieren. Diese bleiben zwar in unserer Datenbank erhalten, aber wir vergessen, dass sie von Ihnen stammen. Wir können Ihnen danach nicht mehr anzeigen, was Sie geantwortet haben, und Sie können keine Antworten mehr abgeben. Wenn Sie möchten, können Sie Ihre Antworten anonymisieren. Diese bleiben zwar in unserer Datenbank erhalten, aber wir vergessen, dass sie von Ihnen stammen. Wir können Ihnen danach nicht mehr anzeigen, was Sie geantwortet haben, und Sie können keine Antworten mehr abgeben.
Date: Thu, 20 Feb 2020 18:40:24 +0100
Subject: [PATCH 11/12] better colors
---
test/article.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/article.md b/test/article.md
index 0912e5d..5fce270 100755
--- a/test/article.md
+++ b/test/article.md
@@ -23,7 +23,7 @@ Was möchten Sie Fragen?
"autoHtml": false,
"props": {
"slug": "mss-demokratie",
- "colors": [{ "value": true, "color": "#2ca02c" }, { "value": false, "color": "#9467bd" }]
+ "colors": [{ "value": true, "color": "#6FB977" }, { "value": false, "color": "#AD8BBD" }]
},
"src": "https://cdn.republik.space/s3/republik-assets/dynamic-components/questionnaire/index.js"
}
From 3dcb6222cb1676ae4c6b57ff55ca612091748694 Mon Sep 17 00:00:00 2001
From: patte
Date: Thu, 20 Feb 2020 22:57:59 +0100
Subject: [PATCH 12/12] typo
---
src/components/Questionnaire.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/Questionnaire.js b/src/components/Questionnaire.js
index 64888bb..d805727 100644
--- a/src/components/Questionnaire.js
+++ b/src/components/Questionnaire.js
@@ -189,7 +189,7 @@ class Page extends Component {
Melden Sie sich an, um an der Umfrage teilzunehmen und live zu sehen, wo Sie im Vergleich zu allen Anderen stehen. Sie können Ihre Antworten jederzeit anonymisieren. Melden Sie sich an, um an der Umfrage teilzunehmen und live zu sehen, wo Sie im Vergleich zu allen anderen stehen. Sie können Ihre Antworten jederzeit anonymisieren. Das erste Mal hier? Starten Sie am besten gleich ein kostenloses Probeabo für 14 Tage.
+ { !forceShowResults &&
+
{ !forceShowResults &&