diff --git a/web/modules/custom/portland/modules/portland_address_verifier/js/main.js b/web/modules/custom/portland/modules/portland_address_verifier/js/main.js index 24c44b4903..f86c200252 100644 --- a/web/modules/custom/portland/modules/portland_address_verifier/js/main.js +++ b/web/modules/custom/portland/modules/portland_address_verifier/js/main.js @@ -3,8 +3,8 @@ attach: function (context) { $(once('address-verifier', '.portland-address-verifier--wrapper', context)).each(function () { const $element = $(this); - const elementId = $element.attr('id'); - + const elementId = $element.attr('id').replace(/--[^-]+--wrapper$/, '--wrapper'); + const apiKey = drupalSettings.portlandmaps_api_key; // Always initialize the model, view, and controller regardless of visibility diff --git a/web/modules/custom/portland/modules/portland_address_verifier/src/Plugin/WebformElement/PortlandAddressVerifier.php b/web/modules/custom/portland/modules/portland_address_verifier/src/Plugin/WebformElement/PortlandAddressVerifier.php index 66814a204a..685ac7239d 100644 --- a/web/modules/custom/portland/modules/portland_address_verifier/src/Plugin/WebformElement/PortlandAddressVerifier.php +++ b/web/modules/custom/portland/modules/portland_address_verifier/src/Plugin/WebformElement/PortlandAddressVerifier.php @@ -76,7 +76,7 @@ protected function formatHtmlItemValue(array $element, WebformSubmissionInterfac $lines = []; $address = ""; - if ($value['location_verification_status'] == 'Verified') { + if ($value['location_verification_status'] == 'Verified' && array_key_exists('address_label', $value)) { $address = $value['address_label']; $address = str_replace("\r\n", "
", $address); } else { @@ -118,7 +118,9 @@ protected function formatTextItemValue(array $element, WebformSubmissionInterfac public function prepare(array &$element, WebformSubmissionInterface $webform_submission = NULL) { parent::prepare($element, $webform_submission); - $machine_name = "edit-" . $element['#webform_key'] . "--wrapper"; + $key = isset($element['#webform_key']) ? $element['#webform_key'] : ""; + + $machine_name = "edit-" . $key . "--wrapper"; $machine_name = str_replace("_", "-", $machine_name); $addressType = array_key_exists('#address_type', $element) && strtolower($element['#address_type']) == "any"; diff --git a/web/modules/custom/portland/modules/portland_zendesk/src/Plugin/WebformHandler/ZendeskHandler.php b/web/modules/custom/portland/modules/portland_zendesk/src/Plugin/WebformHandler/ZendeskHandler.php index 1d184b6631..834189adf5 100644 --- a/web/modules/custom/portland/modules/portland_zendesk/src/Plugin/WebformHandler/ZendeskHandler.php +++ b/web/modules/custom/portland/modules/portland_zendesk/src/Plugin/WebformHandler/ZendeskHandler.php @@ -7,12 +7,8 @@ */ namespace Drupal\portland_zendesk\Plugin\WebformHandler; -use Drupal\Core\Config\ConfigFactoryInterface; -use Drupal\Core\Entity\EntityTypeManagerInterface; use Drupal\Core\Form\FormStateInterface; -use Drupal\Core\Logger\LoggerChannelFactoryInterface; use Drupal\webform\Plugin\WebformHandlerBase; -use Drupal\webform\WebformSubmissionConditionsValidatorInterface; use Drupal\webform\WebformSubmissionInterface; use Drupal\portland_zendesk\Client\ZendeskClient; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -20,9 +16,6 @@ use Drupal\Core\Serialization\Yaml; use Drupal\file\Entity\File; use Drupal\portland_zendesk\Utils\Utility; -use Drupal\webform\Entity\Webform; -use Drupal\webform\WebformSubmissionForm; - /** * Form submission to Zendesk handler. @@ -105,9 +98,11 @@ public function defaultConfiguration() 'group_id' => '', 'assignee_id' => '', 'type' => 'question', + 'is_child_incident' => '', 'collaborators' => '', 'custom_fields' => '', 'ticket_id_field' => '', + 'parent_ticket_id_field' => '', 'ticket_fork_field' => '', 'ticket_form_id' => '', ]; @@ -309,6 +304,13 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta '#required' => false ]; + $form['is_child_incident'] = [ + '#type' => 'checkbox', + '#title' => $this->t('This ticket is the child of a Problem ticket.'), + '#description' => $this->t('Uses the value in the Zendesk Parent Ticket ID field to identify the parent Problem.'), + '#default_value' => $this->configuration['is_child_incident'] ?? 0 + ]; + // space separated tags $form['tags'] = [ '#type' => 'textfield', @@ -454,6 +456,15 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta '#required' => false ]; + $form['parent_ticket_id_field'] = [ + '#type' => 'webform_select_other', + '#title' => $this->t('Zendesk Parent Ticket ID Field'), + '#description' => $this->t('The name of the hidden field which will store the parent ticket ID in a Problem-Incident relationship. This field automatically gets filled with the created Ticket ID unless is_child_incident is true.'), + '#default_value' => $this->configuration['parent_ticket_id_field'], + '#options' => $options['hidden'], + '#required' => false + ]; + $form['ticket_fork_field'] = [ '#type' => 'textfield', '#title' => $this->t('Zendesk Ticket Fork Field'), @@ -462,6 +473,25 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta '#required' => false ]; + $form['subject']['#weight'] = -10; // Place first + $form['comment']['#weight'] = -10; + $form['requester_name']['#weight'] = -10; + $form['requester_email']['#weight'] = -10; + $form['collaborators']['#weight'] = -7; // CCs + $form['tags']['#weight'] = -5; + $form['ticket_id_field']['#weight'] = -4; + $form['parent_ticket_id_field']['#weight'] = -4; + $form['type']['#weight'] = -3; // Ticket Type + $form['incident_child_problem']['#weight'] = -2; // Checkbox + $form['priority']['#weight'] = -1; + $form['status']['#weight'] = 0; + $form['recipient']['#weight'] = 1; + $form['group_id']['#weight'] = 2; + $form['assignee_id']['#weight'] = 3; + $form['ticket_form_id']['#weight'] = 4; + $form['ticket_fork_field']['#weight'] = 5; + $form['custom_fields']['#weight'] = 6; + // TODO: remove once zendesk PHP library is updated for PHP 8.2 error_reporting($error_level); @@ -549,6 +579,8 @@ public function sendToZendesk(array &$form, FormStateInterface &$form_state) { $new_ticket_id = 0; $zendesk_ticket_id_field_name = $this->configuration['ticket_id_field']; + $zendesk_parent_ticket_id_field_name = $this->configuration['parent_ticket_id_field']; + $is_child = $this->configuration['is_child_incident']; // tickets will be forked on the field identified in the config value 'ticket_fork_field' $fork_field_name = $this->configuration['ticket_fork_field']; @@ -559,11 +591,20 @@ public function sendToZendesk(array &$form, FormStateInterface &$form_state) { // check for a report_ticket_id value in the form state; if a handler previously submitted // a ticket, the ID should be available to subsequent handlers. - $prev_ticket_id = $form_state->getValue('report_ticket_id'); + $prev_ticket_id = $form_state->getValue($zendesk_ticket_id_field_name); if ($prev_ticket_id) { - $webform_submission->setElementData('report_ticket_id', $prev_ticket_id); + $webform_submission->setElementData($zendesk_ticket_id_field_name, $prev_ticket_id); } + // check for a parent_ticket_id value in the form state; if a handler previously submitted + // a ticket, the ID should be available to subsequent handlers. + $parent_ticket_id = $form_state->getValue($zendesk_parent_ticket_id_field_name); + if ($parent_ticket_id) { + $webform_submission->setElementData($zendesk_parent_ticket_id_field_name, $parent_ticket_id); + } + + // the 2nd time through, $prev_ticket_id and $parent_ticket_id are both set + if ($fork_field_name) { // if the handler has a fork field configured, grab the values array from that field so we can // spin through it and stuff a single value into the webform_submission for each ticket being created. @@ -593,21 +634,37 @@ public function sendToZendesk(array &$form, FormStateInterface &$form_state) { $data = $webform_submission->getData(); } - // if name field is set and present, add ticket ID to hidden Zendesk Ticket ID field - if ($zendesk_ticket_id_field_name && array_key_exists( $zendesk_ticket_id_field_name, $data ) && $new_ticket_id){ + // if field is set and present, add ticket ID to hidden Zendesk Ticket ID field + // NOTE: Only do this if $prev_ticket_id isn't already set + if (!$prev_ticket_id && $zendesk_ticket_id_field_name && array_key_exists( $zendesk_ticket_id_field_name, $data ) && $new_ticket_id){ $data[$zendesk_ticket_id_field_name] = $new_ticket_id; $form_state->setValue($zendesk_ticket_id_field_name, $new_ticket_id); $form['values'][$zendesk_ticket_id_field_name] = $new_ticket_id; } + // if this is a Problem ticket and parent ticket ID field is present, add new ticket ID there too + if (!$parent_ticket_id && $zendesk_parent_ticket_id_field_name && array_key_exists( $zendesk_parent_ticket_id_field_name, $data ) && $new_ticket_id && !$is_child){ + $data[$zendesk_parent_ticket_id_field_name] = $new_ticket_id; + $form_state->setValue($zendesk_parent_ticket_id_field_name, $new_ticket_id); + $form['values'][$zendesk_parent_ticket_id_field_name] = $new_ticket_id; + } + return $new_ticket_id; // if a null is returned, an error/try-again message will be displayed to the user } public function submitTicket(WebformSubmissionInterface $webform_submission, $configuration) { + $zendesk_parent_ticket_id_field_name = $this->configuration['parent_ticket_id_field']; + $is_child = $this->configuration['is_child_incident']; + $submission_fields = $webform_submission->toArray(TRUE); $new_ticket_id = 0; $request = []; + if ($is_child && array_key_exists('parent_ticket_id', $submission_fields['data'])) { + $parent_ticket_id = $submission_fields['data'][$zendesk_parent_ticket_id_field_name]; + $request['problem_id'] = $parent_ticket_id; + } + // Allow for either values coming from other fields or static/tokens foreach ($this->defaultConfigurationNames() as $field) { $request[$field] = $configuration[$field]; diff --git a/web/sites/default/config/webform.webform.apply_outdoor_dining_permit.yml b/web/sites/default/config/webform.webform.apply_outdoor_dining_permit.yml index ab49de9f80..11055ee646 100644 --- a/web/sites/default/config/webform.webform.apply_outdoor_dining_permit.yml +++ b/web/sites/default/config/webform.webform.apply_outdoor_dining_permit.yml @@ -381,7 +381,7 @@ handlers: tags: 'drupal webform [webform_submission:values:computed_permit_type]' priority: normal status: new - recipient: '' + recipient: outdoordining@portlandoregon.gov group_id: '26629264449943' assignee_id: '' type: question @@ -390,6 +390,8 @@ handlers: ticket_id_field: report_ticket_id ticket_fork_field: '' ticket_form_id: '26628296208535' + is_child_incident: 0 + parent_ticket_id_field: '' zendesk_update_request: id: zendesk_update_ticket handler_id: zendesk_update_request diff --git a/web/sites/default/config/webform.webform.transportation_wallet.yml b/web/sites/default/config/webform.webform.transportation_wallet.yml new file mode 100644 index 0000000000..2413762e99 --- /dev/null +++ b/web/sites/default/config/webform.webform.transportation_wallet.yml @@ -0,0 +1,1873 @@ +uuid: 420b9fe2-9139-4ed7-adc5-c06d2bbf93fa +langcode: en +status: open +dependencies: + module: + - portland + - portland_zendesk +third_party_settings: + portland: + disable_demographic_form_prompt: 0 + exclude_from_json: { } +weight: 0 +open: null +close: null +uid: 221 +template: false +archive: false +id: transportation_wallet +title: 'Apply Transportation Wallet' +description: '' +categories: + - Utility +elements: |- + page_wallet_choice: + '#type': webform_wizard_page + '#title': 'Choose your Wallet' + '#states_clear': false + section_wallet_choice: + '#type': webform_section + '#title': 'Choose your Wallet Option' + markup_transportation_option_cards: + '#type': webform_markup + '#markup': '
  1. Option 1 — Transit for a Year

    • icon Transit: A TriMet Honored Citizen 1-year Pass for unlimited rides
  2. Option 2 — All Modes

    • icon Transit: $200 on your Hop card
    • icon BIKETOWN: BIKETOWN for All or Adaptive BIKETOWN
    • icon Prepaid Visa card: $75 for transportation services
  3. Option 3 — All Modes Household

    • icon Transit: $225-$300 on your Hop card
    • icon BIKETOWN: BIKETOWN for All or Adaptive BIKETOWN
    • icon Prepaid Visa card: $100-$175 for transportation services
' + apply_wallet_package: + '#type': radios + '#title': 'Which Transportation Wallet package would you like to sign up for?' + '#options': + wallet_option_1: 'Option 1: Individual - TriMet Honored Citizen 1-year Pass' + wallet_option_2: 'Option 2: Individual - Transit, BIKETOWN for All, and prepaid Visa card' + wallet_option_3: 'Option 3: Household - Transit, BIKETOWN for All, and prepaid Visa card' + '#required': true + page_wallet_info: + '#type': webform_wizard_page + '#title': 'Wallet information' + computed_selection: + '#type': webform_computed_twig + '#title': 'Computed Selection' + '#title_display': none + '#display_on': form + '#mode': html + '#template': |- + {% set radios_options = { + 'wallet_option_1': 'Option 1: Individual - TriMet Honored Citizen 1-year Pass', + 'wallet_option_2': 'Option 2: Individual - Transit, BIKETOWN for All, and prepaid Visa card', + 'wallet_option_3': 'Option 3: Household - Transit, BIKETOWN for All, and prepaid Visa card' + } %} +

{{ radios_options[data.apply_wallet_package] }}

+

 

+ apply_household_size: + '#type': select + '#title': 'How many people are in your household? (include yourself in the count)' + '#options': + 1: '1' + 2: '2' + 3: '3' + 4: '4' + 5: '5' + '#required': true + '#states': + visible: + ':input[name="apply_wallet_package"]': + value: wallet_option_3 + section_hop_card_details: + '#type': webform_section + '#title': 'Your Hop card details' + '#title_tag': h3 + '#states': + visible: + - ':input[name="apply_household_size"]': + value: + greater: '1' + - or + - ':input[name="apply_wallet_package"]': + '!value': wallet_option_3 + '#attributes': + id: member_1_container + contact_first_name: + '#type': textfield + '#title': 'Your First Name' + '#required': true + contact_last_name: + '#type': textfield + '#title': 'Your Last Name' + '#required': true + apply_date_of_birth: + '#type': date + '#title': 'What is your date of birth? (MM/DD/YYYY)' + '#description': '

Must be 18 years or older.

' + '#required': true + '#date_date_min': '120 years ago' + '#date_date_max': '18 years ago' + '#date_date_format': m/d/Y + apply_has_hop_card: + '#type': radios + '#title': 'Do you have a Hop card?' + '#options': + 'No': 'No' + 'Yes': 'Yes' + '#required': true + apply_current_hop_card: + '#type': radios + '#title': 'What type of Hop card do you have?' + '#options': + 'Adult Hop card': 'Adult Hop card -- ' + 'Honored Citizen Hop card': 'Honored Citizen Hop card -- ' + 'Personalized Honored Citizen Hop card': 'Personalized Honored Citizen Hop card -- ' + 'TriMet LIFT Hop card': 'TriMet LIFT Hop card -- ' + '#required': true + '#states': + visible: + ':input[name="apply_has_hop_card"]': + value: 'Yes' + ':input[name="apply_wallet_package"]': + value: wallet_option_1 + apply_hop_card_number: + '#type': textfield + '#title': 'Please enter your 16-digit Hop card number' + '#maxlength': 16 + '#input_mask': '9{0,16}' + '#required': true + '#pattern': '^[0-9]{16}$' + '#pattern_error': 'Hop card number must be 16 digits.' + '#counter_type': character + '#counter_minimum': 16 + '#counter_maximum': 16 + '#states': + visible: + - ':input[name="apply_current_hop_card"]': + value: 'Honored Citizen Hop card' + - or + - ':input[name="apply_current_hop_card"]': + value: 'Personalized Honored Citizen Hop card' + - or + - ':input[name="apply_wallet_package"]': + value: wallet_option_2 + ':input[name="apply_has_hop_card"]': + value: 'Yes' + - or + - ':input[name="apply_wallet_package"]': + value: wallet_option_3 + ':input[name="apply_has_hop_card"]': + value: 'Yes' + '#attributes': + inputmode: numeric + apply_hop_card_needed: + '#type': radios + '#title': 'What type of Hop card do you need?' + '#options': + honored_citizen_hop_card: 'I am over the age of 65 and need an Honored Citizen Hop card' + personalized_honored_citizen_hop_card: 'I am under the age of 65 and will apply for an Honored Citizen Hop card through TriMet' + '#required': true + '#states': + visible: + ':input[name="apply_wallet_package"]': + value: wallet_option_1 + ':input[name="apply_has_hop_card"]': + value: 'No' + markup_email_hc: + '#type': webform_markup + '#states': + visible: + ':input[name="apply_wallet_package"]': + value: wallet_option_2 + ':input[name="apply_hop_card_needed"]': + value: low_income_hop_card + '#markup': '

Important

Once you receive your Hop card, you must email the 16-digit Hop card number to wallet@portlandoregon.gov.

' + apply_hop_card_needed_opt_2_3: + '#type': radios + '#title': 'What type of Hop card do you need?' + '#options': + adult_hop_card: 'I need an Adult Hop card (18+)' + honored_citizen_hop_card: 'I am over the age of 65 and need an Honored Citizen Hop Card' + personalized_honored_citizen_hop_card: 'I am under the age of 65 and will apply for an Honored Citizen Hop card through TriMet' + '#required': true + '#states': + visible: + ':input[name="apply_has_hop_card"]': + value: 'No' + ':input[name="apply_wallet_package"]': + '!value': wallet_option_1 + container_honored_citizen: + '#type': container + markup_honored_citizen_criteria: + '#type': webform_markup + '#states': + visible: + - ':input[name="apply_current_hop_card"]': + value: 'Adult Hop card' + - xor + - ':input[name="apply_wallet_package"]': + value: wallet_option_1 + ':input[name="apply_hop_card_needed"]': + value: personalized_honored_citizen_hop_card + - xor + - ':input[name="apply_wallet_package"]': + value: wallet_option_1 + ':input[name="apply_hop_card_needed"]': + value: adult_hop_card + '#admin_title': 'Next Steps' + '#markup': '

Next Steps

In order to receive an Option 1 card, you must have an Honored Citizen Hop card through TriMet. Please follow the below steps to complete your Wallet registration.

  1. Continue filling out this form so that we have your information.
  2. Apply for your Honored Citizen Hop card as soon as possible.
  3. Once you have received your Honored Citizen Hop card, email wallet@portlandoregon.gov with your 16-digit card number so we can process your annual pass.
' + apply_next_steps_choice: + '#type': radios + '#title': 'How would you like to proceed?' + '#options': + 'I will apply for an Honored Citizen Hop Card and email Transportation Wallet staff my 16-digit Hop card number.': 'I will apply for an Honored Citizen Hop Card and email Transportation Wallet staff my 16-digit Hop card number.' + 'I want to start over and select Option 2 ($200 Hop card, BIKETOWN for All, and $75 prepaid Visa card).': 'I want to start over and select Option 2 ($200 Hop card, BIKETOWN for All, and $75 prepaid Visa card).' + '#required': true + '#states': + visible: + - ':input[name="apply_current_hop_card"]': + value: 'Adult Hop card' + - xor + - ':input[name="apply_wallet_package"]': + value: wallet_option_1 + ':input[name="apply_hop_card_needed"]': + value: personalized_honored_citizen_hop_card + - xor + - ':input[name="apply_wallet_package"]': + value: wallet_option_1 + ':input[name="apply_hop_card_needed"]': + value: 'Adult Hop card' + '#default_value': 'I will apply for an Honored Citizen Hop Card and email Transportation Wallet staff my 16-digit Hop card number.' + apply_trimet_lift_is_yes: + '#type': radios + '#title': 'Unfortunately, we are unable to load the Honored Citizen 1-year Pass to a TriMet LIFT Hop card. What would you like to do?' + '#options': + 'I will apply for a Personalized Honored Citizen Hop card and will email Transportation Wallet staff the Hop card number when I receive it. We will issue the Honored Citizen 1-year pass but it can only be used on regular TriMet, not TriMet LIFT': 'I will apply for a Personalized Honored Citizen Hop card and will email Transportation Wallet staff the Hop card number when I receive it. We will issue the Honored Citizen 1-year pass but it can only be used on regular TriMet, not TriMet LIFT.' + 'I want to start over and select Option 2. We can load the $200 on your TriMet LIFT Hop card.': 'I want to start over and select Option 2. We can load the $200 on your TriMet LIFT Hop card.' + '#required': true + '#states': + visible: + ':input[name="apply_current_hop_card"]': + value: 'TriMet LIFT Hop card' + markup_switch_button: + '#type': webform_markup + '#states': + visible: + - ':input[name="apply_trimet_lift_is_yes"]': + value: 'I want to start over and select Option 2. We can load the $200 on your TriMet LIFT Hop card.' + - or + - ':input[name="apply_next_steps_choice"]': + value: 'I want to start over and select Option 2 ($200 Hop card, BIKETOWN for All, and $75 prepaid Visa card).' + '#admin_title': 'Switch Button' + '#markup': 'Start Over' + markup_next_steps_honored_citizen_option_2: + '#type': webform_markup + '#states': + visible: + ':input[name="apply_wallet_package"]': + value: wallet_option_2 + ':input[name="apply_hop_card_needed_opt_2_3"]': + value: personalized_honored_citizen_hop_card + '#admin_title': 'Next Steps' + '#markup': '

Next Steps

  1. Continue filling out this form so that we have your information.
  2. Apply for your Honored Citizen Hop card as soon as possible.
  3. Once you have received your Honored Citizen Hop card, email wallet@portlandoregon.gov with your 16-digit card number so we can process your annual pass.
' + markup_next_steps_honored_citizen_option_3: + '#type': webform_markup + '#states': + visible: + ':input[name="apply_wallet_package"]': + value: wallet_option_3 + ':input[name="apply_hop_card_needed_opt_2_3"]': + value: personalized_honored_citizen_hop_card + '#admin_title': 'Next Steps' + '#markup': '

Next Steps

  1. Continue filling out this form so that we have your information.
  2. Apply for your Honored Citizen Hop card as soon as possible.
  3. Once you have received your Honored Citizen Hop card, email wallet@portlandoregon.gov with your 16-digit card number so we can process your annual pass.
' + computed_hop_card_type: + '#type': webform_computed_twig + '#title': 'Computed Hop card Type' + '#display_on': view + '#mode': text + '#template': | + {% if data.apply_wallet_package == 'wallet_option_1' %} + {% if data.apply_has_hop_card == 'No' %} + {{ data.apply_hop_card_needed }} + {% else %} + {{ data.apply_current_hop_card }} + {% endif %} + {% else %} + {% if data.apply_has_hop_card == 'No' %} + {{ data.apply_hop_card_needed_opt_2_3 }} + {% endif %} + {# if opt 2 or 3, we don't ask what kind of hop card, so leave that blank #} + {% endif %} + '#whitespace': trim + computed_tags_primary: + '#type': webform_computed_twig + '#title': 'Computed Tags Primary' + '#display_on': none + '#mode': text + '#template': '{{ data.apply_wallet_package ~ " " ~ data.computed_hop_card_type }}' + '#whitespace': trim + markup_household_size_1: + '#type': webform_markup + '#states': + visible: + ':input[name="apply_household_size"]': + value: '1' + '#admin_title': 'Next Steps' + '#markup': '

Next Steps

Option 3 (All Modes Household) is only for households of multiple people at one address. If you''re only applying for yourself, you must start over and switch to Option 2 (All Modes).


Start Over' + section_additional_household_members: + '#type': webform_section + '#title': 'Additional household members' + '#title_display': invisible + '#states': + visible: + ':input[name="apply_wallet_package"]': + value: wallet_option_3 + ':input[name="apply_household_size"]': + value: + greater: '1' + section_household_member_2: + '#type': webform_section + '#title': 'Household Member 2' + '#title_tag': h3 + '#attributes': + id: member_2_container + first_name_2: + '#type': textfield + '#title': 'First Name' + '#required': true + last_name_2: + '#type': textfield + '#title': 'Last Name' + '#required': true + date_of_birth_member_2: + '#type': date + '#title': "What is this person's date of birth? (MM/DD/YYYY)" + '#required': true + '#date_date_min': '120 years ago' + '#date_date_max': today + '#date_date_format': m/d/Y + has_hop_card_2: + '#type': radios + '#title': 'Does household member 2 have a Hop card?' + '#description': '

Children under the age of 7 do not need to pay a fare.

' + '#description_display': before + '#options': + already_has_hop_card: 'Yes, this person has a Hop card' + youth_hop_card: 'No, this person is between the ages of 7-17 and needs a Youth Hop card' + adult_hop_card: 'No, this person needs an Adult Hop card (18+)' + honored_citizen_hop_card: 'No, this person is over the age of 65 and needs an Honored Citizen Hop card' + personalized_honored_citizen_hop_card: 'No, this person under the age of 65 and will apply for an Honored Citizen Hop card through TriMet' + hop_card_not_needed: 'This person does not need a Hop card' + '#other__option_label': '' + '#other__title': '' + '#other__placeholder': '' + '#other__maxlength': '' + '#required': true + '#other__input_mask': '9{0,16}' + '#other__pattern': '^[0-9]{16}$' + '#other__pattern_error': 'Hop card number must be 16 digits.' + '#other__attributes': + '#inputmode': numeric + hop_card_number_2: + '#type': textfield + '#title': '16-digit Hop card number' + '#input_mask': '9{0,16}' + '#required': true + '#pattern': '^[0-9]{16}$' + '#pattern_error': 'Hop card number must be 16 digits.' + '#counter_type': character + '#counter_minimum': 16 + '#counter_maximum': 16 + '#states': + visible: + ':input[name="has_hop_card_2"]': + value: already_has_hop_card + markup_next_steps_honored_citizen_member_2: + '#type': webform_markup + '#states': + visible: + ':input[name="has_hop_card_2"]': + value: personalized_honored_citizen_hop_card + '#admin_title': 'Next Steps' + '#markup': '

Next Steps

  1. Continue filling out this form so that we have this person''s information.
  2. Apply for the Honored Citizen Hop card as soon as possible.
  3. Once the Honored Citizen Hop card has been received, email wallet@portlandoregon.gov with the 16-digit card number so we can process the annual pass.
' + computed_tags_member_2: + '#type': webform_computed_twig + '#title': 'Computed Tags Member 1' + '#display_on': none + '#mode': text + '#template': '{{ "wallet_option_3 " ~ data.has_hop_card_2 }}' + '#whitespace': trim + section_household_member_3: + '#type': webform_section + '#title': 'Household Member 3' + '#title_tag': h3 + '#states': + visible: + ':input[name="apply_household_size"]': + value: + greater_equal: '3' + '#attributes': + id: member_3_container + first_name_3: + '#type': textfield + '#title': 'First Name' + '#required': true + last_name_3: + '#type': textfield + '#title': 'Last Name' + '#required': true + date_of_birth_member_3: + '#type': date + '#title': "What is this person's date of birth? (MM/DD/YYYY)" + '#required': true + '#date_date_min': '120 years ago' + '#date_date_max': today + '#date_date_format': m/d/Y + has_hop_card_3: + '#type': radios + '#title': 'Does household member 3 have a Hop card?' + '#description': '

Children under the age of 7 do not need to pay a fare.

' + '#description_display': before + '#options': + already_has_hop_card: 'Yes, this person has a Hop card' + youth_hop_card: 'No, this person is between the ages of 7-17 and needs a Youth Hop card' + adult_hop_card: 'No, this person needs an Adult Hop card (18+)' + honored_citizen_hop_card: 'No, this person is over the age of 65 and needs an Honored Citizen Hop card' + personalized_honored_citizen_hop_card: 'No, this person under the age of 65 and will apply for an Honored Citizen Hop card through TriMet' + hop_card_not_needed: 'This person does not need a Hop card' + '#other__option_label': '' + '#other__title': '' + '#other__placeholder': '' + '#other__maxlength': '' + '#required': true + '#other__input_mask': '9{0,16}' + '#other__pattern': '^[0-9]{16}$' + '#other__pattern_error': 'Hop card number must be 16 digits.' + '#other__attributes': + '#inputmode': numeric + hop_card_number_3: + '#type': textfield + '#title': '16-digit Hop card number' + '#input_mask': '9{0,16}' + '#required': true + '#pattern': '^[0-9]{16}$' + '#pattern_error': 'Hop card number must be 16 digits.' + '#counter_type': character + '#counter_minimum': 16 + '#counter_maximum': 16 + '#states': + visible: + ':input[name="has_hop_card_3"]': + value: already_has_hop_card + markup_next_steps_honored_citizen_member_3: + '#type': webform_markup + '#states': + visible: + ':input[name="has_hop_card_3"]': + value: personalized_honored_citizen_hop_card + '#admin_title': 'Next Steps' + '#markup': '

Next Steps

  1. Continue filling out this form so that we have this person''s information.
  2. Apply for the Honored Citizen Hop card as soon as possible.
  3. Once the Honored Citizen Hop card has been received, email wallet@portlandoregon.gov with the 16-digit card number so we can process the annual pass.
' + computed_tags_member_3: + '#type': webform_computed_twig + '#title': 'Computed Tags Member 3' + '#display_on': none + '#mode': text + '#template': '{{ "wallet_option_3 " ~ data.has_hop_card_3 }}' + '#whitespace': trim + section_household_member_4: + '#type': webform_section + '#title': 'Household Member 4' + '#title_tag': h3 + '#states': + visible: + ':input[name="apply_household_size"]': + value: + greater_equal: '4' + '#attributes': + id: member_4_container + first_name_4: + '#type': textfield + '#title': 'First Name' + '#required': true + last_name_4: + '#type': textfield + '#title': 'Last Name' + '#required': true + date_of_birth_member_4: + '#type': date + '#title': "What is this person's date of birth? (MM/DD/YYYY)" + '#required': true + '#date_date_min': '120 years ago' + '#date_date_max': today + '#date_date_format': m/d/Y + has_hop_card_4: + '#type': radios + '#title': 'Does household member 4 have a Hop card?' + '#description': '

Children under the age of 7 do not need to pay a fare.

' + '#description_display': before + '#options': + already_has_hop_card: 'Yes, this person has a Hop card' + youth_hop_card: 'No, this person is between the ages of 7-17 and needs a Youth Hop card' + adult_hop_card: 'No, this person needs an Adult Hop card (18+)' + honored_citizen_hop_card: 'No, this person is over the age of 65 and needs an Honored Citizen Hop card' + personalized_honored_citizen_hop_card: 'No, this person under the age of 65 and will apply for an Honored Citizen Hop card through TriMet' + hop_card_not_needed: 'This person does not need a Hop card' + '#other__option_label': '' + '#other__title': '' + '#other__placeholder': '' + '#other__maxlength': '' + '#required': true + '#other__input_mask': '9{0,16}' + '#other__pattern': '^[0-9]{16}$' + '#other__pattern_error': 'Hop card number must be 16 digits.' + '#other__attributes': + '#inputmode': numeric + hop_card_number_4: + '#type': textfield + '#title': '16-digit Hop card number' + '#input_mask': '9{0,16}' + '#required': true + '#pattern': '^[0-9]{16}$' + '#pattern_error': 'Hop card number must be 16 digits.' + '#counter_type': character + '#counter_minimum': 16 + '#counter_maximum': 16 + '#states': + visible: + ':input[name="has_hop_card_4"]': + value: already_has_hop_card + markup_next_steps_honored_citizen_member_4: + '#type': webform_markup + '#states': + visible: + ':input[name="has_hop_card_4"]': + value: personalized_honored_citizen_hop_card + '#admin_title': 'Next Steps' + '#markup': '

Next Steps

  1. Continue filling out this form so that we have this person''s information.
  2. Apply for the Honored Citizen Hop card as soon as possible.
  3. Once the Honored Citizen Hop card has been received, email wallet@portlandoregon.gov with the 16-digit card number so we can process the annual pass.
' + computed_tags_member_4: + '#type': webform_computed_twig + '#title': 'Computed Tags Member 4' + '#display_on': none + '#mode': text + '#template': '{{ "wallet_option_3 " ~ data.has_hop_card_4 }}' + '#whitespace': trim + section_household_member_5: + '#type': webform_section + '#title': 'Household Member 5' + '#title_tag': h3 + '#states': + visible: + ':input[name="apply_household_size"]': + value: + greater_equal: '5' + '#attributes': + id: member_5_container + first_name_5: + '#type': textfield + '#title': 'First Name' + '#required': true + last_name_5: + '#type': textfield + '#title': 'Last Name' + '#required': true + date_of_birth_member_5: + '#type': date + '#title': "What is this person's date of birth? (MM/DD/YYYY)" + '#required': true + '#date_date_min': '120 years ago' + '#date_date_max': today + '#date_date_format': m/d/Y + has_hop_card_5: + '#type': radios + '#title': 'Does household member 5 have a Hop card?' + '#description': '

Children under the age of 7 do not need to pay a fare.

' + '#description_display': before + '#options': + already_has_hop_card: 'Yes, this person has a Hop card' + youth_hop_card: 'No, this person is between the ages of 7-17 and needs a Youth Hop card' + adult_hop_card: 'No, this person needs an Adult Hop card (18+)' + honored_citizen_hop_card: 'No, this person is over the age of 65 and needs an Honored Citizen Hop card' + personalized_honored_citizen_hop_card: 'No, this person under the age of 65 and will apply for an Honored Citizen Hop card through TriMet' + hop_card_not_needed: 'This person does not need a Hop card' + '#other__option_label': '' + '#other__title': '' + '#other__placeholder': '' + '#other__maxlength': '' + '#required': true + '#states': + visible: + ':input[name="apply_household_size"]': + value: + greater_equal: '5' + '#other__input_mask': '9{0,16}' + '#other__pattern': '^[0-9]{16}$' + '#other__pattern_error': 'Hop card number must be 16 digits.' + '#other__attributes': + '#inputmode': numeric + hop_card_number_5: + '#type': textfield + '#title': '16-digit Hop card number' + '#input_mask': '9{0,16}' + '#required': true + '#pattern': '^[0-9]{16}$' + '#pattern_error': 'Hop card number must be 16 digits.' + '#counter_type': character + '#counter_minimum': 16 + '#counter_maximum': 16 + '#states': + visible: + ':input[name="has_hop_card_5"]': + value: already_has_hop_card + markup_next_steps_honored_citizen_member_5: + '#type': webform_markup + '#states': + visible: + ':input[name="has_hop_card_5"]': + value: personalized_honored_citizen_hop_card + '#admin_title': 'Next Steps' + '#markup': '

Next Steps

  1. Continue filling out this form so that we have this person''s information.
  2. Apply for the Honored Citizen Hop card as soon as possible.
  3. Once the Honored Citizen Hop card has been received, email wallet@portlandoregon.gov with the 16-digit card number so we can process the annual pass.
' + computed_tags_member_5: + '#type': webform_computed_twig + '#title': 'Computed Tags Member 5' + '#display_on': none + '#mode': text + '#template': '{{ "wallet_option_3 " ~ data.has_hop_card_5 }}' + '#whitespace': trim + computed_household_total_funds: + '#type': webform_computed_twig + '#title': 'Available Funds' + '#title_display': before + '#display_on': none + '#mode': text + '#template': |- + {% set total = 200 %} + {% if data.apply_household_size == 2 %} + {% set total = 225 %} + {% elseif data.apply_household_size == 3 %} + {% set total = 250 %} + {% elseif data.apply_household_size == 4 %} + {% set total = 275 %} + {% elseif data.apply_household_size == 5 %} + {% set total = 300 %} + {% endif %} + {{ total|number_format }} + '#whitespace': trim + household_members_split: + '#type': webform_computed_twig + '#title': 'Household members to split' + '#display_on': none + '#template': |- + {# NOTE: Need to account for household members who don't need a card! #} + {% set split = 1 %} + {% if data.apply_household_size >= 2 and data.has_hop_card_2 != "hop_card_not_needed" %}{% set split = split + 1 %}{% endif %} + {% if data.apply_household_size >= 3 and data.has_hop_card_3 != "hop_card_not_needed" %}{% set split = split + 1 %}{% endif %} + {% if data.apply_household_size >= 4 and data.has_hop_card_4 != "hop_card_not_needed" %}{% set split = split + 1 %}{% endif %} + {% if data.apply_household_size >= 5 and data.has_hop_card_5 != "hop_card_not_needed" %}{% set split = split + 1 %}{% endif %} + + {{ split|number_format }} + '#whitespace': trim + computed_even_split_amount: + '#type': webform_computed_twig + '#title': 'Computed even split amount' + '#display_on': view + '#mode': text + '#template': |- + {% if data.household_members_split > 0 %} + {% set amount = data.computed_household_total_funds / data.household_members_split %} + {{ amount|number_format(2, '.') }} + {% endif %} + '#whitespace': trim + container_wizard_buttons: + '#type': container + '#states': + invisible: + - ':input[name="apply_household_size"]': + value: '1' + - or + - ':input[name="apply_trimet_lift_is_yes"]': + value: 'I want to start over and select Option 2. We can load the $200 on your TriMet LIFT Hop card.' + - or + - ':input[name="apply_next_steps_choice"]': + value: 'I want to start over and select Option 2 ($200 Hop card, BIKETOWN for All, and $75 prepaid Visa card).' + actions_wizard_prev: + '#type': webform_actions + '#title': 'Previous Button' + '#attributes': + style: 'display: inline-block;' + '#submit_hide': true + '#reset_hide': true + '#update_hide': true + '#wizard_next_hide': true + actions_wizard_next: + '#type': webform_actions + '#title': 'Next Button' + '#attributes': + style: 'display: inline-block;' + '#submit_hide': true + '#reset_hide': true + '#update_hide': true + '#wizard_prev_hide': true + page_funds_distribution: + '#type': webform_wizard_page + '#title': 'Funds Distribution' + '#states': + visible: + ':input[name="apply_wallet_package"]': + value: wallet_option_3 + computed_selection_2: + '#type': webform_computed_twig + '#title': 'Computed Selection' + '#title_display': none + '#display_on': form + '#mode': html + '#template': |- + {% set radios_options = { + 'wallet_option_1': 'Option 1: Individual - TriMet Honored Citizen 1-year Pass', + 'wallet_option_2': 'Option 2: Individual - Transit, BIKETOWN for All, and prepaid Visa card', + 'wallet_option_3': 'Option 3: Household - Transit, BIKETOWN for All, and prepaid Visa card' + } %} +

{{ radios_options[data.apply_wallet_package] }}

+

 

+ section_funds_distribution: + '#type': webform_section + '#title': 'Funds Distribution' + '#title_tag': h3 + markup_funds_display: + '#type': webform_markup + '#markup': '

You have $[webform_submission:values:computed_household_total_funds] in transit funds available to divide between [webform_submission:values:household_members_split] household members.

' + apply_funds_split: + '#type': radios + '#title': 'How would you like to divide your funds?' + '#options': + 'Evenly among all members': 'Evenly among all members' + 'Custom split...': 'Custom split...' + '#required': true + '#default_value': 'Evenly among all members' + markup_custom_split_help: + '#type': webform_markup + '#states': + visible: + ':input[name="apply_funds_split"]': + value: 'Custom split' + '#markup': '

Please enter a custom amount for each household member below. Do not exceed the available amount.

' + container_distrubution: + '#type': container + '#states': + visible: + ':input[name="apply_funds_split"]': + checked: true + container_member1: + '#type': webform_section + '#title': 'Household Member 1 (primary)' + '#title_display': invisible + '#title_tag': h4 + '#attributes': + class: + - px-4 + - border + - border-dark + markup_primary_member_name: + '#type': webform_markup + '#markup': '

You: [webform_submission:values:contact_first_name] [webform_submission:values:contact_last_name]

' + funds_member_1: + '#type': textfield + '#title': 'How much should we put on your card?' + '#field_prefix': $ + '#maxlength': 3 + '#size': 10 + '#states': + visible: + ':input[name="apply_funds_split"]': + value: 'Custom split...' + markup_even_split_member_1: + '#type': webform_markup + '#states': + visible: + ':input[name="apply_funds_split"]': + value: 'Evenly among all members' + '#markup': '

$[webform_submission:values:computed_even_split_amount] will be put on this card.

' + container_member2: + '#type': webform_section + '#title': 'Household Member 2' + '#title_display': invisible + '#title_tag': h4 + '#attributes': + class: + - px-4 + - border + - border-dark + markup_member_2_name: + '#type': webform_markup + '#markup': '

Household member 2: [webform_submission:values:first_name_2] [webform_submission:values:last_name_2]

' + funds_member_2: + '#type': textfield + '#title': 'How much should we put on this card?' + '#field_prefix': $ + '#maxlength': 3 + '#size': 10 + '#states': + visible: + ':input[name="has_hop_card_2"]': + '!value': hop_card_not_needed + ':input[name="apply_funds_split"]': + value: 'Custom split...' + markup_nocard_2: + '#type': webform_markup + '#states': + visible: + ':input[name="has_hop_card_2"]': + value: hop_card_not_needed + '#markup': '

You indicated this person does not need a Hop card.

' + markup_even_split_member_2: + '#type': webform_markup + '#states': + visible: + ':input[name="apply_funds_split"]': + value: 'Evenly among all members' + ':input[name="has_hop_card_2"]': + '!value': hop_card_not_needed + '#markup': '

$[webform_submission:values:computed_even_split_amount] will be put on this card.

' + container_member3: + '#type': webform_section + '#title': 'Household Member 3' + '#title_display': invisible + '#title_tag': h4 + '#states': + visible: + ':input[name="apply_household_size"]': + value: + greater_equal: '3' + '#attributes': + class: + - px-4 + - border + - border-dark + markup_member_3_name: + '#type': webform_markup + '#markup': '

Household member 3: [webform_submission:values:first_name_3] [webform_submission:values:last_name_3]

' + funds_member_3: + '#type': textfield + '#title': 'How much should we put on this card?' + '#field_prefix': $ + '#maxlength': 3 + '#size': 10 + '#states': + visible: + ':input[name="has_hop_card_3"]': + '!value': hop_card_not_needed + ':input[name="apply_funds_split"]': + value: 'Custom split...' + markup_nocard_3: + '#type': webform_markup + '#states': + visible: + ':input[name="has_hop_card_3"]': + value: hop_card_not_needed + '#markup': '

You indicated this person does not need a Hop card.

' + markup_even_split_member_3: + '#type': webform_markup + '#states': + visible: + ':input[name="apply_funds_split"]': + value: 'Evenly among all members' + ':input[name="has_hop_card_3"]': + '!value': hop_card_not_needed + '#markup': '

$[webform_submission:values:computed_even_split_amount] will be put on this card.

' + container_member4: + '#type': webform_section + '#title': 'Household Member 4' + '#title_display': invisible + '#title_tag': h4 + '#states': + visible: + ':input[name="apply_household_size"]': + value: + greater_equal: '4' + '#attributes': + class: + - px-4 + - border + - border-dark + markup_member_4_name: + '#type': webform_markup + '#markup': '

Household member 4: [webform_submission:values:first_name_4] [webform_submission:values:last_name_4]

' + funds_member_4: + '#type': textfield + '#title': 'How much should we put on this card?' + '#field_prefix': $ + '#maxlength': 3 + '#size': 10 + '#states': + visible: + ':input[name="has_hop_card_4"]': + '!value': hop_card_not_needed + ':input[name="apply_funds_split"]': + value: 'Custom split...' + markup_nocard_4: + '#type': webform_markup + '#states': + visible: + ':input[name="has_hop_card_4"]': + value: hop_card_not_needed + '#markup': '

You indicated this person does not need a Hop card.

' + markup_even_split_member_4: + '#type': webform_markup + '#states': + visible: + ':input[name="apply_funds_split"]': + value: 'Evenly among all members' + ':input[name="has_hop_card_4"]': + '!value': hop_card_not_needed + '#markup': '

$[webform_submission:values:computed_even_split_amount] will be put on this card.

' + container_member5: + '#type': webform_section + '#title': 'Household Member 5' + '#title_display': invisible + '#title_tag': h4 + '#states': + visible: + ':input[name="apply_household_size"]': + value: + greater_equal: '5' + '#attributes': + class: + - px-4 + - border + - border-dark + markup_member_5_name: + '#type': webform_markup + '#markup': '

Household member 5: [webform_submission:values:first_name_5] [webform_submission:values:last_name_5]

' + funds_member_5: + '#type': textfield + '#title': 'How much should we put on this card?' + '#field_prefix': $ + '#maxlength': 3 + '#size': 10 + '#states': + visible: + ':input[name="has_hop_card_5"]': + '!value': hop_card_not_needed + ':input[name="apply_funds_split"]': + value: 'Custom split...' + markup_nocard_5: + '#type': webform_markup + '#states': + visible: + ':input[name="has_hop_card_5"]': + value: hop_card_not_needed + '#markup': '

You indicated this person does not need a Hop card.

' + markup_even_split_member_5: + '#type': webform_markup + '#states': + visible: + ':input[name="apply_funds_split"]': + value: 'Evenly among all members' + ':input[name="has_hop_card_5"]': + '!value': hop_card_not_needed + '#markup': '

$[webform_submission:values:computed_even_split_amount] will be put on this card.

' + markup_remaining_amount_message: + '#type': webform_markup + '#markup': '

You have $[webform_submission:values:computed_household_total_funds] remaining to allocate between [webform_submission:values:household_members_split] eligible household members before you can continue.

You''ve allocated $[webform_submission:values:computed_household_total_funds] out of $[webform_submission:values:computed_household_total_funds] between [webform_submission:values:household_members_split] household members.

You''ve allocated $0 too much. Before continuing, please make sure the total amount for all eligible household members equals $[webform_submission:values:computed_household_total_funds].

' + computed_card_amount_1: + '#type': webform_computed_twig + '#title': 'Computed Card Amount 1' + '#display_on': none + '#mode': text + '#template': |- + {% set members = data.apply_household_size ? data.apply_household_size : 1 %} + + {% if data.apply_funds_split == "Evenly among all members" %} + {{ data.computed_household_total_funds|number_format / members|number_format }} + {% else %} + {{ data.funds_member_1 }} + {% endif %} + computed_card_amount_2: + '#type': webform_computed_twig + '#title': 'Computed Card Amount 2' + '#display_on': none + '#mode': text + '#template': |- + {% set members = data.apply_household_size ? data.apply_household_size : 1 %} + + {% if data.apply_funds_split == "Evenly among all members" %} + {{ data.computed_household_total_funds|number_format / members|number_format }} + {% else %} + {{ data.funds_member_2 }} + {% endif %} + computed_card_amount_3: + '#type': webform_computed_twig + '#title': 'Computed Card Amount 3' + '#display_on': none + '#mode': text + '#template': |- + {% set members = data.apply_household_size ? data.apply_household_size : 1 %} + + {% if data.apply_funds_split == "Evenly among all members" %} + {{ data.computed_household_total_funds|number_format / members|number_format }} + {% else %} + {{ data.funds_member_3 }} + {% endif %} + computed_card_amount_4: + '#type': webform_computed_twig + '#title': 'Computed Card Amount 4' + '#display_on': none + '#mode': text + '#template': |- + {% set members = data.apply_household_size ? data.apply_household_size : 1 %} + + {% if data.apply_funds_split == "Evenly among all members" %} + {{ data.computed_household_total_funds|number_format / members|number_format }} + {% else %} + {{ data.funds_member_4 }} + {% endif %} + computed_card_amount_5: + '#type': webform_computed_twig + '#title': 'Computed Card Amount 5' + '#display_on': none + '#mode': text + '#template': |- + {% set members = data.apply_household_size ? data.apply_household_size : 1 %} + + {% if data.apply_funds_split == "Evenly among all members" %} + {{ data.computed_household_total_funds|number_format / members|number_format }} + {% else %} + {{ data.funds_member_5 }} + {% endif %} + actions_01: + '#type': webform_actions + '#title': 'Previous Button' + '#attributes': + style: 'display: inline-block;' + '#submit_hide': true + '#update_hide': true + '#wizard_prev__label': '< Previous Page' + '#wizard_next_hide': true + actions_02: + '#type': webform_actions + '#title': 'Next Button' + '#attributes': + style: 'display: inline-block;' + id: calculator-submit-button + '#submit_hide': true + '#update_hide': true + '#wizard_prev_hide': true + '#wizard_next__label': 'Next Page >' + page_contact: + '#type': webform_wizard_page + '#title': 'Contact information' + computed_selection_copy_1: + '#type': webform_computed_twig + '#title': 'Computed Selection' + '#title_display': none + '#display_on': form + '#mode': html + '#template': |- + {% set radios_options = { + 'wallet_option_1': 'Option 1: Individual - TriMet Honored Citizen 1-year Pass', + 'wallet_option_2': 'Option 2: Individual - Transit, BIKETOWN for All, and prepaid Visa card', + 'wallet_option_3': 'Option 3: Household - Transit, BIKETOWN for All, and prepaid Visa card' + } %} +

{{ radios_options[data.apply_wallet_package] }}

+

 

+ section_contact: + '#type': webform_section + '#title': 'Your contact information' + '#title_tag': h3 + computed_name: + '#type': webform_computed_twig + '#title': 'Your Name' + '#display_on': form + '#mode': html + '#template': '{{ data.contact_first_name }} {{ data.contact_last_name }}' + '#whitespace': trim + contact_email: + '#type': textfield + '#title': Email + '#description': '

We will use your email to confirm your submission and respond if necessary.

' + '#required': true + '#pattern': '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' + '#pattern_error': 'Please enter a correctly formatted email address, such as myname@example.com.' + contact_phone: + '#type': textfield + '#title': Phone + '#description': '

Please provide your phone number in case we need additional information.

' + '#input_mask': '(999) 999-9999' + contact_address_verifier: + '#type': portland_address_verifier + '#title': Address + '#required': true + '#wrapper_attributes': + id: null + '#location_address__description': 'Please provide your full address. If you live in the Portland metro area, begin typing to see a list of possible address matches.' + '#location_address__required': true + '#location_city__required': true + '#location_state__required': true + '#location_zip__required': true + apply_final_questions_text: + '#type': textarea + '#title': 'Do you have questions about the Transportation Wallet? Please leave questions or comments in the field below and we will do our best to respond to you.' + primary_household_member_display: + '#type': webform_computed_twig + '#title': 'Primary Household Member Display' + '#display_on': none + '#template': |+ +

Wallet option

+ +

Which Transportation Wallet package would you like to sign up for?
+ {% if data.apply_wallet_package == "wallet_option_1" %} + Option 1: Individual - TriMet Honored Citizen 1-year Pass + {% elseif data.apply_wallet_package == "wallet_option_2" %} + Option 2: Individual - Transit, BIKETOWN for All, and prepaid Visa card + {% else %} + Option 3: Household - Transit, BIKETOWN for All, and prepaid Visa card + {% endif %}

+ +

Hop card details

+ + Do you have a Hop card? {{ data.apply_has_hop_card }}
+ +

+ {% if data.apply_has_hop_card == "Yes" %} + {% if data.apply_wallet_package == "wallet_option_1" %} + What type of Hop card do you have? {{ data.apply_current_hop_card }}
+ {% endif %} + Hop card number: {{ data.apply_hop_card_number }}
+ {% else %} + What type of Hop card do you need? {{ data.apply_hop_card_needed }}{{ data.apply_hop_card_needed_opt_2_3 }}
+ {% endif %} + {% if data.computed_card_amount_1 %} + Hop card amount: {{ data.computed_card_amount_1 }}
+ {% endif %} +

+ +

Contact information

+

Name: {{ data.contact_first_name }} {{ data.contact_last_name }}
+ Email: {{ data.contact_email }}
+ Phone: {{ data.contact_phone }}
+ Date of birth: {{ data.apply_date_of_birth|date('m/d/Y') }}
+ Address: {{ data.contact_address_verifier.location_address }}{% if data.contact_address_verifier.location_unit %}{{ " " ~ data.contact_address_verifier.location_unit }}{% endif %}, {{ data.contact_address_verifier.location_city }}, {{ data.contact_address_verifier.location_state }} {{ data.contact_address_verifier.location_zip }}

+ + + household_member_2_display: + '#type': webform_computed_twig + '#title': 'Household Member 2 Display' + '#display_on': none + '#mode': html + '#template': | +

Card holder name: {{ data.first_name_2 }} {{ data.last_name_2 }}
+ Date of birth: {{ data.date_of_birth_member_2|date('m/d/Y') }}
+ {% if data.has_hop_card_2 == "already_has_hop_card" %} + Card number: {{ data.hop_card_number_2 }}
+ {% else %} + Type of Hop card needed: {{ data.has_hop_card_2 }}
+ {% endif %} + {% if data.computed_card_amount_2 %} + Hop card amount: {{ data.computed_card_amount_2 }}
+ {% endif %} +

+ '#whitespace': spaceless + household_member_3_display: + '#type': webform_computed_twig + '#title': 'Household Member 3 Display' + '#display_on': none + '#mode': html + '#template': | +

Card holder name: {{ data.first_name_3 }} {{ data.last_name_3 }}
+ Date of birth: {{ data.date_of_birth_member_3|date('m/d/Y') }}
+ {% if data.has_hop_card_3 == "already_has_hop_card" %} + Card number: {{ data.hop_card_number_3 }}
+ {% else %} + Type of Hop card needed: {{ data.has_hop_card_3 }}
+ {% endif %} + {% if data.computed_card_amount_3 %} + Hop card amount: {{ data.computed_card_amount_3 }}
+ {% endif %} +

+ '#whitespace': spaceless + household_member_4_display: + '#type': webform_computed_twig + '#title': 'Household Member 4 Display' + '#display_on': none + '#mode': html + '#template': | +

Card holder name: {{ data.first_name_4 }} {{ data.last_name_4 }}
+ Date of birth: {{ data.date_of_birth_member_4|date('m/d/Y') }}
+ {% if data.has_hop_card_4 == "already_has_hop_card" %} + Card number: {{ data.hop_card_number_4 }}
+ {% else %} + Type of Hop card needed: {{ data.has_hop_card_4 }}
+ {% endif %} + {% if data.computed_card_amount_4 %} + Hop card amount: {{ data.computed_card_amount_4 }}
+ {% endif %} +

+ '#whitespace': spaceless + household_member_5_display: + '#type': webform_computed_twig + '#title': 'Household Member 5 Display' + '#display_on': none + '#mode': html + '#template': | +

Card holder name: {{ data.first_name_5 }} {{ data.last_name_5 }}
+ Date of birth: {{ data.date_of_birth_member_5|date('m/d/Y') }}
+ {% if data.has_hop_card_5 == "already_has_hop_card" %} + Card number: {{ data.hop_card_number_5 }}
+ {% else %} + Type of Hop card needed: {{ data.has_hop_card_5 }}
+ {% endif %} + {% if data.computed_card_amount_5 %} + Hop card amount: {{ data.computed_card_amount_5 }}
+ {% endif %} +

+ '#whitespace': spaceless + section_optional_survey: + '#type': webform_section + '#title': 'A few more questions (optional survey)' + apply_transit_frequency: + '#type': webform_likert + '#title': 'How often do you or members of your household use the following transportation modes?' + '#questions': + 'Transit - Bus, MAX, Streetcar': 'Transit - Bus, MAX, Streetcar' + Biking: Biking + 'BIKETOWN for All (bike-share)': 'BIKETOWN for All (bike-share)' + E-Scooter: E-Scooter + Walking: Walking + Driving: Driving + 'Taxi, Uber, or Lyft': 'Taxi, Uber, or Lyft' + '#answers': + Never: Never + Monthly: Monthly + Daily: Daily + Weekly: Weekly + '#sticky': false + '#table__attributes': + class: + - 'table table-bordered' + apply_how_affordable_scale: + '#type': webform_scale + '#title': 'On a scale of 1-5, how affordable is your current method of transportation?' + '#min_text': 'The cost of my current transportation is too high and I cannot afford it.' + '#max_text': 'The cost of my current method of transportation is very easy for me to afford.' + apply_travel_experience_text: + '#type': textarea + '#title': 'Anything else you want to tell us about your experience traveling in Portland?' + support_agent_use_only: + '#type': portland_support_agent_widget + '#title': 'Support Agent Use Only' + '#access_create_roles': + - authenticated + '#escalate_issue__access': false + request_ticket_id: + '#type': hidden + '#title': 'Request Ticket Id' + computed_tags: + '#type': webform_computed_twig + '#title': 'Computed Tags' + '#display_on': none + '#mode': text + '#template': '{{ data.apply_wallet_package }} {{ data.apply_hop_card_needed }}' + parent_ticket_id: + '#type': hidden + '#title': 'Parent Ticket Id' + organization_name: + '#type': hidden + '#title': 'Organization Name' + '#prepopulate': true + computed_amount_options_1_2: + '#type': webform_computed_twig + '#title': 'Computed Amount Options 1 & 2' + '#display_on': none + '#mode': text + '#template': '{% if data.apply_wallet_package == "wallet_option_2" %}200{% endif %}' + '#whitespace': trim +css: ".webform-multiple-table table {\r\n width: inherit !important;\r\n}\r\n\r\n.webform-multiple-table tbody tr:hover,\r\n.webform-multiple-table tbody tr:focus {\r\n background: inherit !important;\r\n}\r\n\r\n.webform-scale {\r\n margin-top: 0.5rem;\r\n width: 100%;\r\n}\r\n\r\n.webform-scale .webform-scale-options {\r\n display: flex;\r\n justify-content: space-around;\r\n margin: 0 2rem;\r\n}\r\n\r\n.webform-scale .webform-scale-option label {\r\n line-height: inherit !important;\r\n}\r\n\r\n.webform-scale .webform-scale-text {\r\n display: flex;\r\n justify-content: space-between;\r\n height: unset;\r\n line-height: unset;\r\n}\r\n\r\n.webform-scale .webform-scale-text-min, .webform-scale .webform-scale-text-max {\r\n position: unset;\r\n width: 25%;\r\n text-align: center !important;\r\n}\r\n\r\n.card-header.card-header-opt-1 {\r\n background: rgba(240, 92, 73, 0.33);\r\n}\r\n\r\n.card-header.card-header-opt-2 {\r\n background: rgba(124, 66, 118, 0.33);\r\n}\r\n\r\n.card-header.card-header-opt-3 {\r\n background: rgba(0, 160, 174, 0.33);\r\n}\r\n\r\n#member_2_container, #member_3_container, #member_4_container, #member_5_container {\r\n border: 1px solid black;\r\n padding: 15px 15px 0 15px;\r\n margin-bottom: 5px;\r\n}\r\n\r\ndiv.form-disabled input[type=submit] { \r\n color: white; cursor: not-allowed; \r\n}\r\n\r\n.webform-submission-transportation-wallet-form .form-text {\r\n display: inline-block;\r\n}\r\n\r\n#calculator-submit-button input:disabled {\r\n background-color: #ccc; /* Light gray background */\r\n color: #666; /* Darker gray text */\r\n border-color: #999; /* Match the gray theme for the border */\r\n cursor: not-allowed; /* Indicate that the button is disabled */\r\n opacity: 0.6; /* Optional: Make it semi-transparent */\r\n}" +javascript: "(function ($, Drupal, once) {\r\n Drupal.behaviors.updateSubmitButtonState = {\r\n attach: function (context) {\r\n \r\n var $wizardPage = once('funds-distribution-handler', '[data-webform-key=\"page_funds_distribution\"]', context);\r\n \r\n if ($wizardPage.length) {\r\n \r\n // find the input field\r\n var $field1 = $(context).find('[name=\"funds_member_1\"], [name=\"funds_member_2\"], [name=\"funds_member_3\"], [name=\"funds_member_4\"], [name=\"funds_member_5\"]');\r\n \r\n // get the available amount and number of members values\r\n var funds = $(context).find('#available-funds').text();\r\n var members = $(context).find('#household-members').text();\r\n \r\n // Ensure the event listener is only attached once\r\n $field1.off('input change').on('input change', function () {\r\n \r\n // hide all messages\r\n var $messageRemaining = $(context).find('#message-remaining').addClass('d-none');\r\n var $messageOk = $(context).find('#message-ok').addClass('d-none');\r\n var $messageOver = $(context).find('#message-over').addClass('d-none');\r\n \r\n // if the selection is switched to even split, enable the Next button and exit function\r\n if ($('[name=\"apply_funds_split\"][value=\"Evenly among all members\"]').is(':checked')) {\r\n $('#calculator-submit-button input').prop('disabled', false);\r\n return;\r\n }\r\n \r\n // get allocation values\r\n var $field1 = $(context).find('[name=\"funds_member_1\"]');\r\n var $field2 = $(context).find('[name=\"funds_member_2\"]');\r\n var $field3 = $(context).find('[name=\"funds_member_3\"]');\r\n var $field4 = $(context).find('[name=\"funds_member_4\"]');\r\n var $field5 = $(context).find('[name=\"funds_member_5\"]');\r\n var val1 = $field1.length && $field1.val() > 0 ? $field1.val() : 0;\r\n var val2 = $field2.length && $field2.val() > 0 ? $field2.val() : 0;\r\n var val3 = $field3.length && $field3.val() > 0 ? $field3.val() : 0;\r\n var val4 = $field4.length && $field4.val() > 0 ? $field4.val() : 0;\r\n var val5 = $field5.length && $field5.val() > 0 ? $field5.val() : 0;\r\n\r\n var allocated = parseInt(val1) + parseInt(val2) + parseInt(val3) + parseInt(val4) + parseInt(val5);\r\n \r\n if (allocated == funds) {\r\n $messageOk.removeClass('d-none');\r\n $('#calculator-submit-button input').prop('disabled', false);\r\n } else if (allocated > funds) {\r\n $messageOver.removeClass('d-none');\r\n var over = (funds - allocated) * -1;\r\n var $spanOver = $(context).find('#allocated-over');\r\n if ($spanOver.length) $spanOver.text(over);\r\n $('#calculator-submit-button input').prop('disabled', true);\r\n } else if (allocated < funds) {\r\n $messageRemaining.removeClass('d-none');\r\n var remaining = funds - allocated;\r\n var $spanRemaining = $(context).find('#remaining-amt');\r\n if ($spanRemaining.length) $spanRemaining.text(remaining);\r\n $('#calculator-submit-button input').prop('disabled', true);\r\n }\r\n \r\n });\r\n }\r\n }\r\n };\r\n})(jQuery, Drupal, once);\r\n" +settings: + ajax: true + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: none + ajax_speed: 1000 + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: true + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: false + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: false + form_disable_back: false + form_submit_back: true + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: { } + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: false + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: { } + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: true + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: true + wizard_progress_states: true + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: Done + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: name + wizard_prev_button_label: '' + wizard_next_button_label: '' + wizard_toggle: false + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 0 + preview_label: '' + preview_title: '' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: true + preview_exclude_empty_checkbox: false + draft: none + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: page + confirmation_url: '' + confirmation_title: 'Your registration has been submitted!' + confirmation_message: '

Thank you for submitting a Transportation Wallet: Access for All registration form. Once your application is complete, we will fulfill your Wallet within approximately 10 business days.

' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: 'Submit another registration' + confirmation_back_attributes: { } + confirmation_exclude_query: false + confirmation_exclude_token: false + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: none + purge_days: null + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - anonymous + - authenticated + users: { } + permissions: { } + view_any: + roles: { } + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: + zendesk_new_request: + id: zendesk + handler_id: zendesk_new_request + label: 'Zendesk new request - Individual applicant (options 1 & 2)' + notes: '' + status: true + conditions: + enabled: + ':input[name="support_agent_use_only[test_submission]"]': + unchecked: true + ':input[name="apply_wallet_package"]': + '!value': wallet_option_3 + weight: 0 + settings: + requester_name: computed_full_name + requester_email: contact_email + subject: 'Wallet Application - [webform_submission:values:contact_first_name] [webform_submission:values:contact_last_name]' + comment: "

Applicant Information

\r\n\r\n[webform_submission:values:primary_household_member_display]\r\n\r\n
\r\n

Full application:

\r\n
\r\n[webform_submission:values:html]\r\n
" + tags: 'drupal webform [webform_submission:values:computed_tags]' + priority: normal + status: new + recipient: '' + group_id: '27146129932439' + assignee_id: '' + type: incident + collaborators: '' + custom_fields: "27985303578775: ['[webform_submission:values:apply_date_of_birth:Y]-[webform_submission:values:apply_date_of_birth:m]-[webform_submission:values:apply_date_of_birth:d]', 'apply_date_of_birth']\r\n29284110563479: ['[webform_submission:values:apply_wallet_package]', 'apply_wallet_package']\r\n27985321767319: ['[webform_submission:values:computed_hop_card_type]', 'computed_hop_card_type']\r\n27985342383639: ['[webform_submission:values:apply_hop_card_number]', 'apply_hop_card_number']\r\n27985354792087: ['[webform_submission:values:computed_amount_options_1_2]', 'computed_amount_options_1_2']\r\n27773229365143: ['[webform_submission:values:contact_address_verifier:location_address] [webform_submission:values:contact_address_verifier:unit_number], [webform_submission:values:contact_address_verifier:location_city], [webform_submission:values:contact_address_verifier:location_state] [webform_submission:values:contact_address_verifier:location_zip]', 'contact_address_verifier']\r\n25600783638295: ['[webform_submission:values:contact_phone]', 'contact_phone']\r\n26253458420759: ['[webform_submission:values:organization_name]', 'organization_name']" + ticket_id_field: request_ticket_id + ticket_fork_field: '' + ticket_form_id: '26628122071575' + child_incident: 0 + parent_ticket_id_field: '' + is_child_incident: 0 + test_zendesk_new_request: + id: zendesk + handler_id: test_zendesk_new_request + label: 'TEST: Zendesk new request (options 1 & 2)' + notes: '' + status: true + conditions: + enabled: + ':input[name="support_agent_use_only[test_submission]"]': + checked: true + ':input[name="apply_wallet_package"]': + '!value': wallet_option_3 + weight: 1 + settings: + requester_name: computed_full_name + requester_email: contact_email + subject: 'Wallet Application - [webform_submission:values:contact_first_name] [webform_submission:values:contact_last_name]' + comment: "

Applicant Information

\r\n\r\n[webform_submission:values:primary_household_member_display]\r\n\r\n
\r\n

Full application:

\r\n
\r\n[webform_submission:values:html]\r\n
" + tags: 'drupal webform' + priority: normal + status: new + recipient: '' + group_id: '4549352062487' + assignee_id: '' + type: incident + collaborators: '' + custom_fields: "27985303578775: ['[webform_submission:values:apply_date_of_birth:Y]-[webform_submission:values:apply_date_of_birth:m]-[webform_submission:values:apply_date_of_birth:d]', 'apply_date_of_birth']\r\n29284110563479: ['[webform_submission:values:apply_wallet_package]', 'apply_wallet_package']\r\n27985321767319: ['[webform_submission:values:computed_hop_card_type]', 'computed_hop_card_type']\r\n27985342383639: ['[webform_submission:values:apply_hop_card_number]', 'apply_hop_card_number']\r\n27985354792087: ['[webform_submission:values:computed_amount_options_1_2]', 'computed_amount_options_1_2']\r\n27773229365143: ['[webform_submission:values:contact_address_verifier:location_address] [webform_submission:values:contact_address_verifier:unit_number], [webform_submission:values:contact_address_verifier:location_city], [webform_submission:values:contact_address_verifier:location_state] [webform_submission:values:contact_address_verifier:location_zip]', 'contact_address_verifier']\r\n25600783638295: ['[webform_submission:values:contact_phone]', 'contact_phone']\r\n26253458420759: ['[webform_submission:values:organization_name]', 'organization_name']" + ticket_id_field: request_ticket_id + ticket_fork_field: '' + ticket_form_id: '26628122071575' + child_incident: 0 + parent_ticket_id_field: '' + is_child_incident: 0 + zendesk_new_request_household_applicant_1: + id: zendesk + handler_id: zendesk_new_request_household_applicant_1 + label: 'Zendesk new request - Household applicant #1' + notes: '' + status: true + conditions: + enabled: + ':input[name="apply_wallet_package"]': + value: wallet_option_3 + ':input[name="support_agent_use_only[test_submission]"]': + unchecked: true + weight: 2 + settings: + requester_name: computed_full_name + requester_email: contact_email + subject: 'Wallet Application - Primary - [webform_submission:values:contact_first_name] [webform_submission:values:contact_last_name]' + comment: "

Primary Applicant Information

\r\n\r\n[webform_submission:values:primary_household_member_display]\r\n\r\n
\r\n

Full application:

\r\n
\r\n[webform_submission:values:html]\r\n
" + tags: 'drupal webform [webform_submission:values:apply_wallet_package:raw] [webform_submission:values:computed_hop_card_type:raw]' + priority: normal + status: new + recipient: '' + group_id: '27146129932439' + assignee_id: '' + type: problem + collaborators: '' + custom_fields: "27985303578775: ['[webform_submission:values:apply_date_of_birth:Y]-[webform_submission:values:apply_date_of_birth:m]-[webform_submission:values:apply_date_of_birth:d]', 'apply_date_of_birth']\r\n29284110563479: ['[webform_submission:values:apply_wallet_package]', 'apply_wallet_package']\r\n27985321767319: ['[webform_submission:values:computed_hop_card_type]', 'computed_hop_card_type']\r\n27985342383639: ['[webform_submission:values:apply_hop_card_number]', 'apply_hop_card_number']\r\n27985354792087: ['[webform_submission:values:computed_card_amount_1]', 'computed_card_amount_1']\r\n27773229365143: ['[webform_submission:values:contact_address_verifier:location_address] [webform_submission:values:contact_address_verifier:unit_number], [webform_submission:values:contact_address_verifier:location_city], [webform_submission:values:contact_address_verifier:location_state] [webform_submission:values:contact_address_verifier:location_zip]', 'contact_address_verifier']\r\n25600783638295: ['[webform_submission:values:contact_phone]', 'contact_phone']\r\n26253458420759: ['[webform_submission:values:organization_name]', 'organization_name']" + ticket_id_field: request_ticket_id + ticket_fork_field: '' + ticket_form_id: '26628122071575' + child_incident: 1 + parent_ticket_id_field: parent_ticket_id + is_child_incident: 0 + zendesk_new_request_household_applicant_2: + id: zendesk + handler_id: zendesk_new_request_household_applicant_2 + label: 'Zendesk new request - Household applicant #2' + notes: '' + status: true + conditions: + enabled: + ':input[name="apply_wallet_package"]': + value: wallet_option_3 + ':input[name="support_agent_use_only[test_submission]"]': + unchecked: true + weight: 3 + settings: + requester_name: computed_full_name + requester_email: contact_email + subject: 'Wallet Application - Member 2 - [webform_submission:values:first_name_2] [webform_submission:values:last_name_2]' + comment: "

Wallet Application for Household Member 2

\r\n\r\n[webform_submission:values:household_member_2_display]\r\n\r\n

Primary Applicant

\r\n\r\n[webform_submission:values:primary_household_member_display]\r\n\r\n
\r\n

Full application:

\r\n
\r\n[webform_submission:values:html]\r\n
" + tags: 'drupal webform [webform_submission:values:apply_wallet_package:raw] [webform_submission:values:has_hop_card_2:raw]' + priority: normal + status: new + recipient: '' + group_id: '27146129932439' + assignee_id: '' + type: incident + collaborators: '' + custom_fields: "27985303578775: ['[webform_submission:values:date_of_birth_member_2:Y]-[webform_submission:values:date_of_birth_member_2:m]-[webform_submission:values:date_of_birth_member_2:d]', 'computed_date_of_birth_member_2']\r\n29284110563479: ['[webform_submission:values:apply_wallet_package]', 'apply_wallet_package']\r\n27985321767319: ['[webform_submission:values:has_hop_card_2]', 'has_hop_card_2']\r\n27985342383639: ['[webform_submission:values:hop_card_number_2]', 'hop_card_number_2']\r\n27985354792087: ['[webform_submission:values:computed_card_amount_2]', 'computed_card_amount_2']\r\n27773229365143: ['[webform_submission:values:contact_address_verifier:location_address] [webform_submission:values:contact_address_verifier:unit_number], [webform_submission:values:contact_address_verifier:location_city], [webform_submission:values:contact_address_verifier:location_state] [webform_submission:values:contact_address_verifier:location_zip]', 'contact_address_verifier']\r\n26253458420759: ['[webform_submission:values:organization_name]', 'organization_name']" + ticket_id_field: request_ticket_id + ticket_fork_field: '' + ticket_form_id: '26628122071575' + child_incident: 1 + parent_ticket_id_field: parent_ticket_id + is_child_incident: 1 + zendesk_new_request_household_applicant_3: + id: zendesk + handler_id: zendesk_new_request_household_applicant_3 + label: 'Zendesk new request - Household applicant #3' + notes: '' + status: true + conditions: + enabled: + ':input[name="apply_wallet_package"]': + value: wallet_option_3 + ':input[name="apply_household_size"]': + value: + greater_equal: '3' + ':input[name="support_agent_use_only[test_submission]"]': + unchecked: true + weight: 4 + settings: + requester_name: computed_full_name + requester_email: contact_email + subject: 'Wallet Application - Member 3 - [webform_submission:values:first_name_3] [webform_submission:values:last_name_3]' + comment: "

Wallet Application for Household Member 3

\r\n\r\n[webform_submission:values:household_member_3_display]\r\n\r\n

Primary Applicant

\r\n\r\n[webform_submission:values:primary_household_member_display]\r\n\r\n
\r\n

Full application:

\r\n
\r\n[webform_submission:values:html]\r\n
" + tags: 'drupal webform [webform_submission:values:apply_wallet_package:raw] [webform_submission:values:has_hop_card_3:raw]' + priority: normal + status: new + recipient: '' + group_id: '27146129932439' + assignee_id: '' + type: incident + collaborators: '' + custom_fields: "27985303578775: ['[webform_submission:values:date_of_birth_member_3:Y]-[webform_submission:values:date_of_birth_member_3:m]-[webform_submission:values:date_of_birth_member_3:d]', 'computed_date_of_birth_member_3']\r\n29284110563479: ['[webform_submission:values:apply_wallet_package]', 'apply_wallet_package']\r\n27985321767319: ['[webform_submission:values:has_hop_card_3]', 'has_hop_card_3']\r\n27985342383639: ['[webform_submission:values:hop_card_number_3]', 'hop_card_number_3']\r\n27985354792087: ['[webform_submission:values:computed_card_amount_3]', 'computed_card_amount_3']\r\n27773229365143: ['[webform_submission:values:contact_address_verifier:location_address] [webform_submission:values:contact_address_verifier:unit_number], [webform_submission:values:contact_address_verifier:location_city], [webform_submission:values:contact_address_verifier:location_state] [webform_submission:values:contact_address_verifier:location_zip]', 'contact_address_verifier']\r\n26253458420759: ['[webform_submission:values:organization_name]', 'organization_name']\r\n" + ticket_id_field: request_ticket_id + ticket_fork_field: '' + ticket_form_id: '26628122071575' + child_incident: 1 + parent_ticket_id_field: parent_ticket_id + is_child_incident: 1 + zendesk_new_request_household_applicant_4: + id: zendesk + handler_id: zendesk_new_request_household_applicant_4 + label: 'Zendesk new request - Household applicant #4' + notes: '' + status: true + conditions: + enabled: + ':input[name="apply_wallet_package"]': + value: wallet_option_3 + ':input[name="apply_household_size"]': + value: + greater_equal: '4' + ':input[name="support_agent_use_only[test_submission]"]': + unchecked: true + weight: 5 + settings: + requester_name: computed_full_name + requester_email: contact_email + subject: 'Wallet Application - Member 4 - [webform_submission:values:first_name_4] [webform_submission:values:last_name_4]' + comment: "

Wallet Application for Household Member 4

\r\n\r\n[webform_submission:values:household_member_4_display]\r\n\r\n

Primary Applicant

\r\n\r\n[webform_submission:values:primary_household_member_display]\r\n\r\n
\r\n

Full application:

\r\n
\r\n[webform_submission:values:html]\r\n
" + tags: 'drupal webform [webform_submission:values:apply_wallet_package:raw] [webform_submission:values:has_hop_card_4:raw]' + priority: normal + status: new + recipient: '' + group_id: '27146129932439' + assignee_id: '' + type: incident + collaborators: '' + custom_fields: "27985303578775: ['[webform_submission:values:date_of_birth_member_4:Y]-[webform_submission:values:date_of_birth_member_4:m]-[webform_submission:values:date_of_birth_member_4:d]', 'computed_date_of_birth_member_4']\r\n29284110563479: ['[webform_submission:values:apply_wallet_package]', 'apply_wallet_package']\r\n27985321767319: ['[webform_submission:values:has_hop_card_4]', 'has_hop_card_4']\r\n27985342383639: ['[webform_submission:values:hop_card_number_4]', 'hop_card_number_4']\r\n27985354792087: ['[webform_submission:values:computed_card_amount_4]', 'computed_card_amount_4']\r\n27773229365143: ['[webform_submission:values:contact_address_verifier:location_address] [webform_submission:values:contact_address_verifier:unit_number], [webform_submission:values:contact_address_verifier:location_city], [webform_submission:values:contact_address_verifier:location_state] [webform_submission:values:contact_address_verifier:location_zip]', 'contact_address_verifier']\r\n26253458420759: ['[webform_submission:values:organization_name]', 'organization_name']\r\n" + ticket_id_field: request_ticket_id + ticket_fork_field: '' + ticket_form_id: '26628122071575' + child_incident: 1 + parent_ticket_id_field: parent_ticket_id + is_child_incident: 1 + zendesk_new_request_household_applicant_5: + id: zendesk + handler_id: zendesk_new_request_household_applicant_5 + label: 'Zendesk new request - Household applicant #5' + notes: '' + status: true + conditions: + enabled: + ':input[name="apply_wallet_package"]': + value: wallet_option_3 + ':input[name="apply_household_size"]': + value: + greater_equal: '5' + ':input[name="support_agent_use_only[test_submission]"]': + unchecked: true + weight: 6 + settings: + requester_name: computed_full_name + requester_email: contact_email + subject: 'Wallet Application - Member 5 - [webform_submission:values:first_name_5] [webform_submission:values:last_name_5]' + comment: "

Wallet Application for Household Member 5

\r\n\r\n[webform_submission:values:household_member_5_display]\r\n\r\n

Primary Applicant

\r\n\r\n[webform_submission:values:primary_household_member_display]\r\n\r\n
\r\n

Full application:

\r\n
\r\n[webform_submission:values:html]\r\n
" + tags: 'drupal webform [webform_submission:values:apply_wallet_package:raw] [webform_submission:values:has_hop_card_5:raw]' + priority: normal + status: new + recipient: '' + group_id: '27146129932439' + assignee_id: '' + type: incident + collaborators: '' + custom_fields: "27985303578775: ['[webform_submission:values:date_of_birth_member_5:Y]-[webform_submission:values:date_of_birth_member_5:m]-[webform_submission:values:date_of_birth_member_5:d]', 'computed_date_of_birth_member_5']\r\n29284110563479: ['[webform_submission:values:apply_wallet_package]', 'apply_wallet_package']\r\n27985321767319: ['[webform_submission:values:has_hop_card_5]', 'has_hop_card_5']\r\n27985342383639: ['[webform_submission:values:hop_card_number_5]', 'hop_card_number_5']\r\n27985354792087: ['[webform_submission:values:computed_card_amount_5]', 'computed_card_amount_5']\r\n27773229365143: ['[webform_submission:values:contact_address_verifier:location_address] [webform_submission:values:contact_address_verifier:unit_number], [webform_submission:values:contact_address_verifier:location_city], [webform_submission:values:contact_address_verifier:location_state] [webform_submission:values:contact_address_verifier:location_zip]', 'contact_address_verifier']\r\n26253458420759: ['[webform_submission:values:organization_name]', 'organization_name']\r\n" + ticket_id_field: request_ticket_id + ticket_fork_field: '' + ticket_form_id: '26628122071575' + child_incident: 1 + parent_ticket_id_field: parent_ticket_id + is_child_incident: 1 + test_zendesk_new_request_household_applicant_1: + id: zendesk + handler_id: test_zendesk_new_request_household_applicant_1 + label: 'TEST: Zendesk new request - Household applicant #1' + notes: '' + status: true + conditions: + enabled: + ':input[name="apply_wallet_package"]': + value: wallet_option_3 + ':input[name="support_agent_use_only[test_submission]"]': + checked: true + weight: 7 + settings: + requester_name: computed_full_name + requester_email: contact_email + subject: 'Wallet Application - Primary - [webform_submission:values:contact_first_name] [webform_submission:values:contact_last_name]' + comment: "

Primary Applicant Information

\r\n\r\n[webform_submission:values:primary_household_member_display]\r\n\r\n
\r\n

Full application:

\r\n
\r\n[webform_submission:values:html]\r\n
" + tags: 'drupal webform [webform_submission:values:apply_wallet_package:raw] [webform_submission:values:computed_hop_card_type:raw]' + priority: normal + status: new + recipient: '' + group_id: '4549352062487' + assignee_id: '' + type: problem + collaborators: '' + custom_fields: "27985303578775: ['[webform_submission:values:apply_date_of_birth:Y]-[webform_submission:values:apply_date_of_birth:m]-[webform_submission:values:apply_date_of_birth:d]', 'apply_date_of_birth']\r\n29284110563479: ['[webform_submission:values:apply_wallet_package]', 'apply_wallet_package']\r\n27985321767319: ['[webform_submission:values:computed_hop_card_type]', 'computed_hop_card_type']\r\n27985342383639: ['[webform_submission:values:apply_hop_card_number]', 'apply_hop_card_number']\r\n27985354792087: ['[webform_submission:values:computed_card_amount_1]', 'computed_card_amount_1']\r\n27773229365143: ['[webform_submission:values:contact_address_verifier:location_address] [webform_submission:values:contact_address_verifier:unit_number], [webform_submission:values:contact_address_verifier:location_city], [webform_submission:values:contact_address_verifier:location_state] [webform_submission:values:contact_address_verifier:location_zip]', 'contact_address_verifier']\r\n25600783638295: ['[webform_submission:values:contact_phone]', 'contact_phone']\r\n26253458420759: ['[webform_submission:values:organization_name]', 'organization_name']" + ticket_id_field: request_ticket_id + ticket_fork_field: '' + ticket_form_id: '26628122071575' + child_incident: 1 + parent_ticket_id_field: parent_ticket_id + is_child_incident: 0 + test_zendesk_new_request_household_applicant_2: + id: zendesk + handler_id: test_zendesk_new_request_household_applicant_2 + label: 'TEST: Zendesk new request - Household applicant #2' + notes: '' + status: true + conditions: + enabled: + ':input[name="apply_wallet_package"]': + value: wallet_option_3 + ':input[name="support_agent_use_only[test_submission]"]': + checked: true + weight: 8 + settings: + requester_name: computed_full_name + requester_email: contact_email + subject: 'Wallet Application - Member 2 - [webform_submission:values:first_name_2] [webform_submission:values:last_name_2]' + comment: "

Wallet Application for Household Member 2

\r\n\r\n[webform_submission:values:household_member_2_display]\r\n\r\n

Primary Applicant

\r\n\r\n[webform_submission:values:primary_household_member_display]\r\n\r\n
\r\n

Full application:

\r\n
\r\n[webform_submission:values:html]\r\n
" + tags: 'drupal webform [webform_submission:values:apply_wallet_package:raw] [webform_submission:values:has_hop_card_2:raw]' + priority: normal + status: new + recipient: '' + group_id: '4549352062487' + assignee_id: '' + type: incident + collaborators: '' + custom_fields: "27985303578775: ['[webform_submission:values:date_of_birth_member_2:Y]-[webform_submission:values:date_of_birth_member_2:m]-[webform_submission:values:date_of_birth_member_2:d]', 'computed_date_of_birth_member_2']\r\n29284110563479: ['[webform_submission:values:apply_wallet_package]', 'apply_wallet_package']\r\n27985321767319: ['[webform_submission:values:has_hop_card_2]', 'has_hop_card_2']\r\n27985342383639: ['[webform_submission:values:hop_card_number_2]', 'hop_card_number_2']\r\n27985354792087: ['[webform_submission:values:computed_card_amount_2]', 'computed_card_amount_2']\r\n27773229365143: ['[webform_submission:values:contact_address_verifier:location_address] [webform_submission:values:contact_address_verifier:unit_number], [webform_submission:values:contact_address_verifier:location_city], [webform_submission:values:contact_address_verifier:location_state] [webform_submission:values:contact_address_verifier:location_zip]', 'contact_address_verifier']\r\n26253458420759: ['[webform_submission:values:organization_name]', 'organization_name']\r\n" + ticket_id_field: request_ticket_id + ticket_fork_field: '' + ticket_form_id: '26628122071575' + child_incident: 1 + parent_ticket_id_field: parent_ticket_id + is_child_incident: 1 + test_zendesk_new_request_household_applicant_3: + id: zendesk + handler_id: test_zendesk_new_request_household_applicant_3 + label: 'TEST: Zendesk new request - Household applicant #3' + notes: '' + status: true + conditions: + enabled: + ':input[name="apply_wallet_package"]': + value: wallet_option_3 + ':input[name="apply_household_size"]': + value: + greater_equal: '3' + ':input[name="support_agent_use_only[test_submission]"]': + checked: true + weight: 9 + settings: + requester_name: computed_full_name + requester_email: contact_email + subject: 'Wallet Application - Member 3 - [webform_submission:values:first_name_3] [webform_submission:values:last_name_3]' + comment: "

Wallet Application for Household Member 3

\r\n\r\n[webform_submission:values:household_member_3_display]\r\n\r\n

Primary Applicant

\r\n\r\n[webform_submission:values:primary_household_member_display]\r\n\r\n
\r\n

Full application:

\r\n
\r\n[webform_submission:values:html]\r\n
" + tags: 'drupal webform [webform_submission:values:apply_wallet_package:raw] [webform_submission:values:has_hop_card_3:raw]' + priority: normal + status: new + recipient: '' + group_id: '4549352062487' + assignee_id: '' + type: incident + collaborators: '' + custom_fields: "27985303578775: ['[webform_submission:values:date_of_birth_member_3:Y]-[webform_submission:values:date_of_birth_member_3:m]-[webform_submission:values:date_of_birth_member_3:d]', 'computed_date_of_birth_member_3']\r\n29284110563479: ['[webform_submission:values:apply_wallet_package]', 'apply_wallet_package']\r\n27985321767319: ['[webform_submission:values:has_hop_card_3]', 'has_hop_card_3']\r\n27985342383639: ['[webform_submission:values:hop_card_number_3]', 'hop_card_number_3']\r\n27985354792087: ['[webform_submission:values:computed_card_amount_3]', 'computed_card_amount_3']\r\n27773229365143: ['[webform_submission:values:contact_address_verifier:location_address] [webform_submission:values:contact_address_verifier:unit_number], [webform_submission:values:contact_address_verifier:location_city], [webform_submission:values:contact_address_verifier:location_state] [webform_submission:values:contact_address_verifier:location_zip]', 'contact_address_verifier']\r\n26253458420759: ['[webform_submission:values:organization_name]', 'organization_name']\r\n" + ticket_id_field: request_ticket_id + ticket_fork_field: '' + ticket_form_id: '26628122071575' + child_incident: 1 + parent_ticket_id_field: parent_ticket_id + is_child_incident: 1 + test_zendesk_new_request_household_applicant_4: + id: zendesk + handler_id: test_zendesk_new_request_household_applicant_4 + label: 'TEST: Zendesk new request - Household applicant #4' + notes: '' + status: true + conditions: + enabled: + ':input[name="apply_wallet_package"]': + value: wallet_option_3 + ':input[name="apply_household_size"]': + value: + greater_equal: '4' + ':input[name="support_agent_use_only[test_submission]"]': + checked: true + weight: 10 + settings: + requester_name: computed_full_name + requester_email: contact_email + subject: 'Wallet Application - Member 4 - [webform_submission:values:first_name_4] [webform_submission:values:last_name_4]' + comment: "

Wallet Application for Household Member 4

\r\n\r\n[webform_submission:values:household_member_4_display]\r\n\r\n

Primary Applicant

\r\n\r\n[webform_submission:values:primary_household_member_display]\r\n\r\n
\r\n

Full application:

\r\n
\r\n[webform_submission:values:html]\r\n
" + tags: 'drupal webform [webform_submission:values:apply_wallet_package:raw] [webform_submission:values:has_hop_card_4:raw]' + priority: normal + status: new + recipient: '' + group_id: '4549352062487' + assignee_id: '' + type: incident + collaborators: '' + custom_fields: "27985303578775: ['[webform_submission:values:date_of_birth_member_4:Y]-[webform_submission:values:date_of_birth_member_4:m]-[webform_submission:values:date_of_birth_member_4:d]', 'computed_date_of_birth_member_4']\r\n29284110563479: ['[webform_submission:values:apply_wallet_package]', 'apply_wallet_package']\r\n27985321767319: ['[webform_submission:values:has_hop_card_4]', 'has_hop_card_4']\r\n27985342383639: ['[webform_submission:values:hop_card_number_4]', 'hop_card_number_4']\r\n27985354792087: ['[webform_submission:values:computed_card_amount_4]', 'computed_card_amount_4']\r\n27773229365143: ['[webform_submission:values:contact_address_verifier:location_address] [webform_submission:values:contact_address_verifier:unit_number], [webform_submission:values:contact_address_verifier:location_city], [webform_submission:values:contact_address_verifier:location_state] [webform_submission:values:contact_address_verifier:location_zip]', 'contact_address_verifier']\r\n26253458420759: ['[webform_submission:values:organization_name]', 'organization_name']\r\n" + ticket_id_field: request_ticket_id + ticket_fork_field: '' + ticket_form_id: '26628122071575' + child_incident: 1 + parent_ticket_id_field: parent_ticket_id + is_child_incident: 1 + test_zendesk_new_request_household_applicant_5: + id: zendesk + handler_id: test_zendesk_new_request_household_applicant_5 + label: 'TEST: Zendesk new request - Household applicant #5' + notes: '' + status: true + conditions: + enabled: + ':input[name="apply_wallet_package"]': + value: wallet_option_3 + ':input[name="apply_household_size"]': + value: + greater_equal: '5' + ':input[name="support_agent_use_only[test_submission]"]': + checked: true + weight: 11 + settings: + requester_name: computed_full_name + requester_email: contact_email + subject: 'Wallet Application - Member 5 - [webform_submission:values:first_name_5] [webform_submission:values:last_name_5]' + comment: "

Wallet Application for Household Member 5

\r\n\r\n[webform_submission:values:household_member_5_display]\r\n\r\n

Primary Applicant

\r\n\r\n[webform_submission:values:primary_household_member_display]\r\n\r\n
\r\n

Full application:

\r\n
\r\n[webform_submission:values:html]\r\n
" + tags: 'drupal webform [webform_submission:values:apply_wallet_package:raw] [webform_submission:values:has_hop_card_5:raw]' + priority: normal + status: new + recipient: '' + group_id: '4549352062487' + assignee_id: '' + type: incident + collaborators: '' + custom_fields: "27985303578775: ['[webform_submission:values:date_of_birth_member_5:Y]-[webform_submission:values:date_of_birth_member_5:m]-[webform_submission:values:date_of_birth_member_5:d]', 'computed_date_of_birth_member_5']\r\n29284110563479: ['[webform_submission:values:apply_wallet_package]', 'apply_wallet_package']\r\n27985321767319: ['[webform_submission:values:has_hop_card_5]', 'has_hop_card_5']\r\n27985342383639: ['[webform_submission:values:hop_card_number_5]', 'hop_card_number_5']\r\n27985354792087: ['[webform_submission:values:computed_card_amount_5]', 'computed_card_amount_5']\r\n27773229365143: ['[webform_submission:values:contact_address_verifier:location_address] [webform_submission:values:contact_address_verifier:unit_number], [webform_submission:values:contact_address_verifier:location_city], [webform_submission:values:contact_address_verifier:location_state] [webform_submission:values:contact_address_verifier:location_zip]', 'contact_address_verifier']\r\n26253458420759: ['[webform_submission:values:organization_name]', 'organization_name']\r\n" + ticket_id_field: request_ticket_id + ticket_fork_field: '' + ticket_form_id: '26628122071575' + child_incident: 1 + parent_ticket_id_field: parent_ticket_id + is_child_incident: 1 +variants: { }