diff --git a/app/plugins/CoreEnroller/src/Controller/ApprovalCollectorsController.php b/app/plugins/CoreEnroller/src/Controller/ApprovalCollectorsController.php index cda414ae2..22c6d53fb 100644 --- a/app/plugins/CoreEnroller/src/Controller/ApprovalCollectorsController.php +++ b/app/plugins/CoreEnroller/src/Controller/ApprovalCollectorsController.php @@ -55,6 +55,15 @@ public function dispatch(string $id) { $petition = $this->getPetition(); $coId = $this->getCOID(); + + // We need the petition to have more information in the approval view, so + // build a view variable that holds more than vv_petition. + $Petition = TableRegistry::getTableLocator()->get('Petitions'); + if(!empty($petition->id)) { + $this->set('vv_approval_petition', $Petition->get($petition->id, contain: $Petition->getViewContains())); + } else { + $this->set('vv_approval_petition', null); + } if($request->is('post')) { $cfg = $this->ApprovalCollectors->get($id); diff --git a/app/plugins/CoreEnroller/src/View/Cell/AttributeCollectorsCell.php b/app/plugins/CoreEnroller/src/View/Cell/AttributeCollectorsCell.php index 87665564a..0c7d3ed51 100644 --- a/app/plugins/CoreEnroller/src/View/Cell/AttributeCollectorsCell.php +++ b/app/plugins/CoreEnroller/src/View/Cell/AttributeCollectorsCell.php @@ -88,7 +88,7 @@ public function initialize(): void */ public function display(int $petitionId): void { - $vv_enrollment_atttributes_ids = Hash::extract($this->vv_obj->petition_attributes, '{n}.enrollment_attribute_id'); + $vv_enrollment_atttributes_ids = Hash::extract($this->vv_obj->petition_attributes ?? [], '{n}.enrollment_attribute_id'); $vv_enrollment_atttributes_ids = array_unique($vv_enrollment_atttributes_ids); $vv_enrollment_attributes = []; diff --git a/app/plugins/CoreEnroller/templates/ApprovalCollectors/dispatch.inc b/app/plugins/CoreEnroller/templates/ApprovalCollectors/dispatch.inc index bf30ecb1c..4eefa1eae 100644 --- a/app/plugins/CoreEnroller/templates/ApprovalCollectors/dispatch.inc +++ b/app/plugins/CoreEnroller/templates/ApprovalCollectors/dispatch.inc @@ -29,44 +29,75 @@ declare(strict_types = 1); use \App\Lib\Enum\PetitionStatusEnum; -print $this->element('flash', []); - // Make the Form fields editable $this->Field->enableFormEditMode(); ?> -

id]); ?>

- -

Html->link(__d('operation', 'view'), ['plugin' => null, 'controller' => 'petitions', 'action' => 'view', $vv_petition->id]); ?>

+
  • + + Html->link( + 'open_in_new ' . + __d('operation', 'view.Petitions.a',[$vv_petition->id]), + [ + 'plugin' => null, + 'controller' => 'petitions', + 'action' => 'view', + $vv_petition->id + ], + [ + 'id' => 'view-petition-button', + 'class' => 'btn btn-sm btn-primary', + 'target' => 'co-petition-window', + 'escape' => false + ]); + ?> + +
    + +
    +
  • Form->create(null, [ - 'id' => 'approval-form', - 'type' => 'post' - ]); - - print $this->Form->radio( - 'approved', - [ - PetitionStatusEnum::Approved => __d('enumeration', 'PetitionStatusEnum.'.PetitionStatusEnum::Approved), - PetitionStatusEnum::Denied => __d('enumeration', 'PetitionStatusEnum.'.PetitionStatusEnum::Denied) - ], - [ + print $this->element('CoreEnroller.listItem', [ + 'arguments' => [ + 'fieldName' => 'approved', + 'fieldLabel' => __d('core_enroller', 'information.ApprovalCollectors.review', [$vv_petition->id]), + 'fieldOptions' => [ + 'type' => 'radio', + 'options' => [ + PetitionStatusEnum::Approved => __d('enumeration', 'PetitionStatusEnum.'.PetitionStatusEnum::Approved), + PetitionStatusEnum::Denied => __d('enumeration', 'PetitionStatusEnum.'.PetitionStatusEnum::Denied) + ], 'value' => !empty($petition_approvals) ? ($petition_approvals['approved'] === true ? PetitionStatusEnum::Approved : ($petition_approvals['approved'] === false ? PetitionStatusEnum::Denied : "")) - : "" + : "", + 'empty' => false, + 'required' => true, + 'class' => 'form-check-input' ] - ); + ]]); print $this->element('CoreEnroller.listItem', [ 'arguments' => [ 'fieldName' => 'comment', 'fieldOptions' => [ - 'default' => $petition_approvals['comment'] ?? "" - ] + 'default' => $petition_approvals['comment'] ?? "", + 'required' => $vv_step_config['require_comment'] ?? false + ], ]]); +?> + + diff --git a/app/resources/locales/en_US/result.po b/app/resources/locales/en_US/result.po index 1a41e5a9e..febd6bfcd 100644 --- a/app/resources/locales/en_US/result.po +++ b/app/resources/locales/en_US/result.po @@ -57,6 +57,9 @@ msgstr "Authenticator {0} Unlocked" msgid "clone.actor" msgstr "Cloned from CO {0}" +msgid "completed" +msgstr "Completed" + msgid "copied" msgstr "Copied" diff --git a/app/templates/Petitions/petition.inc b/app/templates/Petitions/petition.inc index 6e37a7f06..3cbd5a485 100644 --- a/app/templates/Petitions/petition.inc +++ b/app/templates/Petitions/petition.inc @@ -31,12 +31,20 @@ use \Cake\Utility\Hash; use Cake\Utility\Inflector; // Petitions are read-only, though they can link to other actions -if ($vv_action !== 'view') { +if($vv_action !== 'view' && $vv_action !== 'dispatch') { return; } +$petitionObj = null; +if($vv_action == 'view') { + $petitionObj = $vv_obj; +} else { + // we are calling this file from approver dispatch + $petitionObj = $vv_approval_petition; +} + // Start with the petition metadata -$statusTitle = __d('enumeration','PetitionStatusEnum.' . $vv_obj->status); +$statusTitle = __d('enumeration','PetitionStatusEnum.' . $petitionObj->status); $statusCssClass = 'petition-status-title petition-status-title-' . Inflector::dasherize($statusTitle); ?> @@ -47,219 +55,127 @@ $statusCssClass = 'petition-status-title petition-status-title-' . Inflector::da -
  • +
  • -enrollee_person?->id)): ?> -
  • -
    -
    -
    -
    - - : - - - Html->link( - $vv_obj->enrollee_person->primary_name->full_name ?? __d('field', 'Petitions.enrollee.new'), - [ - 'controller' => 'people', - 'action' => 'edit', - $vv_obj->enrollee_person_id - ] - ); - ?> - -
    -
    -
    -
    - enrollee_email)): ?> -
    - - : - - - Html->link( - $vv_obj->enrollee_email, - 'mailto:' . $vv_obj->enrollee_email, - ['class' => 'nospin'] - ); - ?> - -
    - - enrollee_identifier)): ?> -
    - - : - - - enrollee_identifier ?> - -
    - +
  • +
    +
    +
    +
    -
  • - -
    -
    -
    - -
    -
    -
    - Html->link( - $vv_obj->enrollee_person->primary_name->full_name ?? __d('field', 'Petitions.enrollee.new'), - [ - 'controller' => 'people', - 'action' => 'edit', - $vv_obj->enrollee_person_id - ] - ); - ?> -
    +
    +
    - - enrollee_email)): ?> -
  • -
    -
    -
    - -
    -
    -
    - Html->link( - $vv_obj->enrollee_email, - 'mailto:' . $vv_obj->enrollee_email, - ['class' => 'nospin'] - ); - ?> -
    -
    -
  • - - enrollee_identifier)): ?> -
  • -
    -
    -
    - -
    -
    -
    - enrollee_identifier ?> -
    -
    -
  • - - */ ?> - - -petitioner_person?->id)) { - $petitionerStatus = $vv_obj?->petitioner_person?->primary_name?->full_name ?? ''; - $petitionerLink = [ - 'url' => [ - 'controller' => 'people', - 'action' => 'edit', - $vv_obj->petitioner_person->id - ] - ]; - print $this->element('form/listItem', [ - 'arguments' => [ - 'fieldName' => 'petitioner_person_id', - 'status' => $petitionerStatus, - 'link' => !empty($vv_obj->petitioner_person->id) ? $petitionerLink : [] - ] - ]); -} -?> - -
  • - +
  • + +
  • +
    - +
    - enrollee_email)): ?> + Html->link( - $vv_obj->enrollment_flow->name, - [ - 'controller' => 'enrollment_flows', - 'action' => 'edit', - $vv_obj->enrollment_flow->id - ] - ) + $petitionObj->enrollee_email, + 'mailto:' . $petitionObj->enrollee_email, + ['class' => 'nospin'] + ); ?> +
  • -
  • - +
  • - +
    - + enrollee_identifier ?>
  • +petitioner_person?->id)) { + $petitionerStatus = $petitionObj?->petitioner_person?->primary_name?->full_name ?? ''; + $petitionerLink = [ + 'url' => [ + 'controller' => 'people', + 'action' => 'edit', + $petitionObj->petitioner_person->id + ] + ]; + print $this->element('form/listItem', [ + 'arguments' => [ + 'fieldLabel' => __d('field','Petitions.petitioner_person_id'), + 'fieldName' => 'petitioner_person_id', + 'status' => $petitionerStatus, + 'link' => !empty($petitionObj->petitioner_person->id) ? $petitionerLink : [] + ] + ]); + } +?> + + +
  • -
    - +
    - enrollee_email ?> + Html->link( + $petitionObj->enrollment_flow->name, + [ + 'controller' => 'enrollment_flows', + 'action' => 'edit', + $petitionObj->enrollment_flow->id + ] + ) + ?>
  • -
  • - + + + +
  • - +
    - enrollee_identifier ?> + Time->nice($petitionObj->created, $vv_tz) ?>
  • -
    - : Time->nice($vv_obj->created, $vv_tz) ?> +
    - : Time->nice($vv_obj->modified, $vv_tz) ?> + Time->nice($petitionObj->modified, $vv_tz) ?>
  • @@ -271,11 +187,11 @@ if (!empty($vv_obj?->petitioner_person?->id)) {
    enrollment_flow->enrollment_flow_steps as $step) { + foreach($petitionObj->enrollment_flow->enrollment_flow_steps as $step) { $stepIds .= 'collapse-box-' . $step->id . ' '; } ?> -
    - - -enrollment_flow->enrollment_flow_steps as $step): ?> - petition_step_results, "{n}[enrollment_flow_step_id=$step->id]"); ?> -
  • -
    -
    -
    +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 description ?> -

    - -
    -
    - comment : '' ?> -
    +
    - - Time->nice($result[0]->modified, $vv_tz) : '' ?> - -
    - -
    -

    plugin ?>

    - 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])); + ?> + +
    + +
    + + +
    + + -petition_history_records)): - // XXX Generalize this into an element for all history records if we use this output elsewhere -?> -
  • -

    - -

    -
  • -
  • -
    - - - - - - - - - - - - petition_history_records as $hr): ?> + + petition_history_records)): + // XXX Generalize this into an element for all history records if we use this output elsewhere + ?> +
  • +

    + +

    +
  • +
  • +
    +
  • + - - - - + + + + - - -
    - action //__d('enumeration','PetitionActionEnum.' . $hr['action']) - ?> - - actor_person_id) - ? $this->Html->link( - $hr->actor_person->primary_name->full_name, - [ - 'controller' => 'people', - 'action' => 'edit', - $hr->actor_person_id - ] - ) - : "" - ?> - comment ?>Time->nice($hr->created, $vv_tz) ?>
    -
    -
  • + + + + petition_history_records as $hr): ?> + + + action //__d('enumeration','PetitionActionEnum.' . $hr['action']) + ?> + + + actor_person_id) + ? $this->Html->link( + $hr->actor_person->primary_name->full_name, + [ + 'controller' => 'people', + 'action' => 'edit', + $hr->actor_person_id + ] + ) + : "" + ?> + + comment ?> + 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 */