-
-
+enrollment_flow->enrollment_flow_steps as $step): ?>
+
+ = (int)$vv_step_config['enrollment_flow_step']['ordr'])): ?>
+ petition_step_results, "{n}[enrollment_flow_step_id=$step->id]"); ?>
+
+
+
+
+
+ step
= $step->description ?>
-
-
-
-
- = !empty($result) ? $result[0]->comment : '' ?>
-
+
-
-
-
= $step->plugin ?>
- = $this->cell($step->plugin, [$vv_obj->id], ['vv_obj' => $vv_obj, 'vv_step' => $step, 'viewVars' => $this->viewVars]) ?>
-
-
+
+
+ cell($step->plugin, [$petitionObj->id], ['vv_obj' => $petitionObj, 'vv_step' => $step, 'viewVars' => $this->viewVars]));
+ ?>
+
+
+ = $cellOutput ?>
+
+
+
+
+
+
-petition_history_records)):
- // XXX Generalize this into an element for all history records if we use this output elsewhere
-?>
-
-
-
-
-
-
- | = __d('field', 'action'); ?> |
- = __d('field', 'actor'); ?> |
- = __d('field', 'comment'); ?> |
- = __d('field', 'created'); ?> |
-
-
-
-
- petition_history_records as $hr): ?>
+
+ petition_history_records)):
+ // XXX Generalize this into an element for all history records if we use this output elsewhere
+ ?>
+
+
+
+
+
- |
- =
- // We only render the code here (not the localization) partly because some
- // codes may not be localized (especially local plugins) but also because
- // it's noisy to render the full string when mostly 'comment' has the content
- // of actual interest
- $hr->action //__d('enumeration','PetitionActionEnum.' . $hr['action'])
- ?>
- |
-
- =
- !empty($hr->actor_person_id)
- ? $this->Html->link(
- $hr->actor_person->primary_name->full_name,
- [
- 'controller' => 'people',
- 'action' => 'edit',
- $hr->actor_person_id
- ]
- )
- : ""
- ?>
- |
- = $hr->comment ?> |
- = $this->Time->nice($hr->created, $vv_tz) ?> |
+ = __d('field', 'action'); ?> |
+ = __d('field', 'actor'); ?> |
+ = __d('field', 'comment'); ?> |
+ = __d('field', 'created'); ?> |
-
-
-
-
-
+
+
+
+ petition_history_records as $hr): ?>
+
+ |
+ =
+ // We only render the code here (not the localization) partly because some
+ // codes may not be localized (especially local plugins) but also because
+ // it's noisy to render the full string when mostly 'comment' has the content
+ // of actual interest
+ $hr->action //__d('enumeration','PetitionActionEnum.' . $hr['action'])
+ ?>
+ |
+
+ =
+ !empty($hr->actor_person_id)
+ ? $this->Html->link(
+ $hr->actor_person->primary_name->full_name,
+ [
+ 'controller' => 'people',
+ 'action' => 'edit',
+ $hr->actor_person_id
+ ]
+ )
+ : ""
+ ?>
+ |
+ = $hr->comment ?> |
+ = $this->Time->nice($hr->created, $vv_tz) ?> |
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/templates/element/flash.php b/app/templates/element/flash.php
index 0f5e59e6e..173a46aae 100644
--- a/app/templates/element/flash.php
+++ b/app/templates/element/flash.php
@@ -26,23 +26,25 @@
*/
?>
-
-
- Flash->render();
-
- /* Render information banners explicitly defined in Configuration.
- These are defined in the alerts[] array in columns.inc and fields.inc files.
- See app/templates/ApiUsers/columns.inc for an example. These must
- be passed in as $vv_alerts to this element from the calling template.
- */
- if(!empty($vv_alerts)) {
- foreach($vv_alerts as $a) {
- print $this->element('notify/alert', $a);
+request->getSession()->check('Flash.flash') || !empty($vv_alerts)): ?>
+
+
+ Flash->render();
+
+ /* Render information banners explicitly defined in Configuration.
+ These are defined in the alerts[] array in columns.inc and fields.inc files.
+ See app/templates/ApiUsers/columns.inc for an example. These must
+ be passed in as $vv_alerts to this element from the calling template.
+ */
+ if(!empty($vv_alerts)) {
+ foreach($vv_alerts as $a) {
+ print $this->element('notify/alert', $a);
+ }
}
- }
- ?>
-
\ No newline at end of file
+ ?>
+
+
\ No newline at end of file
diff --git a/app/templates/element/form/nameDiv.php b/app/templates/element/form/nameDiv.php
index d9e0b5e86..375436646 100644
--- a/app/templates/element/form/nameDiv.php
+++ b/app/templates/element/form/nameDiv.php
@@ -69,6 +69,12 @@
} elseif (isset($vv_field_arguments['fieldOptions']['required'])) {
$isRequired = $vv_field_arguments['fieldOptions']['required'];
}
+// This is to catch required flags from enrollment flow fields (which use an older format for defining fields).
+// XXX CFM-518 - Align the CoreEnroller with the new approach and remove duplicate elements
+// (in plugins/CoreEnroller/templates/element).
+if(isset($vv_field_arguments['fieldOptions']['required'])) {
+ $isRequired = $vv_field_arguments['fieldOptions']['required'];
+}
// Extra class required for the grouped controls elements
if(isset($groupedControls)) {
diff --git a/app/templates/element/javascript.php b/app/templates/element/javascript.php
index 408305896..fa80a4b2d 100644
--- a/app/templates/element/javascript.php
+++ b/app/templates/element/javascript.php
@@ -223,18 +223,12 @@
// We allow Bootstrap to manage the accordion behavior, but we must set the state of our arrows.
$('.field-with-toggle').click(function() {
let toggleButton = $(this).find('button.cm-toggle').first();
- if($(toggleButton).attr('aria-expanded') == 'false') {
+ if($(toggleButton).attr('aria-expanded') === 'false') {
$(toggleButton).find('em').text("arrow_drop_down");
} else {
$(toggleButton).find('em').text("arrow_drop_up");
}
});
-
- // Toggle All button for Enrollment Flow Steps
- // We click all the fields that have an associated accordion just to set the arrow state.
- $('button.enrollment-steps-toggle-all-button').click(function() {
- $('#view_Petitions').find('.field-with-toggle').trigger('click');
- });
// Make all submit buttons pretty (Bootstrap)
$("input:submit").addClass("spin submit-button btn btn-primary");
diff --git a/app/webroot/css/co-base.css b/app/webroot/css/co-base.css
index 40e6d9b4d..dabd3f06c 100644
--- a/app/webroot/css/co-base.css
+++ b/app/webroot/css/co-base.css
@@ -2142,7 +2142,8 @@ body.start .submit {
margin: 1em 1em 2em;
font-size: 1.1em;
}
-#dispatch-list-container ul.fields li.fields-accepted .field {
+#dispatch-list-container ul.fields li.fields-accepted .field,
+#dispatch-list-container ul.fields li.fields-approved .field {
background-color: var(--cmg-color-bg-001);
border: 1px solid var(--cmg-color-bg-006);
padding: 1em 1.5em 1.5em;
@@ -2151,7 +2152,17 @@ body.start .submit {
justify-content: center;
flex-wrap: wrap;
}
-#dispatch-list-container ul.fields li.fields-accepted .field-info label {
+#dispatch-list-container ul.fields li.fields-approved .field {
+ background-color: var(--cmg-color-highlight-004);
+ color: var(--cmg-color-highlight-003);
+ border-color: var(--cmg-color-highlight-017);
+ border-bottom: none;
+}
+#dispatch-list-container ul.fields li.fields-approved .field {
+ border-bottom: none;
+}
+#dispatch-list-container ul.fields li.fields-accepted .field-info label,
+#dispatch-list-container ul.fields li.fields-approved .field-info label {
display: flex;
align-items: center;
gap: 0.25em;
@@ -2161,17 +2172,44 @@ body.start .submit {
border-radius: 3px;
box-shadow: 0 1px 1px 0 rgba(0,0,0,.14),0 3px 1px -3px rgba(0,0,0,.2),0 1px 3px 0 rgba(0,0,0,.12);
}
-#dispatch-list-container ul.fields li.fields-accepted .field-info label[for='accepted-1'].is-selected {
+#dispatch-list-container ul.fields li.fields-accepted .field-info label[for='accepted-1'].is-selected,
+#dispatch-list-container ul.fields li.fields-approved .field-info label[for='approved-y'].is-selected {
background-color: var(--cmg-color-highlight-006);
border: 1px solid var(--cmg-color-highlight-008);
color: var(--cmg-color-highlight-007);
}
-#dispatch-list-container ul.fields li.fields-accepted .field-info label .form-check-input {
+#dispatch-list-container ul.fields li.fields-accepted .field-info label .form-check-input,
+#dispatch-list-container ul.fields li.fields-approved .field-info label .form-check-input {
margin-top: 0;
}
-#dispatch-list-container ul.fields li.fields-accepted .field .radio {
+#dispatch-list-container ul.fields li.fields-accepted .field .radio,
+#dispatch-list-container ul.fields li.fields-approved .field .radio {
gap: 0.5em;
}
+#approver-petition-info {
+ overflow-x: unset;
+}
+#view-petition-button {
+ float: right;
+ margin: -4em 0 1rem 0;
+}
+#dispatch-list-container ul#view_Petitions .field-title {
+ font-size: 1em;
+}
+#dispatch-list-container ul#view_Petitions .field-info {
+ padding: 0;
+}
+#dispatch_ApprovalCollectors .fields-comment .field {
+ padding: 0 1em 2em 1.25em;
+ margin: -0.5em 0 1em;
+ border-top: none;
+ border-color: var(--cmg-color-highlight-017);
+ background-color: var(--cmg-color-highlight-004);
+ color: var(--cmg-color-highlight-003);
+}
+#dispatch-list-container li.fields-approved {
+ margin-top: 2rem;
+}
/* DIALOG BOX */
#dialog .modal-header {
background-color: var(--cmg-color-bg-004);
@@ -2286,10 +2324,10 @@ ul.form-list li.petition-status-title-finalized {
ul.form-list li.petition-status-title-finalized h2 {
color: var(--cmg-color-highlight-007);
}
-ul.form-list li.petition-enrollee-items,
-ul.form-list li.petition-enrollee-items .field:hover {
+ul.form-list li.petition-enrollee-items {
background-color: var(--cmg-color-highlight-004);
color: var(--cmg-color-highlight-005);
+ border-bottom: 1px solid var(--cmg-color-highlight-019);
}
ul.form-list li.petition-enrollee-items .field-info {
display: flex;
@@ -2305,33 +2343,90 @@ ul.form-list li.petition-enrollee-items .petition-inline-value a {
.env-source-value {
word-break: break-all;
}
+ul#view_Petitions.form-list .field:hover {
+ background-color: unset;
+}
ul#view_Petitions.form-list li.env-source-key-value-newgroup {
border-top: 1px solid var(--cmg-color-bg-005);
}
+ul#view_Petitions.form-list .field.petition-step.field-with-toggle,
+#dispatch-list-container ul#view_Petitions.form-list .field.petition-step.field-with-toggle {
+ display: flex;
+ justify-content: space-between;
+ background-color: var(--cmg-color-bg-003);
+ border-bottom: 1px solid var(--cmg-color-bg-006);
+ border-left: 1px solid var(--cmg-color-bg-006);
+ border-right: 1px solid var(--cmg-color-bg-006);
+}
+#dispatch-list-container ul#view_Petitions.form-list .field.petition-step.field-with-toggle {
+ border-top: 1px solid var(--cmg-color-bg-006);
+}
.petition-step-modified {
margin-right: 1em;
}
-.petition-attrs {
- padding: 0;
- box-shadow: inset 0 0 0.5rem 0 rgba(0,0,0,0.1);
+h3.petition-step-description {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ font-size: 1.1rem;
+ margin: 0;
+ line-height: unset;
+}
+#content h3.petition-step-description .material-symbols-outlined {
+ font-size: 1.5rem;
+ color: var(--cmg-color-btn-bg-003);
+}
+.petition-step-meta {
+ display: flex;
+ align-items: center;
+}
+.petition-step-state {
+ display: flex;
+ align-items: center;
+ gap: 0.25rem;
+}
+#content .petition-step-state .material-symbols-outlined {
+ font-size: 1.2rem;
}
-.petition-attrs h3 {
+.petition-step-state-completed {
+ color: var(--cmg-color-highlight-020);
+}
+.petition-step-state-pending {
+ color: var(--cmg-color-btn-bg-003);
+}
+.petition-step-plugin-title {
padding: 1rem 1rem 0;
margin: 0;
- font-size: 1.2em;
- font-weight: 600;
- border-top: 1px solid var(--cmg-color-bg-006);
+ font-size: 0.9rem;
+ font-weight: 300;
+ font-style: italic;
+}
+ul.petiton-step-plugin-meta {
+ padding-left: 0;
+ font-size: 0.9em;
+}
+ul.petiton-step-plugin-meta li {
+ background-color: var(--cmg-color-bg-001);
+}
+.petition-attrs {
+ padding: 0;
+ border: 1px solid var(--cmg-color-bg-005);
+ font-style: italic;
+}
+#dispatch-list-container .petition-attrs {
+ margin: 0 0 1rem;
}
.petition-attrs h4 {
font-size: 0.9em;
margin: 0 0 0.25em;
}
.petition-attrs > ul {
- padding: 0 0 1rem;
+ padding: 0;
border-top: none;
}
-.petition-attrs > ul > li {
- padding: 0.5rem 1rem;
+.petition-attrs > ul > li,
+#dispatch-list-container .petition-attrs > ul > li {
+ padding: 0.5em 1em;
border: none;
background-color: unset;
}
@@ -2340,6 +2435,7 @@ ul#view_Petitions.form-list li.env-source-key-value-newgroup {
}
ul.petition-attrs-subset {
padding: 0;
+ margin-bottom: 0.5rem;
border: 1px solid var(--cmg-color-bg-005);
border-top: none;
}
diff --git a/app/webroot/css/co-color.css b/app/webroot/css/co-color.css
index 09e5131ce..363206936 100644
--- a/app/webroot/css/co-color.css
+++ b/app/webroot/css/co-color.css
@@ -89,6 +89,8 @@
--cmg-color-highlight-017: #cee6f8; /* alert: info border color (blue) */
--cmg-color-highlight-018: yellow; /* autocomplete highlight for query text */
+ --cmg-color-highlight-019: #c9e0f2; /* blue border for highlight-004 */
+ --cmg-color-highlight-020: #17730d; /* green text, "Completed" on petitions */
--cmg-color-shadow-01: 0px 0px 2px 0px rgba(13,69,115,0.6); /* RGBA box-shadow color based on --cmg-color-btn-bg-001 */
@@ -167,12 +169,14 @@ html.dark-mode {
--cmg-color-highlight-012: #d9b4b4; /* alert: danger (red) */
--cmg-color-highlight-013: #e33; /* title for deleted/archived (red) */
- --cmg-color-highlight-014: #900; /* danger badge (red) */
+ --cmg-color-highlight-014: #900; /* danger badge (red) */
--cmg-color-highlight-015: #842029; /* alert: danger text color (red) */
--cmg-color-highlight-016: #d9b4b4; /* alert: danger border color (red) */
- --cmg-color-highlight-017: #333; /* alert: info border color (blue) */
+ --cmg-color-highlight-017: #333; /* alert: info border color (blue) */
--cmg-color-highlight-018: #cc0; /* autocomplete highlight for query text */
+ --cmg-color-highlight-019: #111; /* blue border for highlight-004 */
+ --cmg-color-highlight-020: #1e9711; /* green text, "Completed" on petitions */
--cmg-color-shadow-01: 0px 0px 2px 0px rgba(13,69,115,0.8); /* RGBA box-shadow color based on --cmg-color-btn-bg-001 */
diff --git a/app/webroot/css/co-responsive.css b/app/webroot/css/co-responsive.css
index 2615f1e4d..3eb77f05b 100644
--- a/app/webroot/css/co-responsive.css
+++ b/app/webroot/css/co-responsive.css
@@ -106,9 +106,16 @@
.petition-attrs > ul {
columns: 2;
column-rule: 1px solid var(--cmg-color-bg-005);
+ gap: 0;
}
.petition-attrs > ul > li {
break-inside: avoid;
+ padding: 0.75em 1.5em;
+ }
+ #dispatch-list-container ul#view_Petitions .field {
+ display: grid;
+ padding: 0.5rem 1rem;
+ grid-template-columns: 1fr 1fr;
}
/* PERSON CANVAS / CARDS */
.co-cards .field-data-container {
@@ -129,11 +136,13 @@
left: -20em;
}
/* DISPATCH */
- #dispatch-list-container ul.fields li.fields-accepted .field {
+ #dispatch-list-container ul.fields li.fields-accepted .field,
+ #dispatch-list-container ul.fields li.fields-approved .field {
justify-content: space-between;
padding: 1em 1em 1em 1.25em;
}
- #dispatch-list-container ul.fields li.fields-accepted .field-info {
+ #dispatch-list-container ul.fields li.fields-accepted .field-info,
+ #dispatch-list-container ul.fields li.fields-approved .field-info {
padding: 0;
}
/* DENSITY SETTINGS (from User Settings Menu; Medium is default) */
@@ -675,16 +684,11 @@
body.dispatch #main,
body.start #main {
background-color: var(--cmg-color-body-bg);
- margin: 4em auto;
+ margin: 4em auto 8em;
padding: 0 2em;
border: 1px solid var(--cmg-color-bg-006);
border-radius: 1em;
}
- /* PETITIONS */
- .petition-key-value {
- display: grid;
- grid-template-columns: 1fr 1fr;
- }
}
/* EXTRA LARGE */