From 5c8216fabd167609c918599855f1d70ef5b65b9a Mon Sep 17 00:00:00 2001 From: nkiru onwuneme Date: Tue, 3 Jul 2018 13:47:16 -0700 Subject: [PATCH 01/13] add style and set question character limit to 280 characters --- .../FreeResponsesAssessmentsContainer.jsx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx index a915eb141cbf3..3dbaac7859f68 100644 --- a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx +++ b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx @@ -7,6 +7,14 @@ import { import { connect } from 'react-redux'; import i18n from "@cdo/locale"; +const styles = { + text: { + font: 10, + paddingTop: 20, + paddingBottom: 20, + }, +}; + export const freeResponseSummaryPropType = PropTypes.shape({ questionText: PropTypes.string, responses: PropTypes.arrayOf(freeResponsesDataPropType), @@ -27,7 +35,10 @@ class FreeResponsesAssessmentsContainer extends Component { } {freeResponseQuestions.map((question, index) => (
-

{`${question.questionNumber}. ${question.questionText}`}

+
+ {`${question.questionNumber}. ${question.questionText}`.slice(0, 280)} + {/* {i18n.seeFullResponse()} */} +
From 788bd919e97f58940d9ba8321c505949919d9a95 Mon Sep 17 00:00:00 2001 From: nkiru onwuneme Date: Tue, 3 Jul 2018 15:47:39 -0700 Subject: [PATCH 02/13] truncate free responses assessments question and add conditional to show or hide full question link --- apps/i18n/common/en_us.json | 1 + .../sectionAssessments/FreeResponsesAssessmentsContainer.jsx | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/i18n/common/en_us.json b/apps/i18n/common/en_us.json index 7736672768e27..c72a39714e547 100644 --- a/apps/i18n/common/en_us.json +++ b/apps/i18n/common/en_us.json @@ -975,6 +975,7 @@ "searchForCountry": "Search for your country.", "searchForSchool": "Search for your school.", "seeFullResponse": " ...see full response", + "seeFullQuestion": " ...see full question", "school": "School", "schoolCity": "School City", "schoolCityTown": "City / Town", diff --git a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx index 3dbaac7859f68..fde25a29fa769 100644 --- a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx +++ b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx @@ -36,8 +36,8 @@ class FreeResponsesAssessmentsContainer extends Component { {freeResponseQuestions.map((question, index) => (
- {`${question.questionNumber}. ${question.questionText}`.slice(0, 280)} - {/* {i18n.seeFullResponse()} */} + {`${question.questionNumber}. ${question.questionText}`.slice(0, 260)} + {((question.questionText.length >= 260)) ? {i18n.seeFullQuestion()} : null}
Date: Tue, 3 Jul 2018 23:02:34 -0700 Subject: [PATCH 03/13] create constant for question character limit --- .../FreeResponsesAssessmentsContainer.jsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx index fde25a29fa769..589e8337edbc7 100644 --- a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx +++ b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx @@ -7,6 +7,8 @@ import { import { connect } from 'react-redux'; import i18n from "@cdo/locale"; +const QUESTION_CHARACTER_LIMIT = 260; + const styles = { text: { font: 10, @@ -36,8 +38,8 @@ class FreeResponsesAssessmentsContainer extends Component { {freeResponseQuestions.map((question, index) => (
- {`${question.questionNumber}. ${question.questionText}`.slice(0, 260)} - {((question.questionText.length >= 260)) ? {i18n.seeFullQuestion()} : null} + {`${question.questionNumber}. ${question.questionText}`.slice(0, QUESTION_CHARACTER_LIMIT)} + {((question.questionText.length >= QUESTION_CHARACTER_LIMIT)) ? {i18n.seeFullQuestion()} : null}
Date: Tue, 3 Jul 2018 23:31:30 -0700 Subject: [PATCH 04/13] break up line as conditional statement exceeds max line length --- .../sectionAssessments/FreeResponsesAssessmentsContainer.jsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx index 589e8337edbc7..db0714f4f03f6 100644 --- a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx +++ b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx @@ -38,8 +38,9 @@ class FreeResponsesAssessmentsContainer extends Component { {freeResponseQuestions.map((question, index) => (
- {`${question.questionNumber}. ${question.questionText}`.slice(0, QUESTION_CHARACTER_LIMIT)} - {((question.questionText.length >= QUESTION_CHARACTER_LIMIT)) ? {i18n.seeFullQuestion()} : null} + {`${question.questionNumber}. ${question.questionText}`.slice(0, QUESTION_CHARACTER_LIMIT)} + {((question.questionText.length >= QUESTION_CHARACTER_LIMIT)) + ? {i18n.seeFullQuestion()} : null}
Date: Wed, 4 Jul 2018 00:15:20 -0700 Subject: [PATCH 05/13] check question text limit for free response survey table --- .../FreeResponseBySurveyQuestionContainer.jsx | 16 +++++++++++++++- .../FreeResponsesAssessmentsContainer.jsx | 10 +++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx b/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx index 94ffd39545a2f..662349b8af4d0 100644 --- a/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx +++ b/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx @@ -6,6 +6,16 @@ import { import { connect } from 'react-redux'; import i18n from "@cdo/locale"; +const QUESTION_CHARACTER_LIMIT = 260; + +const styles = { + text: { + font: 10, + paddingTop: 20, + paddingBottom: 20, + }, +}; + const freeResponseQuestionsPropType = PropTypes.shape({ questionNumber: PropTypes.number, questionText: PropTypes.string, @@ -24,7 +34,11 @@ class FreeResponseBySurveyQuestionContainer extends Component {

{i18n.studentFreeResponseAnswers()}

{freeResponsesByQuestion.map((question, index) => (
-

{`${question.questionNumber}. ${question.questionText}`}

+
+ {`${question.questionNumber}. ${question.questionText}`.slice(0, QUESTION_CHARACTER_LIMIT)} + {((question.questionText.length >= QUESTION_CHARACTER_LIMIT)) + ? {i18n.seeFullQuestion()} : null} +
diff --git a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx index db0714f4f03f6..32d905d1d96d9 100644 --- a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx +++ b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx @@ -37,11 +37,11 @@ class FreeResponsesAssessmentsContainer extends Component { } {freeResponseQuestions.map((question, index) => (
-
- {`${question.questionNumber}. ${question.questionText}`.slice(0, QUESTION_CHARACTER_LIMIT)} - {((question.questionText.length >= QUESTION_CHARACTER_LIMIT)) - ? {i18n.seeFullQuestion()} : null} -
+
+ {`${question.questionNumber}. ${question.questionText}`.slice(0, QUESTION_CHARACTER_LIMIT)} + {((question.questionText.length >= QUESTION_CHARACTER_LIMIT)) + ? {i18n.seeFullQuestion()} : null} +
From 4b2d5512a3146d2d8dd7a787a67c2afb7b34367d Mon Sep 17 00:00:00 2001 From: nkiru onwuneme Date: Wed, 4 Jul 2018 08:14:00 -0700 Subject: [PATCH 06/13] remove extra line space --- .../sectionAssessments/FreeResponsesAssessmentsContainer.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx index 32d905d1d96d9..f38a8c94c3874 100644 --- a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx +++ b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx @@ -57,4 +57,3 @@ export const UnconnectedFreeResponsesAssessmentsContainer = FreeResponsesAssessm export default connect(state => ({ freeResponseQuestions: getAssessmentsFreeResponseResults(state), }))(FreeResponsesAssessmentsContainer); - From 72d5d74c10978801909ba05e73ab4f10b70cda8a Mon Sep 17 00:00:00 2001 From: nkiru onwuneme Date: Wed, 4 Jul 2018 08:14:00 -0700 Subject: [PATCH 07/13] Remove extra Line --- .../sectionAssessments/FreeResponsesAssessmentsContainer.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx index 32d905d1d96d9..f38a8c94c3874 100644 --- a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx +++ b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx @@ -57,4 +57,3 @@ export const UnconnectedFreeResponsesAssessmentsContainer = FreeResponsesAssessm export default connect(state => ({ freeResponseQuestions: getAssessmentsFreeResponseResults(state), }))(FreeResponsesAssessmentsContainer); - From 4f0c3b859be61188c2d00d152d2b4609ca6276b8 Mon Sep 17 00:00:00 2001 From: nkiru onwuneme Date: Wed, 4 Jul 2018 08:51:47 -0700 Subject: [PATCH 08/13] extra line is not visible --- .../FreeResponseBySurveyQuestionContainer.jsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx b/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx index 662349b8af4d0..5921171e5f1d4 100644 --- a/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx +++ b/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx @@ -54,3 +54,7 @@ export const UnconnectedFreeResponseBySurveyQuestionContainer = FreeResponseBySu export default connect(state => ({ freeResponsesByQuestion: getSurveyFreeResponseQuestions(state), }))(FreeResponseBySurveyQuestionContainer); + + + + From 4779c4f37257cf1433b7b09c4e112d73b19dc2e6 Mon Sep 17 00:00:00 2001 From: nkiru onwuneme Date: Wed, 4 Jul 2018 09:02:17 -0700 Subject: [PATCH 09/13] remove extra lines --- .../FreeResponseBySurveyQuestionContainer.jsx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx b/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx index 5921171e5f1d4..662349b8af4d0 100644 --- a/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx +++ b/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx @@ -54,7 +54,3 @@ export const UnconnectedFreeResponseBySurveyQuestionContainer = FreeResponseBySu export default connect(state => ({ freeResponsesByQuestion: getSurveyFreeResponseQuestions(state), }))(FreeResponseBySurveyQuestionContainer); - - - - From 8ecbdd80e11d0aabeb9d2311d1b25a43adad92a5 Mon Sep 17 00:00:00 2001 From: nkiru onwuneme Date: Fri, 6 Jul 2018 04:32:36 -0700 Subject: [PATCH 10/13] refactored code that checks if free response question exceeds character limit --- .../FreeResponsesAssessmentsContainer.jsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx index f38a8c94c3874..97daa26abf744 100644 --- a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx +++ b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx @@ -38,9 +38,10 @@ class FreeResponsesAssessmentsContainer extends Component { {freeResponseQuestions.map((question, index) => (
- {`${question.questionNumber}. ${question.questionText}`.slice(0, QUESTION_CHARACTER_LIMIT)} - {((question.questionText.length >= QUESTION_CHARACTER_LIMIT)) - ? {i18n.seeFullQuestion()} : null} + {`${question.questionNumber}. ${question.questionText.slice(0, QUESTION_CHARACTER_LIMIT)}`} + {question.questionText.length >= QUESTION_CHARACTER_LIMIT && + {i18n.seeFullQuestion()} + }
Date: Fri, 6 Jul 2018 05:01:25 -0700 Subject: [PATCH 11/13] refactor code in free response survey container that checks if free response question exceed character limit --- .../FreeResponseBySurveyQuestionContainer.jsx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx b/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx index 662349b8af4d0..d893cffd8b0ad 100644 --- a/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx +++ b/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx @@ -34,10 +34,11 @@ class FreeResponseBySurveyQuestionContainer extends Component {

{i18n.studentFreeResponseAnswers()}

{freeResponsesByQuestion.map((question, index) => (
-
- {`${question.questionNumber}. ${question.questionText}`.slice(0, QUESTION_CHARACTER_LIMIT)} - {((question.questionText.length >= QUESTION_CHARACTER_LIMIT)) - ? {i18n.seeFullQuestion()} : null} +
+ {`${question.questionNumber}. ${question.questionText.slice(0, QUESTION_CHARACTER_LIMIT)}`} + {question.questionText.length >= QUESTION_CHARACTER_LIMIT && + {i18n.seeFullQuestion()} + }
Date: Fri, 6 Jul 2018 11:24:31 -0700 Subject: [PATCH 12/13] Set state to show full free response question --- .../FreeResponsesAssessmentsContainer.jsx | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx index 97daa26abf744..b39083b63f6bb 100644 --- a/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx +++ b/apps/src/templates/sectionAssessments/FreeResponsesAssessmentsContainer.jsx @@ -27,6 +27,14 @@ class FreeResponsesAssessmentsContainer extends Component { freeResponseQuestions: PropTypes.arrayOf(freeResponseSummaryPropType), }; + state = { + isExpanded: false, + }; + + expandText = () => { + this.setState({isExpanded: true}); + }; + render() { const {freeResponseQuestions} = this.props; @@ -37,12 +45,19 @@ class FreeResponsesAssessmentsContainer extends Component { } {freeResponseQuestions.map((question, index) => (
-
- {`${question.questionNumber}. ${question.questionText.slice(0, QUESTION_CHARACTER_LIMIT)}`} - {question.questionText.length >= QUESTION_CHARACTER_LIMIT && - {i18n.seeFullQuestion()} - } -
+ {!this.state.isExpanded && +
+ {`${question.questionNumber}. ${question.questionText.slice(0, QUESTION_CHARACTER_LIMIT)}`} + {question.questionText.length >= QUESTION_CHARACTER_LIMIT && + {i18n.seeFullQuestion()} + } +
+ } + {this.state.isExpanded && +
+ {`${question.questionNumber}. ${question.questionText}`} +
+ } From df655fcf9dc9d106c1b3580c03c4443e0ad87570 Mon Sep 17 00:00:00 2001 From: nkiru onwuneme Date: Fri, 6 Jul 2018 11:33:36 -0700 Subject: [PATCH 13/13] Set state to show full response question for multiple choice overview for surveys --- .../FreeResponseBySurveyQuestionContainer.jsx | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx b/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx index d893cffd8b0ad..08c3554fa65f8 100644 --- a/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx +++ b/apps/src/templates/sectionAssessments/FreeResponseBySurveyQuestionContainer.jsx @@ -27,6 +27,14 @@ class FreeResponseBySurveyQuestionContainer extends Component { freeResponsesByQuestion: PropTypes.arrayOf(freeResponseQuestionsPropType), }; + state = { + isExpanded: false, + }; + + expandText = () => { + this.setState({isExpanded: true}); + }; + render() { const {freeResponsesByQuestion} = this.props; return ( @@ -34,12 +42,19 @@ class FreeResponseBySurveyQuestionContainer extends Component {

{i18n.studentFreeResponseAnswers()}

{freeResponsesByQuestion.map((question, index) => (
-
- {`${question.questionNumber}. ${question.questionText.slice(0, QUESTION_CHARACTER_LIMIT)}`} - {question.questionText.length >= QUESTION_CHARACTER_LIMIT && - {i18n.seeFullQuestion()} - } -
+ {!this.state.isExpanded && +
+ {`${question.questionNumber}. ${question.questionText.slice(0, QUESTION_CHARACTER_LIMIT)}`} + {question.questionText.length >= QUESTION_CHARACTER_LIMIT && + {i18n.seeFullQuestion()} + } +
+ } + {this.state.isExpanded && +
+ {`${question.questionNumber}. ${question.questionText}`} +
+ }