From c136c811598ade4f9e061de9aa874cea893dfe45 Mon Sep 17 00:00:00 2001 From: Calvin Rodo Date: Mon, 25 Nov 2019 22:36:26 -0500 Subject: [PATCH 1/6] Added a required text macro Removed some copy pasted code from various macros --- views/macros/checkboxes.njk | 10 +++------- views/macros/input-text.njk | 10 +++------- views/macros/input-textarea.njk | 10 +++------- views/macros/label-text.njk | 9 +++++++++ views/macros/radios.njk | 10 +++------- 5 files changed, 21 insertions(+), 28 deletions(-) create mode 100644 views/macros/label-text.njk diff --git a/views/macros/checkboxes.njk b/views/macros/checkboxes.njk index 688c1ee..955ce8e 100644 --- a/views/macros/checkboxes.njk +++ b/views/macros/checkboxes.njk @@ -1,14 +1,10 @@ +{% from 'label-text.njk' import labelText with context %} + {% macro checkBoxes(key, values, selectedVals, question, errors, attributes) %}
- {% if attributes.required %} - - {% endif %} - {{ __(question) }} - {% if attributes.required %} - {{ __("required")}} - {% endif %} + {{ labelText(question, attributes.required) }} {% if attributes.hint %} {{ __(attributes.hint) }} diff --git a/views/macros/input-text.njk b/views/macros/input-text.njk index 70990f3..3e5c68f 100644 --- a/views/macros/input-text.njk +++ b/views/macros/input-text.njk @@ -1,3 +1,5 @@ +{% from 'label-text.njk' import labelText with context %} + {# - `name`: field name - `label`: text for the label @@ -10,13 +12,7 @@ {% macro textInput(name, label, attributes) %}
{% if attributes.hint %} {{ __(attributes.hint) }} diff --git a/views/macros/input-textarea.njk b/views/macros/input-textarea.njk index 18f27fd..b907c54 100644 --- a/views/macros/input-textarea.njk +++ b/views/macros/input-textarea.njk @@ -1,3 +1,5 @@ +{% from 'label-text.njk' import labelText with context %} + {# - `name`: field name - `label`: text for the label @@ -10,13 +12,7 @@ {% macro textArea(name, label, attributes) %}
{% if attributes.hint %} {{ __(attributes.hint) }} diff --git a/views/macros/label-text.njk b/views/macros/label-text.njk new file mode 100644 index 0000000..c64d591 --- /dev/null +++ b/views/macros/label-text.njk @@ -0,0 +1,9 @@ +{% macro labelText(text, required) %} + {% if required %} + + {% endif %} + {{ __(text) }} + {% if required %} + {{ __("required")}} + {% endif %} +{% endmacro %} \ No newline at end of file diff --git a/views/macros/radios.njk b/views/macros/radios.njk index 35b82a9..e5bab47 100644 --- a/views/macros/radios.njk +++ b/views/macros/radios.njk @@ -1,14 +1,10 @@ +{% from 'label-text.njk' import labelText with context %} + {% macro radioButtons(key, values, value, question, errors, attributes) %}
- {% if attributes.required %} - - {% endif %} - {{ __(question) }} - {% if attributes.required %} - {{ __("required")}} - {% endif %} + {{ labelText(question, attributes.required) }} {% if attributes.hint %} {{ __(attributes.hint) }} From 7b250910c5d00c57273fcabe9a7b2fd9a3970cfe Mon Sep 17 00:00:00 2001 From: Calvin Rodo Date: Mon, 25 Nov 2019 22:42:05 -0500 Subject: [PATCH 2/6] Pulling out hint-text to it's own macro --- views/macros/checkboxes.njk | 5 ++--- views/macros/hint-text.njk | 5 +++++ views/macros/input-text.njk | 5 ++--- views/macros/input-textarea.njk | 5 ++--- views/macros/radios.njk | 5 ++--- 5 files changed, 13 insertions(+), 12 deletions(-) create mode 100644 views/macros/hint-text.njk diff --git a/views/macros/checkboxes.njk b/views/macros/checkboxes.njk index 955ce8e..e00f411 100644 --- a/views/macros/checkboxes.njk +++ b/views/macros/checkboxes.njk @@ -1,4 +1,5 @@ {% from 'label-text.njk' import labelText with context %} +{% from 'hint-text.njk' import hintText with context %} {% macro checkBoxes(key, values, selectedVals, question, errors, attributes) %}
@@ -6,9 +7,7 @@ {{ labelText(question, attributes.required) }} - {% if attributes.hint %} - {{ __(attributes.hint) }} - {% endif %} + {{ hintText(attributes.hint) }}
{% if errors and errors[key] %} {{ validationMessage(errors[key].msg, key) }} diff --git a/views/macros/hint-text.njk b/views/macros/hint-text.njk new file mode 100644 index 0000000..5eee518 --- /dev/null +++ b/views/macros/hint-text.njk @@ -0,0 +1,5 @@ +{% macro hintText(text) %} + {% if attributes.hint %} + {{ __(attributes.hint) }} + {% endif %} +{% endmacro %} \ No newline at end of file diff --git a/views/macros/input-text.njk b/views/macros/input-text.njk index 3e5c68f..03b7bdc 100644 --- a/views/macros/input-text.njk +++ b/views/macros/input-text.njk @@ -1,4 +1,5 @@ {% from 'label-text.njk' import labelText with context %} +{% from 'hint-text.njk' import hintText with context %} {# - `name`: field name @@ -14,9 +15,7 @@ - {% if attributes.hint %} - {{ __(attributes.hint) }} - {% endif %} + {{ hintText(attributes.hint) }} {% if errors and errors[name] %} {{ validationMessage(errors[name].msg, name) }} {% endif %} diff --git a/views/macros/input-textarea.njk b/views/macros/input-textarea.njk index b907c54..c1f1e96 100644 --- a/views/macros/input-textarea.njk +++ b/views/macros/input-textarea.njk @@ -1,4 +1,5 @@ {% from 'label-text.njk' import labelText with context %} +{% from 'hint-text.njk' import hintText with context %} {# - `name`: field name @@ -14,9 +15,7 @@ - {% if attributes.hint %} - {{ __(attributes.hint) }} - {% endif %} + {{ hintText(attributes.hint) }} {% if errors and errors[name] %} {{ validationMessage(errors[name].msg, name) }} {% endif %} diff --git a/views/macros/radios.njk b/views/macros/radios.njk index e5bab47..eb0fcc0 100644 --- a/views/macros/radios.njk +++ b/views/macros/radios.njk @@ -1,4 +1,5 @@ {% from 'label-text.njk' import labelText with context %} +{% from 'hint-text.njk' import hintText with context %} {% macro radioButtons(key, values, value, question, errors, attributes) %}
@@ -6,9 +7,7 @@ {{ labelText(question, attributes.required) }} - {% if attributes.hint %} - {{ __(attributes.hint) }} - {% endif %} + {{ hintText(attributes.hint) }}
{% if errors and errors[key] %} {{ validationMessage(errors[key].msg, key) }} From 4a961e4c18c8a5826504d0fad302fa2441365ab5 Mon Sep 17 00:00:00 2001 From: Calvin Rodo Date: Mon, 25 Nov 2019 22:44:13 -0500 Subject: [PATCH 3/6] fixing hintText macro --- views/macros/hint-text.njk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/views/macros/hint-text.njk b/views/macros/hint-text.njk index 5eee518..7a25e96 100644 --- a/views/macros/hint-text.njk +++ b/views/macros/hint-text.njk @@ -1,5 +1,5 @@ {% macro hintText(text) %} - {% if attributes.hint %} - {{ __(attributes.hint) }} + {% if text %} + {{ __(text) }} {% endif %} {% endmacro %} \ No newline at end of file From afb01d079b2df6de2d798d42b13ca0908a342c11 Mon Sep 17 00:00:00 2001 From: Calvin Rodo Date: Mon, 25 Nov 2019 22:57:16 -0500 Subject: [PATCH 4/6] Cleaned up validationMessage Renamed file to be consistent with other macros Moved from base.njk as it wasn't being used outside of macros Moved if statement into macro as it was always included with macro call Explicitly add to each macro as an import --- views/base.njk | 1 - views/macros/checkboxes.njk | 5 ++--- views/macros/input-text.njk | 6 ++---- views/macros/input-textarea.njk | 5 ++--- views/macros/radios.njk | 5 ++--- views/macros/validation-message.njk | 8 ++++++++ views/macros/validationMessage.njk | 6 ------ 7 files changed, 16 insertions(+), 20 deletions(-) create mode 100644 views/macros/validation-message.njk delete mode 100644 views/macros/validationMessage.njk diff --git a/views/base.njk b/views/base.njk index f408236..bea82f1 100644 --- a/views/base.njk +++ b/views/base.njk @@ -1,4 +1,3 @@ -{%- from 'validationMessage.njk' import validationMessage as validationMessage with context -%} {%- from 'input-text.njk' import textInput as textInput with context -%} {%- from 'input-textarea.njk' import textArea as textArea with context -%} {%- from 'radios.njk' import radioButtons as radioButtons with context -%} diff --git a/views/macros/checkboxes.njk b/views/macros/checkboxes.njk index e00f411..53fd16f 100644 --- a/views/macros/checkboxes.njk +++ b/views/macros/checkboxes.njk @@ -1,5 +1,6 @@ {% from 'label-text.njk' import labelText with context %} {% from 'hint-text.njk' import hintText with context %} +{% from 'validation-message.njk' import validationMessage with context %} {% macro checkBoxes(key, values, selectedVals, question, errors, attributes) %}
@@ -9,9 +10,7 @@ {{ hintText(attributes.hint) }}
- {% if errors and errors[key] %} - {{ validationMessage(errors[key].msg, key) }} - {% endif %} + {{ validationMessage(errors, key)}} {% for index, val in values %}
diff --git a/views/macros/input-text.njk b/views/macros/input-text.njk index 03b7bdc..fd9f538 100644 --- a/views/macros/input-text.njk +++ b/views/macros/input-text.njk @@ -1,6 +1,6 @@ {% from 'label-text.njk' import labelText with context %} {% from 'hint-text.njk' import hintText with context %} - +{% from 'validation-message.njk' import validationMessage with context %} {# - `name`: field name - `label`: text for the label @@ -16,9 +16,7 @@ {{ labelText(label, attributes.required) }} {{ hintText(attributes.hint) }} - {% if errors and errors[name] %} - {{ validationMessage(errors[name].msg, name) }} - {% endif %} + {{ validationMessage(errors, name) }}
{% endmacro %} \ No newline at end of file diff --git a/views/macros/input-textarea.njk b/views/macros/input-textarea.njk index c1f1e96..8788e43 100644 --- a/views/macros/input-textarea.njk +++ b/views/macros/input-textarea.njk @@ -1,5 +1,6 @@ {% from 'label-text.njk' import labelText with context %} {% from 'hint-text.njk' import hintText with context %} +{% from 'validation-message.njk' import validationMessage with context %} {# - `name`: field name @@ -16,9 +17,7 @@ {{ labelText(label, attributes.required) }} {{ hintText(attributes.hint) }} - {% if errors and errors[name] %} - {{ validationMessage(errors[name].msg, name) }} - {% endif %} + {{ validationMessage(errors, name) }}
{% endmacro %} \ No newline at end of file diff --git a/views/macros/radios.njk b/views/macros/radios.njk index eb0fcc0..bc2cc02 100644 --- a/views/macros/radios.njk +++ b/views/macros/radios.njk @@ -1,5 +1,6 @@ {% from 'label-text.njk' import labelText with context %} {% from 'hint-text.njk' import hintText with context %} +{% from 'validation-message.njk' import validationMessage with context %} {% macro radioButtons(key, values, value, question, errors, attributes) %}
@@ -9,9 +10,7 @@ {{ hintText(attributes.hint) }}
- {% if errors and errors[key] %} - {{ validationMessage(errors[key].msg, key) }} - {% endif %} + {{ validationMessage(errors, key) }} {% for index, val in values %}
diff --git a/views/macros/validation-message.njk b/views/macros/validation-message.njk new file mode 100644 index 0000000..0620eb9 --- /dev/null +++ b/views/macros/validation-message.njk @@ -0,0 +1,8 @@ +{% macro validationMessage(msg, id) %} + {% if errors and errors[id] %} + + {{ __('Error:') }} + {{ __(errors[id].msg) }} + + {% endif %} +{% endmacro %} \ No newline at end of file diff --git a/views/macros/validationMessage.njk b/views/macros/validationMessage.njk deleted file mode 100644 index 9bddaa6..0000000 --- a/views/macros/validationMessage.njk +++ /dev/null @@ -1,6 +0,0 @@ -{% macro validationMessage(msg, id) %} - - {{ __('Error:') }} - {{ __(msg) }} - -{% endmacro %} \ No newline at end of file From e9696788c9de9fa3c7e455951d15799f9caa470f Mon Sep 17 00:00:00 2001 From: Calvin Rodo Date: Mon, 25 Nov 2019 23:06:46 -0500 Subject: [PATCH 5/6] organized macros Macros that are only included in other macros are now in the sub-imports folder --- views/macros/checkboxes.njk | 6 +++--- views/macros/input-text.njk | 6 +++--- views/macros/input-textarea.njk | 6 +++--- views/macros/radios.njk | 6 +++--- views/macros/{ => sub-imports}/hint-text.njk | 0 views/macros/{ => sub-imports}/label-text.njk | 0 views/macros/{ => sub-imports}/validation-message.njk | 0 7 files changed, 12 insertions(+), 12 deletions(-) rename views/macros/{ => sub-imports}/hint-text.njk (100%) rename views/macros/{ => sub-imports}/label-text.njk (100%) rename views/macros/{ => sub-imports}/validation-message.njk (100%) diff --git a/views/macros/checkboxes.njk b/views/macros/checkboxes.njk index 53fd16f..917f885 100644 --- a/views/macros/checkboxes.njk +++ b/views/macros/checkboxes.njk @@ -1,6 +1,6 @@ -{% from 'label-text.njk' import labelText with context %} -{% from 'hint-text.njk' import hintText with context %} -{% from 'validation-message.njk' import validationMessage with context %} +{% from 'sub-imports/label-text.njk' import labelText with context %} +{% from 'sub-imports/hint-text.njk' import hintText with context %} +{% from 'sub-imports/validation-message.njk' import validationMessage with context %} {% macro checkBoxes(key, values, selectedVals, question, errors, attributes) %}
diff --git a/views/macros/input-text.njk b/views/macros/input-text.njk index fd9f538..b6cbd42 100644 --- a/views/macros/input-text.njk +++ b/views/macros/input-text.njk @@ -1,6 +1,6 @@ -{% from 'label-text.njk' import labelText with context %} -{% from 'hint-text.njk' import hintText with context %} -{% from 'validation-message.njk' import validationMessage with context %} +{% from 'sub-imports/label-text.njk' import labelText with context %} +{% from 'sub-imports/hint-text.njk' import hintText with context %} +{% from 'sub-imports/validation-message.njk' import validationMessage with context %} {# - `name`: field name - `label`: text for the label diff --git a/views/macros/input-textarea.njk b/views/macros/input-textarea.njk index 8788e43..1443423 100644 --- a/views/macros/input-textarea.njk +++ b/views/macros/input-textarea.njk @@ -1,6 +1,6 @@ -{% from 'label-text.njk' import labelText with context %} -{% from 'hint-text.njk' import hintText with context %} -{% from 'validation-message.njk' import validationMessage with context %} +{% from 'sub-imports/label-text.njk' import labelText with context %} +{% from 'sub-imports/hint-text.njk' import hintText with context %} +{% from 'sub-imports/validation-message.njk' import validationMessage with context %} {# - `name`: field name diff --git a/views/macros/radios.njk b/views/macros/radios.njk index bc2cc02..822e496 100644 --- a/views/macros/radios.njk +++ b/views/macros/radios.njk @@ -1,6 +1,6 @@ -{% from 'label-text.njk' import labelText with context %} -{% from 'hint-text.njk' import hintText with context %} -{% from 'validation-message.njk' import validationMessage with context %} +{% from 'sub-imports/label-text.njk' import labelText with context %} +{% from 'sub-imports/hint-text.njk' import hintText with context %} +{% from 'sub-imports/validation-message.njk' import validationMessage with context %} {% macro radioButtons(key, values, value, question, errors, attributes) %}
diff --git a/views/macros/hint-text.njk b/views/macros/sub-imports/hint-text.njk similarity index 100% rename from views/macros/hint-text.njk rename to views/macros/sub-imports/hint-text.njk diff --git a/views/macros/label-text.njk b/views/macros/sub-imports/label-text.njk similarity index 100% rename from views/macros/label-text.njk rename to views/macros/sub-imports/label-text.njk diff --git a/views/macros/validation-message.njk b/views/macros/sub-imports/validation-message.njk similarity index 100% rename from views/macros/validation-message.njk rename to views/macros/sub-imports/validation-message.njk From ba339cfaedc6b2baf681e1cdc7881291af02e831 Mon Sep 17 00:00:00 2001 From: Calvin Rodo Date: Sat, 30 Nov 2019 11:37:12 -0500 Subject: [PATCH 6/6] Update changelog.md --- changelog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.md b/changelog.md index 1dedaee..3e498f3 100644 --- a/changelog.md +++ b/changelog.md @@ -4,6 +4,7 @@ ### Updated - Redirect back with errors. This *may* be a breaking change if you have written any customizations to deal with issues surrounding `renderPageWithErrors` in `validate.helpers.js`. That method has been removed, and now on validation errors, we flash the errors to the session and redirect back to the `get` route. +- Moved duplicated nunjucks code from macros into `views/macros/sub-imports` ### Removed - `renderPageWithErrors` has been removed from `validate.helpers.js`