From ab6f6b2a64254f0f96bfb025a4dc67db51367d1c Mon Sep 17 00:00:00 2001 From: Brian Canini <canini.16@osu.edu> Date: Thu, 26 Aug 2021 11:23:15 -0400 Subject: [PATCH] - Upgrading drupal/webform (6.0.3 => 6.0.5) --- composer.lock | 16 +- vendor/composer/InstalledVersions.php | 10 +- vendor/composer/installed.json | 18 +- vendor/composer/installed.php | 10 +- web/modules/webform/composer.json | 2 +- web/modules/webform/composer.libraries.json | 28 +- web/modules/webform/docs/RELEASE-NOTES.md | 9 + web/modules/webform/drush/webform.drush.inc | 27 +- .../webform/includes/webform.editor.inc | 23 +- .../includes/webform.install.update.inc | 18 +- .../webform/includes/webform.theme.inc | 4 + .../includes/webform.theme.template.inc | 6 + .../webform/js/webform.element.inputmask.js | 20 + .../webform/js/webform.element.telephone.js | 16 +- web/modules/webform/js/webform.form.tabs.js | 2 +- web/modules/webform/js/webform.states.js | 84 ++- .../webform_access/webform_access.info.yml | 6 +- .../webform_attachment_test.info.yml | 6 +- .../webform_attachment.info.yml | 6 +- .../webform_bootstrap_test_module.info.yml | 6 +- .../webform_bootstrap_test_theme.info.yml | 6 +- .../webform_bootstrap.info.yml | 6 +- .../src/Plugin/WebformElement/WebformCard.php | 7 + .../templates/webform-card.html.twig | 2 +- .../webform_cards_test.info.yml | 6 +- .../webform_cards/webform_cards.info.yml | 6 +- .../webform_cards/webform_cards.module | 35 +- .../js/webform_clientside_validation.ife.js | 36 +- ...orm.webform.test_clientside_validation.yml | 55 +- ...bform.test_clientside_validation_state.yml | 401 ++++++++++++++ ...ebform_clientside_validation_test.info.yml | 6 +- ...formClientSideValidationJavaScriptTest.php | 89 +++ .../webform_clientside_validation.info.yml | 6 +- ...bform_demo_application_evaluation.info.yml | 6 +- .../webform_demo_event_registration.info.yml | 6 +- .../webform_demo_group.info.yml | 6 +- .../webform_demo_region_contact.info.yml | 6 +- .../webform_devel/webform_devel.drush.inc | 6 +- .../webform_devel/webform_devel.info.yml | 6 +- .../webform_entity_print_test.info.yml | 6 +- .../webform_entity_print.info.yml | 6 +- ...form_entity_print_attachment_test.info.yml | 6 +- .../webform_entity_print_attachment.info.yml | 6 +- .../webform_example_composite.info.yml | 6 +- .../webform_example_custom_form.info.yml | 6 +- .../webform_example_element.info.yml | 6 +- ...ebform_example_element_properties.info.yml | 6 +- .../webform_example_handler.info.yml | 6 +- .../webform_example_remote_post.info.yml | 6 +- .../webform_example_variant.info.yml | 6 +- .../webform_examples.info.yml | 6 +- .../webform_examples_accessibility.info.yml | 6 +- .../webform_group_test.info.yml | 6 +- .../webform_group/webform_group.info.yml | 6 +- .../webform_icheck_test.info.yml | 6 +- .../webform_icheck/webform_icheck.info.yml | 6 +- .../webform_image_select_test.info.yml | 6 +- .../webform_image_select.info.yml | 6 +- .../webform_jqueryui_buttons_test.info.yml | 6 +- .../webform_jqueryui_buttons.info.yml | 6 +- ...webform_location_geocomplete_test.info.yml | 6 +- .../webform_location_geocomplete.info.yml | 6 +- .../webform_node_test_multiple.info.yml | 6 +- .../webform_node_test_translation.info.yml | 6 +- .../WebformNodeUninstallValidatorTest.php | 9 +- .../webform_node/webform_node.info.yml | 6 +- ...ebform_options_custom_entity_test.info.yml | 6 +- .../webform_options_custom_test.info.yml | 6 +- .../webform_options_custom.info.yml | 6 +- .../src/Access/WebformOptionsLimitAccess.php | 4 +- .../OptionsLimitWebformHandler.php | 7 +- .../webform_options_limit_test.info.yml | 6 +- .../WebformOptionsLimitSourceEntityTest.php | 7 +- .../webform_options_limit.info.yml | 6 +- .../drush/webform_scheduled_email.drush.inc | 3 +- .../src/WebformScheduledEmailManager.php | 13 +- .../webform_scheduled_email_test.info.yml | 6 +- ..._scheduled_email_test_translation.info.yml | 6 +- .../webform_scheduled_email.info.yml | 6 +- .../webform_share/webform_share.info.yml | 6 +- .../webform_shortcuts.info.yml | 6 +- ...ebformSubmissionExportImportUploadForm.php | 2 +- ...orm_submission_export_import_test.info.yml | 6 +- .../webform_submission_export_import.info.yml | 6 +- .../webform_submission_log.info.yml | 6 +- .../webform_templates.info.yml | 6 +- .../webform_toggles_test.info.yml | 6 +- .../webform_toggles/webform_toggles.info.yml | 6 +- .../webform_ui/css/webform_ui.module.css | 2 +- .../modules/webform_ui/webform_ui.info.yml | 6 +- .../src/Cache/WebformBubbleableMetadata.php | 54 ++ .../src/Commands/WebformCliService.php | 82 +-- .../Commands/WebformCliServiceInterface.php | 5 - .../webform/src/Commands/WebformCommands.php | 32 +- .../src/Commands/WebformCommandsBase.php | 29 +- .../WebformSanitizeSubmissionsCommands.php | 2 +- .../webform/src/Element/WebformAddress.php | 2 +- .../src/Element/WebformAutocomplete.php | 6 + .../src/Element/WebformExcludedColumns.php | 3 + .../webform/src/Element/WebformLikert.php | 11 +- .../webform/src/Element/WebformOtherBase.php | 8 + .../webform/src/Element/WebformSection.php | 4 + .../src/Element/WebformTermsOfService.php | 19 + web/modules/webform/src/Entity/Webform.php | 10 +- .../WebformEntitySettingsSubmissionsForm.php | 2 +- .../WebformDefaultExceptionHtmlSubscriber.php | 2 +- .../webform/src/Form/WebformAjaxFormTrait.php | 2 +- .../WebformSubmissionDevelGenerateTrait.php | 23 +- .../src/Plugin/WebformElement/BooleanBase.php | 9 + .../WebformElement/EntityAutocomplete.php | 9 + .../src/Plugin/WebformElement/Table.php | 4 + .../src/Plugin/WebformElement/TextBase.php | 19 +- .../WebformEntityOptionsTrait.php | 12 + .../WebformEntityReferenceTrait.php | 9 - .../Plugin/WebformElement/WebformSection.php | 4 + .../Plugin/WebformElement/WebformTableRow.php | 7 + .../WebformElement/WebformTableTrait.php | 22 +- .../Plugin/WebformElement/WebformVariant.php | 7 + .../webform/src/Plugin/WebformElementBase.php | 8 +- .../WebformHandler/ActionWebformHandler.php | 3 +- .../WebformHandler/DebugWebformHandler.php | 6 +- .../WebformHandler/EmailWebformHandler.php | 5 +- .../RemotePostWebformHandler.php | 9 +- .../WebformHandler/SettingsWebformHandler.php | 4 +- .../webform/src/Plugin/WebformHandlerBase.php | 1 + .../src/Plugin/WebformHandlerInterface.php | 2 +- .../Plugin/WebformPluginSettingsInterface.php | 51 ++ .../src/Plugin/WebformPluginSettingsTrait.php | 45 ++ .../webform/src/Plugin/WebformVariantBase.php | 1 + .../src/Plugin/WebformVariantInterface.php | 2 +- .../webform/src/WebformAddonsManager.php | 18 +- .../src/WebformEntityReferenceManager.php | 6 +- .../webform/src/WebformHelpManager.php | 15 +- .../webform/src/WebformLibrariesManager.php | 21 +- .../webform/src/WebformSubmissionForm.php | 31 +- .../webform/src/WebformTokenManager.php | 9 +- .../src/WebformTranslationConfigManager.php | 36 +- .../webform-progress-tracker.html.twig | 2 +- .../templates/webform-progress.html.twig | 3 +- .../templates/webform-section.html.twig | 11 +- .../install/webform.webform.test_ajax.yml | 2 - ....webform.test_ajax_confirmation_inline.yml | 2 - ...webform.test_ajax_confirmation_message.yml | 2 - ...m.webform.test_ajax_confirmation_modal.yml | 2 - ...rm.webform.test_ajax_confirmation_page.yml | 2 - ...orm.webform.test_ajax_confirmation_url.yml | 2 - ...webform.test_ajax_confirmation_url_msg.yml | 2 - .../webform.webform.test_composite.yml | 6 +- .../webform.webform.test_composite_custom.yml | 6 +- ...orm.webform.test_composite_custom_file.yml | 8 +- .../webform.webform.test_composite_format.yml | 14 +- ...webform.test_composite_format_multiple.yml | 2 - ...bform.webform.test_confirmation_inline.yml | 2 - ...form.webform.test_confirmation_message.yml | 2 - ...ebform.webform.test_confirmation_modal.yml | 2 - ...webform.webform.test_confirmation_none.yml | 2 - ...webform.webform.test_confirmation_page.yml | 2 - ....webform.test_confirmation_page_custom.yml | 2 - .../webform.webform.test_confirmation_url.yml | 2 - ....webform.test_confirmation_url_message.yml | 2 - .../install/webform.webform.test_element.yml | 1 - .../webform.webform.test_element_access.yml | 2 - .../webform.webform.test_element_actions.yml | 2 - ...m.webform.test_element_actions_buttons.yml | 2 - .../webform.webform.test_element_address.yml | 6 +- ...form.webform.test_element_allowed_tags.yml | 2 - ...ebform.webform.test_element_attributes.yml | 6 +- ...form.webform.test_element_autocomplete.yml | 2 - .../webform.webform.test_element_captcha.yml | 6 +- .../webform.webform.test_element_checkbox.yml | 6 +- ...rm.webform.test_element_checkbox_value.yml | 6 +- ...ebform.webform.test_element_checkboxes.yml | 26 +- ...bform.test_element_checkboxes_all_none.yml | 36 +- ...ebform.webform.test_element_codemirror.yml | 23 +- ...webform.webform.test_element_composite.yml | 6 +- ...webform.test_element_composite_wrapper.yml | 6 +- ...orm.webform.test_element_computed_ajax.yml | 12 +- ...rm.webform.test_element_computed_debug.yml | 7 +- ...rm.webform.test_element_computed_token.yml | 14 +- ...orm.webform.test_element_computed_twig.yml | 12 +- ...webform.webform.test_element_container.yml | 8 +- .../webform.webform.test_element_counter.yml | 9 +- .../webform.webform.test_element_date.yml | 6 +- .../webform.webform.test_element_datelist.yml | 6 +- .../webform.webform.test_element_datetime.yml | 8 +- ...bform.test_element_description_tooltip.yml | 86 ++- .../webform.webform.test_element_details.yml | 2 - .../webform.webform.test_element_disabled.yml | 36 +- ...orm.webform.test_element_email_confirm.yml | 8 +- ...rm.webform.test_element_email_multiple.yml | 6 +- ...bform.test_element_entity_autocomplete.yml | 6 +- ....webform.test_element_entity_reference.yml | 6 +- ....webform.test_element_excluded_columns.yml | 6 +- ...webform.test_element_excluded_elements.yml | 6 +- .../webform.webform.test_element_fieldset.yml | 2 - .../webform.webform.test_element_flexbox.yml | 124 +++-- ...form.webform.test_element_flexbox_flex.yml | 2 - .../webform.webform.test_element_format.yml | 515 ++++++++++-------- ...orm.webform.test_element_format_custom.yml | 46 +- ...m.webform.test_element_format_multiple.yml | 379 ++++++++++++- ...form.webform.test_element_format_token.yml | 2 - .../webform.webform.test_element_height.yml | 16 +- .../webform.webform.test_element_help.yml | 6 +- ...form.webform.test_element_help_display.yml | 400 ++++++++++---- ...m.webform.test_element_horizontal_rule.yml | 6 +- ...bform.webform.test_element_html_editor.yml | 6 +- ...bform.webform.test_element_html_escape.yml | 54 +- ...bform.webform.test_element_html_markup.yml | 57 +- ...ebform.test_element_ignored_properties.yml | 32 +- ...ebform.webform.test_element_image_file.yml | 6 +- ...webform.test_element_image_file_attach.yml | 2 - ....webform.test_element_image_resolution.yml | 6 +- ...ebform.webform.test_element_input_mask.yml | 18 +- .../webform.webform.test_element_invalid.yml | 1 - .../webform.webform.test_element_likert.yml | 24 +- ...ebform.webform.test_element_loc_places.yml | 6 +- ...form.webform.test_element_managed_file.yml | 2 - ....webform.test_element_managed_file_dis.yml | 2 - ...webform.test_element_managed_file_help.yml | 6 +- ...ebform.test_element_managed_file_limit.yml | 2 - ...webform.test_element_managed_file_name.yml | 8 +- ...webform.test_element_managed_file_prev.yml | 2 - .../webform.webform.test_element_mapping.yml | 6 +- .../webform.webform.test_element_markup.yml | 2 - ...ebform.webform.test_element_media_file.yml | 2 - .../webform.webform.test_element_message.yml | 2 - .../webform.webform.test_element_more.yml | 2 - .../webform.webform.test_element_multiple.yml | 6 +- ...orm.webform.test_element_multiple_date.yml | 6 +- ...webform.test_element_multiple_property.yml | 6 +- ...orm.webform.test_element_multiple_text.yml | 6 +- .../webform.webform.test_element_options.yml | 8 +- .../webform.webform.test_element_other.yml | 6 +- ...bform.webform.test_element_prepopulate.yml | 2 - .../webform.webform.test_element_private.yml | 2 - .../webform.webform.test_element_radios.yml | 40 +- .../webform.webform.test_element_range.yml | 6 +- .../webform.webform.test_element_rating.yml | 6 +- .../webform.webform.test_element_readonly.yml | 6 +- .../webform.webform.test_element_same.yml | 8 +- .../webform.webform.test_element_scale.yml | 10 +- .../webform.webform.test_element_section.yml | 30 +- .../webform.webform.test_element_select.yml | 9 +- ...webform.webform.test_element_signature.yml | 6 +- .../webform.webform.test_element_states.yml | 6 +- ....webform.test_element_submission_views.yml | 6 +- ...ebform.test_element_submission_views_r.yml | 6 +- ...m.webform.test_element_submitted_value.yml | 6 +- .../webform.webform.test_element_table.yml | 6 +- ...form.webform.test_element_table_select.yml | 261 +++++++++ ...webform.test_element_table_select_sort.yml | 6 +- ...webform.webform.test_element_telephone.yml | 6 +- ...rm.webform.test_element_term_reference.yml | 2 - ....webform.test_element_terms_of_service.yml | 2 - ...bform.webform.test_element_text_format.yml | 2 - .../webform.webform.test_element_time.yml | 6 +- ...orm.webform.test_element_title_display.yml | 200 ++++++- ...bform.webform.test_element_users_roles.yml | 6 +- ...ebform.test_element_validate_minlength.yml | 2 - ...webform.test_element_validate_multiple.yml | 6 +- ....webform.test_element_validate_pattern.yml | 6 +- ...webform.test_element_validate_required.yml | 2 - ...m.webform.test_element_validate_unique.yml | 2 - ...orm.webform.test_element_vertical_tabs.yml | 4 +- .../webform.webform.test_element_view.yml | 6 +- .../webform.webform.test_example_elements.yml | 47 +- ...ebform.test_example_elements_composite.yml | 2 - ...webform.test_exporter_entity_reference.yml | 2 - .../webform.webform.test_exporter_options.yml | 2 - ...ebform.webform.test_form_access_denied.yml | 2 - .../install/webform.webform.test_form_api.yml | 2 - .../webform.webform.test_form_archived.yml | 2 - .../webform.webform.test_form_assets.yml | 2 - .../webform.webform.test_form_autofill.yml | 2 - .../webform.webform.test_form_autofocus.yml | 2 - .../webform.webform.test_form_closed.yml | 2 - ...webform.webform.test_form_confidential.yml | 2 - ...bform.webform.test_form_details_toggle.yml | 2 - ...webform.test_form_disable_autocomplete.yml | 2 - ...webform.webform.test_form_disable_back.yml | 2 - ...ebform.test_form_disable_inline_errors.yml | 2 - ...form.webform.test_form_draft_anonymous.yml | 2 - ....webform.test_form_draft_authenticated.yml | 2 - ...bform.webform.test_form_draft_multiple.yml | 2 - ...ebform.webform.test_form_inline_errors.yml | 2 - .../webform.webform.test_form_limit.yml | 3 +- ...m.webform.test_form_limit_total_unique.yml | 2 - ...rm.webform.test_form_limit_user_unique.yml | 2 - .../webform.webform.test_form_limit_wait.yml | 2 - .../webform.webform.test_form_long_100.yml | 2 - .../webform.webform.test_form_long_200.yml | 2 - .../webform.webform.test_form_long_300.yml | 2 - .../webform.webform.test_form_novalidate.yml | 2 - .../webform.webform.test_form_opening.yml | 2 - .../webform.webform.test_form_prepopulate.yml | 2 - .../webform.webform.test_form_preview.yml | 2 - .../webform.webform.test_form_properties.yml | 2 - .../webform.webform.test_form_remote_addr.yml | 2 - .../webform.webform.test_form_required.yml | 2 - .../webform.webform.test_form_reset.yml | 2 - ...orm.webform.test_form_results_disabled.yml | 2 - .../webform.webform.test_form_submit_back.yml | 2 - .../webform.webform.test_form_submit_once.yml | 2 - .../webform.webform.test_form_submit_text.yml | 2 - .../webform.webform.test_form_template.yml | 2 - .../webform.webform.test_form_unsaved.yml | 2 - ...bform.webform.test_form_unsaved_wizard.yml | 4 +- .../webform.webform.test_form_validate.yml | 2 - ...ebform.webform.test_form_wizard_access.yml | 2 - ...form.webform.test_form_wizard_advanced.yml | 2 - ...webform.webform.test_form_wizard_basic.yml | 2 - ...m.webform.test_form_wizard_conditional.yml | 2 - ...ebform.webform.test_form_wizard_custom.yml | 2 - ...webform.webform.test_form_wizard_links.yml | 2 - ...form.webform.test_form_wizard_long_100.yml | 2 - ...form.webform.test_form_wizard_long_200.yml | 2 - ...form.webform.test_form_wizard_long_300.yml | 2 - ...form.webform.test_form_wizard_validate.yml | 6 +- ...webform.test_form_wizard_validate_comp.yml | 6 +- .../webform.webform.test_handler_action.yml | 2 - .../webform.webform.test_handler_email.yml | 2 - ...rm.webform.test_handler_email_advanced.yml | 2 - ...orm.webform.test_handler_email_mapping.yml | 2 - ...bform.webform.test_handler_email_roles.yml | 2 - ...form.webform.test_handler_email_states.yml | 2 - ...ebform.webform.test_handler_email_twig.yml | 2 - .../webform.webform.test_handler_settings.yml | 2 - ...ebform.webform.test_libraries_optional.yml | 2 - .../webform.webform.test_rendering.yml | 2 - ...bform.webform.test_states_autocomplete.yml | 2 - ...rm.webform.test_states_client_disabled.yml | 49 +- ...m.webform.test_states_client_invisible.yml | 41 +- ...rm.webform.test_states_client_required.yml | 6 +- ...orm.webform.test_states_client_visible.yml | 49 +- .../webform.webform.test_states_crosspage.yml | 2 - .../webform.webform.test_states_disabled.yml | 6 +- ...bform.webform.test_states_server_clear.yml | 6 +- ...ebform.webform.test_states_server_comp.yml | 2 - ....webform.test_states_server_containers.yml | 2 - ...form.webform.test_states_server_custom.yml | 2 - ...ebform.webform.test_states_server_file.yml | 2 - ...form.webform.test_states_server_hidden.yml | 6 +- ...form.webform.test_states_server_likert.yml | 4 +- ...rm.webform.test_states_server_multiple.yml | 2 - ...form.webform.test_states_server_nested.yml | 2 - ...orm.webform.test_states_server_preview.yml | 2 - ...rm.webform.test_states_server_required.yml | 3 - ...ebform.webform.test_states_server_save.yml | 6 +- ...form.webform.test_states_server_wizard.yml | 6 +- .../webform.webform.test_states_to_text.yml | 8 +- .../webform.webform.test_states_triggers.yml | 2 - .../webform.webform.test_submission_label.yml | 2 - .../webform.webform.test_submission_log.yml | 2 - .../webform.webform.test_submission_views.yml | 2 - .../install/webform.webform.test_token.yml | 8 +- .../webform.webform.test_token_operations.yml | 1 - ...rm.webform.test_token_submission_value.yml | 2 - .../install/webform.webform.test_variant.yml | 6 +- .../webform.webform.test_variant_multiple.yml | 6 +- .../webform.webform.test_variant_override.yml | 10 +- ...webform.webform.test_variant_randomize.yml | 6 +- ..._test.test_element_description_tooltip.inc | 3 +- .../webform_test.test_element_disabled.inc | 3 +- .../webform_test.test_element_format.inc | 9 +- ...webform_test.test_element_help_display.inc | 7 +- ...ebform_test.test_element_title_display.inc | 7 +- .../webform_test.test_example_elements.inc | 5 +- ...m_test.test_example_elements_composite.inc | 6 +- .../includes/webform_test.test_states.inc | 4 +- .../webform_test/webform_test.info.yml | 6 +- .../modules/webform_test/webform_test.module | 7 + .../webform_test_ajax.info.yml | 6 +- .../webform_test_alter_hooks.info.yml | 6 +- .../webform_test_block_context.info.yml | 6 +- .../webform_test_block_custom.info.yml | 6 +- ...bform_test_block_submission_limit.info.yml | 6 +- .../webform_test_config_performance.info.yml | 6 +- .../webform_test_editorial.info.yml | 6 +- .../webform_test_element.info.yml | 6 +- .../webform_test_element_input_masks.info.yml | 6 +- ...bform_test_entity_reference_views.info.yml | 6 +- .../webform_test_exporter.info.yml | 6 +- .../webform_test_handler.info.yml | 6 +- ...webform_test_handler_invoke_alter.info.yml | 6 +- .../webform_test_handler_remote_post.info.yml | 6 +- .../webform_test_markup.info.yml | 6 +- .../webform_test_message_custom.info.yml | 6 +- .../webform_test_options.info.yml | 6 +- .../webform_test_paragraphs.info.yml | 6 +- .../webform_test_rest.info.yml | 6 +- .../webform_test_states.info.yml | 6 +- .../webform_test_submissions.info.yml | 6 +- ...webform_test_third_party_settings.info.yml | 6 +- .../webform.webform.test_translation.yml | 13 + .../webform_test_translation.info.yml | 6 +- ...webform_test_translation_lingotek.info.yml | 6 +- .../webform_test_validate.info.yml | 6 +- .../webform_test_variant.info.yml | 6 +- .../webform_test_views.info.yml | 6 +- .../webform_test_wizard_custom.info.yml | 6 +- .../src/Functional/Cache/WebformCacheTest.php | 113 ++++ .../Element/WebformElementCounterTest.php | 4 +- .../Element/WebformElementFormatTest.php | 6 +- .../Element/WebformElementInputMaskTest.php | 8 + .../Element/WebformElementLikertTest.php | 2 +- .../Element/WebformElementOtherTest.php | 2 +- .../WebformElementPluginPropertiesTest.php | 1 + .../Element/WebformElementScaleTest.php | 2 + .../Element/WebformElementSectionTest.php | 12 + .../WebformElementTermsOfServiceTest.php | 2 +- .../WebformElementValidateMinlengthTest.php | 11 + .../WebformHandlerEmailAdvancedTest.php | 37 +- .../Handler/WebformHandlerRemotePostTest.php | 32 +- .../Token/WebformTokenSuffixesTest.php | 16 + .../src/Functional/WebformEditorTest.php | 29 +- .../WebformSubmissionTokenOperationsTest.php | 4 + .../WebformStatesRequiredJavaScriptTest.php | 6 +- .../Cache/WebformBubbleableMetadataTest.php | 85 +++ .../webform_test_bartik.info.yml | 6 +- web/modules/webform/webform.info.yml | 6 +- web/modules/webform/webform.libraries.yml | 14 +- web/modules/webform/webform.module | 33 +- 422 files changed, 4162 insertions(+), 1858 deletions(-) create mode 100644 web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/config/install/webform.webform.test_clientside_validation_state.yml create mode 100644 web/modules/webform/modules/webform_clientside_validation/tests/src/FunctionalJavascript/Validation/WebformClientSideValidationJavaScriptTest.php create mode 100644 web/modules/webform/src/Cache/WebformBubbleableMetadata.php create mode 100644 web/modules/webform/src/Plugin/WebformPluginSettingsInterface.php create mode 100644 web/modules/webform/src/Plugin/WebformPluginSettingsTrait.php create mode 100644 web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_table_select.yml create mode 100644 web/modules/webform/tests/src/Functional/Cache/WebformCacheTest.php create mode 100644 web/modules/webform/tests/src/Unit/Cache/WebformBubbleableMetadataTest.php diff --git a/composer.lock b/composer.lock index 6b02e6248d..832f32945a 100644 --- a/composer.lock +++ b/composer.lock @@ -7848,17 +7848,17 @@ }, { "name": "drupal/webform", - "version": "6.0.3", + "version": "6.0.5", "source": { "type": "git", "url": "https://git.drupalcode.org/project/webform.git", - "reference": "6.0.3" + "reference": "6.0.5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/webform-6.0.3.zip", - "reference": "6.0.3", - "shasum": "b75f79e26b5d58f4a9e047131f63c482bdaa5593" + "url": "https://ftp.drupal.org/files/projects/webform-6.0.5.zip", + "reference": "6.0.5", + "shasum": "a925d604e3b4a29f5a688a8e84fdb3a93490f641" }, "require": { "drupal/core": "^8.8 || ^9" @@ -7906,8 +7906,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "6.0.3", - "datestamp": "1620250254", + "version": "6.0.5", + "datestamp": "1629909787", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -7915,7 +7915,7 @@ }, "drush": { "services": { - "drush.services.yml": "^9" + "drush.services.yml": "^9 || ^10" } } }, diff --git a/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php index 504e9a7f61..9368cf92d0 100644 --- a/vendor/composer/InstalledVersions.php +++ b/vendor/composer/InstalledVersions.php @@ -30,7 +30,7 @@ class InstalledVersions 'aliases' => array ( ), - 'reference' => 'f3b95f173473924fd6fc1d10d92240bd50ba3072', + 'reference' => '5ba45909d4ed1776c96788bcdc27e492dac03d11', 'name' => 'osu-asc-webservices/d8-upstream', ), 'versions' => @@ -1957,12 +1957,12 @@ class InstalledVersions ), 'drupal/webform' => array ( - 'pretty_version' => '6.0.3', - 'version' => '6.0.3.0', + 'pretty_version' => '6.0.5', + 'version' => '6.0.5.0', 'aliases' => array ( ), - 'reference' => '6.0.3', + 'reference' => '6.0.5', ), 'drupal/workflows' => array ( @@ -2226,7 +2226,7 @@ class InstalledVersions 'aliases' => array ( ), - 'reference' => 'f3b95f173473924fd6fc1d10d92240bd50ba3072', + 'reference' => '5ba45909d4ed1776c96788bcdc27e492dac03d11', ), 'pantheon-systems/quicksilver-pushback' => array ( diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 143d5b3a7f..35b3dd558e 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -8177,18 +8177,18 @@ }, { "name": "drupal/webform", - "version": "6.0.3", - "version_normalized": "6.0.3.0", + "version": "6.0.5", + "version_normalized": "6.0.5.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/webform.git", - "reference": "6.0.3" + "reference": "6.0.5" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/webform-6.0.3.zip", - "reference": "6.0.3", - "shasum": "b75f79e26b5d58f4a9e047131f63c482bdaa5593" + "url": "https://ftp.drupal.org/files/projects/webform-6.0.5.zip", + "reference": "6.0.5", + "shasum": "a925d604e3b4a29f5a688a8e84fdb3a93490f641" }, "require": { "drupal/core": "^8.8 || ^9" @@ -8236,8 +8236,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "6.0.3", - "datestamp": "1620250254", + "version": "6.0.5", + "datestamp": "1629909787", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" @@ -8245,7 +8245,7 @@ }, "drush": { "services": { - "drush.services.yml": "^9" + "drush.services.yml": "^9 || ^10" } } }, diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 7028e1bb97..653ddc6436 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -6,7 +6,7 @@ 'aliases' => array ( ), - 'reference' => 'f3b95f173473924fd6fc1d10d92240bd50ba3072', + 'reference' => '5ba45909d4ed1776c96788bcdc27e492dac03d11', 'name' => 'osu-asc-webservices/d8-upstream', ), 'versions' => @@ -1933,12 +1933,12 @@ ), 'drupal/webform' => array ( - 'pretty_version' => '6.0.3', - 'version' => '6.0.3.0', + 'pretty_version' => '6.0.5', + 'version' => '6.0.5.0', 'aliases' => array ( ), - 'reference' => '6.0.3', + 'reference' => '6.0.5', ), 'drupal/workflows' => array ( @@ -2202,7 +2202,7 @@ 'aliases' => array ( ), - 'reference' => 'f3b95f173473924fd6fc1d10d92240bd50ba3072', + 'reference' => '5ba45909d4ed1776c96788bcdc27e492dac03d11', ), 'pantheon-systems/quicksilver-pushback' => array ( diff --git a/web/modules/webform/composer.json b/web/modules/webform/composer.json index 19ab81753a..1c25939c05 100644 --- a/web/modules/webform/composer.json +++ b/web/modules/webform/composer.json @@ -31,7 +31,7 @@ "extra": { "drush": { "services": { - "drush.services.yml": "^9" + "drush.services.yml": "^9 || ^10" } } }, diff --git a/web/modules/webform/composer.libraries.json b/web/modules/webform/composer.libraries.json index 16c9dec4a1..efbccb97aa 100644 --- a/web/modules/webform/composer.libraries.json +++ b/web/modules/webform/composer.libraries.json @@ -101,13 +101,13 @@ "type": "package", "package": { "name": "ckeditor/autogrow", - "version": "4.14.1", + "version": "4.16.2", "type": "drupal-library", "extra": { "installer-name": "ckeditor.autogrow" }, "dist": { - "url": "https://download.ckeditor.com/autogrow/releases/autogrow_4.14.1.zip", + "url": "https://download.ckeditor.com/autogrow/releases/autogrow_4.16.2.zip", "type": "zip" }, "require": { @@ -137,13 +137,13 @@ "type": "package", "package": { "name": "ckeditor/fakeobjects", - "version": "4.14.1", + "version": "4.16.2", "type": "drupal-library", "extra": { "installer-name": "ckeditor.fakeobjects" }, "dist": { - "url": "https://download.ckeditor.com/fakeobjects/releases/fakeobjects_4.14.1.zip", + "url": "https://download.ckeditor.com/fakeobjects/releases/fakeobjects_4.16.2.zip", "type": "zip" }, "require": { @@ -155,13 +155,13 @@ "type": "package", "package": { "name": "ckeditor/image", - "version": "4.14.1", + "version": "4.16.2", "type": "drupal-library", "extra": { "installer-name": "ckeditor.image" }, "dist": { - "url": "https://download.ckeditor.com/image/releases/image_4.14.1.zip", + "url": "https://download.ckeditor.com/image/releases/image_4.16.2.zip", "type": "zip" }, "require": { @@ -173,13 +173,13 @@ "type": "package", "package": { "name": "ckeditor/link", - "version": "4.14.1", + "version": "4.16.2", "type": "drupal-library", "extra": { "installer-name": "ckeditor.link" }, "dist": { - "url": "https://download.ckeditor.com/link/releases/link_4.14.1.zip", + "url": "https://download.ckeditor.com/link/releases/link_4.16.2.zip", "type": "zip" }, "require": { @@ -191,13 +191,13 @@ "type": "package", "package": { "name": "codemirror/codemirror", - "version": "5.53.2", + "version": "5.61.1", "type": "drupal-library", "extra": { "installer-name": "codemirror" }, "dist": { - "url": "https://github.com/components/codemirror/archive/5.53.2.zip", + "url": "https://github.com/components/codemirror/archive/5.61.1.zip", "type": "zip" }, "require": { @@ -299,13 +299,13 @@ "type": "package", "package": { "name": "jquery/inputmask", - "version": "5.0.5", + "version": "5.0.6", "type": "drupal-library", "extra": { "installer-name": "jquery.inputmask" }, "dist": { - "url": "https://github.com/RobinHerbots/jquery.inputmask/archive/5.0.5.zip", + "url": "https://github.com/RobinHerbots/jquery.inputmask/archive/5.0.6.zip", "type": "zip" }, "require": { @@ -389,13 +389,13 @@ "type": "package", "package": { "name": "jquery/timepicker", - "version": "1.13.14", + "version": "1.13.18", "type": "drupal-library", "extra": { "installer-name": "jquery.timepicker" }, "dist": { - "url": "https://github.com/jonthornton/jquery-timepicker/archive/1.13.14.zip", + "url": "https://github.com/jonthornton/jquery-timepicker/archive/1.13.18.zip", "type": "zip" }, "require": { diff --git a/web/modules/webform/docs/RELEASE-NOTES.md b/web/modules/webform/docs/RELEASE-NOTES.md index 096399d5d8..73f65724f4 100644 --- a/web/modules/webform/docs/RELEASE-NOTES.md +++ b/web/modules/webform/docs/RELEASE-NOTES.md @@ -28,6 +28,15 @@ Steps for creating a new release phpcs --standard=DrupalPractice --extensions=php,module,inc,install,test,profile,theme,js,css,info modules/sandbox/webform > ~/webform-php-best-practice.txt cat ~/webform-php-best-practice.txt + # Install PHP version compatibility (One-time) + cd /var/www/sites/d8_webform + composer require --dev phpcompatibility/php-compatibility + + # Check PHP version compatibility + cd /var/www/sites/d8_webform/web + phpcs --runtime-set testVersion 8.0 --standard=../vendor/phpcompatibility/php-compatibility/PHPCompatibility --extensions=php,module,inc,install,test,profile,theme modules/sandbox/webform > ~/webform-php-compatibility.txt + cat ~/webform-php-compatibility.txt + [JavaScript](https://www.drupal.org/node/2873849) # Install Eslint. (One-time) diff --git a/web/modules/webform/drush/webform.drush.inc b/web/modules/webform/drush/webform.drush.inc index b54b4a296a..57dba355a0 100644 --- a/web/modules/webform/drush/webform.drush.inc +++ b/web/modules/webform/drush/webform.drush.inc @@ -3,7 +3,7 @@ // @codingStandardsIgnoreFile /** - * This is file was generated using Drush. DO NOT EDIT. + * This is file was generated using Drush. DO NOT EDIT. * * @see drush webform-generate-commands * @see \Drupal\webform\Commands\DrushCliServiceBase::generate_commands_drush8 @@ -135,20 +135,6 @@ function webform_drush_command() { 'webform:libraries:status', ), ), - 'webform-libraries-make' => array( - 'description' => 'Generates libraries YAML to be included in a drush.make.yml files.', - 'core' => array( - '8+', - ), - 'bootstrap' => 1, - 'examples' => array( - 'webform-libraries-make' => 'Generates libraries YAML to be included in a drush.make.yml file.', - ), - 'aliases' => array( - 'wflm', - 'webform:libraries:make', - ), - ), 'webform-libraries-composer' => array( 'description' => "Generates the Webform module's composer.json with libraries as repositories.", 'core' => array( @@ -370,17 +356,6 @@ function drush_webform_libraries_status() { return call_user_func_array([\Drupal::service('webform.cli_service'), 'drush_webform_libraries_status'], func_get_args()); } -/******************************************************************************/ -// drush webform-libraries-make. DO NOT EDIT. -/******************************************************************************/ - -/** - * Implements drush_hook_COMMAND(). - */ -function drush_webform_libraries_make() { - return call_user_func_array([\Drupal::service('webform.cli_service'), 'drush_webform_libraries_make'], func_get_args()); -} - /******************************************************************************/ // drush webform-libraries-composer. DO NOT EDIT. /******************************************************************************/ diff --git a/web/modules/webform/includes/webform.editor.inc b/web/modules/webform/includes/webform.editor.inc index 4af0de3f32..0eca85961a 100644 --- a/web/modules/webform/includes/webform.editor.inc +++ b/web/modules/webform/includes/webform.editor.inc @@ -243,15 +243,24 @@ function _webform_parse_file_uuids($text) { return []; } - $dom = Html::load($text); - $xpath = new \DOMXPath($dom); - $uuids = []; - // Find all <img> and <a> tags which reference uploaded files. - $nodes = $xpath->query('//*[@data-entity-type="file" and @data-entity-uuid]'); - foreach ($nodes as $node) { - $uuids[] = $node->getAttribute('data-entity-uuid'); + // Look through all images and hyperlinks for files. + if (preg_match_all('/<[^>]+data-entity-type[^>]+>/', $text, $matches)) { + foreach ($matches[0] as $match) { + // Cleanup quotes escaped via YAML. + // Please note, calling stripslashes() twice because elements are + // double escaped. + $match = stripslashes(stripslashes($match)); + + // Look for a file and record UUID when found. + $dom = Html::load($match); + $xpath = new \DOMXPath($dom); + $nodes = $xpath->query('//*[@data-entity-type="file" and @data-entity-uuid]'); + if (count($nodes) && $nodes->item(0)) { + $uuids[] = $nodes->item(0)->getAttribute('data-entity-uuid'); + } + } } // Use array_unique() to collect one uuid per uploaded file. diff --git a/web/modules/webform/includes/webform.install.update.inc b/web/modules/webform/includes/webform.install.update.inc index 216ebf1672..a9b831dcd9 100644 --- a/web/modules/webform/includes/webform.install.update.inc +++ b/web/modules/webform/includes/webform.install.update.inc @@ -1439,15 +1439,15 @@ function webform_update_8071() { foreach ($handlers as $handler) { if ($handler instanceof RemotePostWebformHandler) { $has_remote_post = TRUE; - $configuration = $handler->getConfiguration(); - foreach ($configuration['settings'] as $key => $value) { + $configuration = $handler->getSettings(); + foreach ($configuration as $key => $value) { if (isset($settings_mapping[$key])) { - $configuration['settings'][$settings_mapping[$key]] = $value; - unset($configuration['settings'][$key]); + $configuration[$settings_mapping[$key]] = $value; + unset($configuration[$key]); } } - $configuration['settings'] += $handler->defaultConfiguration(); - $handler->setConfiguration($configuration); + $configuration += $handler->defaultConfiguration(); + $handler->getSettings($configuration); } } if ($has_remote_post) { @@ -1918,12 +1918,10 @@ function webform_update_8100() { foreach ($handlers as $handler) { if ($handler instanceof RemotePostWebformHandler) { $has_handler = TRUE; - $configuration = $handler->getConfiguration(); - $settings = $configuration['settings']; + $settings = $handler->getSettings(); if ($settings['excluded_data']) { $settings['excluded_data']['locked'] = 'locked'; - $configuration['settings'] = $settings; - $handler->setConfiguration($configuration); + $handler->setSettings($settings); } } } diff --git a/web/modules/webform/includes/webform.theme.inc b/web/modules/webform/includes/webform.theme.inc index 20081bf2d7..410ae7a917 100644 --- a/web/modules/webform/includes/webform.theme.inc +++ b/web/modules/webform/includes/webform.theme.inc @@ -441,6 +441,10 @@ function webform_preprocess_fieldset(&$variables) { $element = &$variables['element']; + // @todo [Drupal 9.3] Remove the below code + // Fieldset elements now respect the #description_display option + // @see https://www.drupal.org/node/3143489 + // // If the description is displayed 'before' we need to move it to the // fieldset's prefix. // @see fieldset.html.twig diff --git a/web/modules/webform/includes/webform.theme.template.inc b/web/modules/webform/includes/webform.theme.template.inc index afee030df9..4c38f82517 100644 --- a/web/modules/webform/includes/webform.theme.template.inc +++ b/web/modules/webform/includes/webform.theme.template.inc @@ -376,6 +376,11 @@ function template_preprocess_webform_submission_information(array &$variables) { else { $base_route_name = 'webform_submission.delete_form'; } + // Append token to delete URL. + $token = \Drupal::request()->query->get('token'); + if ($webform->getSetting('token_delete') && $token === $webform_submission->getToken()) { + $route_options['query']['token'] = $token; + } $url = $request_handler->getUrl($webform_submission, $source_entity, $base_route_name, $route_options); $variables['delete'] = [ '#type' => 'link', @@ -715,6 +720,7 @@ function template_preprocess_webform_section(array &$variables) { $variables['title_display'] = isset($element['#title_display']) ? $element['#title_display'] : NULL; $variables['title_tag'] = isset($element['#title_tag']) ? $element['#title_tag'] : 'h2'; $variables['title_attributes'] = isset($element['#title_attributes']) ? $element['#title_attributes'] : []; + $variables['description_display'] = isset($element['#description_display']) ? $element['#description_display'] : 'before'; $variables['children'] = $element['#children']; $variables['required'] = !empty($element['#required']) ? $element['#required'] : NULL; diff --git a/web/modules/webform/js/webform.element.inputmask.js b/web/modules/webform/js/webform.element.inputmask.js index 193214405c..2aa6b55f5e 100644 --- a/web/modules/webform/js/webform.element.inputmask.js +++ b/web/modules/webform/js/webform.element.inputmask.js @@ -20,6 +20,26 @@ digits: 2, digitsOptional: false, clearMaskOnLostFocus: false + }, + currency_negative: { + prefix: '$ ', + groupSeparator: ',', + alias: 'numeric', + placeholder: '0', + autoGroup: true, + digits: 2, + digitsOptional: false, + clearMaskOnLostFocus: false + }, + currency_positive_negative: { + prefix: '$ ', + groupSeparator: ',', + alias: 'numeric', + placeholder: '0', + autoGroup: true, + digits: 2, + digitsOptional: false, + clearMaskOnLostFocus: false } }); } diff --git a/web/modules/webform/js/webform.element.telephone.js b/web/modules/webform/js/webform.element.telephone.js index cf23d9ef5c..9812b45588 100644 --- a/web/modules/webform/js/webform.element.telephone.js +++ b/web/modules/webform/js/webform.element.telephone.js @@ -58,7 +58,14 @@ if ($.trim($telephone.val())) { if (!$telephone.intlTelInput('isValidNumber')) { $telephone.addClass('error'); - var message = Drupal.t('The phone number is not valid. (e.g. @example)', {'@example': $telephone.attr('placeholder')}); + var placeholder = $telephone.attr('placeholder'); + var message; + if (placeholder) { + message = Drupal.t('The phone number is not valid. (e.g. @example)', {'@example': placeholder}); + } + else { + message = Drupal.t('The phone number is not valid.'); + } $error.html(message).show(); return false; } @@ -79,6 +86,13 @@ if (!validate()) { $telephone.focus(); event.preventDefault(); + + // On validation error make sure to clear submit the once behavior. + // @see Drupal.behaviors.webformSubmitOnce + // @see webform.form.submit_once.js + if (Drupal.behaviors.webformSubmitOnce) { + Drupal.behaviors.webformSubmitOnce.clear(); + } } }); }); diff --git a/web/modules/webform/js/webform.form.tabs.js b/web/modules/webform/js/webform.form.tabs.js index 6e709f0b65..75be86feff 100644 --- a/web/modules/webform/js/webform.form.tabs.js +++ b/web/modules/webform/js/webform.form.tabs.js @@ -32,7 +32,7 @@ // Set active tab and clear the location hash once it is set. var tabIndex = 0; if (location.hash) { - tabIndex = $('a[href="' + location.hash + '"]').data('tab-index'); + tabIndex = $('a[href="' + Drupal.checkPlain(location.hash) + '"]').data('tab-index'); if (typeof tabIndex !== 'undefined') { location.hash = ''; } diff --git a/web/modules/webform/js/webform.states.js b/web/modules/webform/js/webform.states.js index bf9e91fbd6..314f7f793c 100644 --- a/web/modules/webform/js/webform.states.js +++ b/web/modules/webform/js/webform.states.js @@ -38,7 +38,7 @@ * TRUE if element is within the webform. */ $.fn.isWebform = function () { - return $(this).closest('form[id^="webform"], form[data-is-webform]').length ? true : false; + return $(this).closest('form.webform-submission-form, form[id^="webform"], form[data-is-webform]').length ? true : false; }; /** @@ -157,9 +157,10 @@ // @see Issue #2860529: Conditional required File upload field don't work. toggleRequired($target.find('input[type="file"]'), e.value); - // Fix #required for radios. + // Fix #required for radios and likert. // @see Issue #2856795: If radio buttons are required but not filled form is nevertheless submitted. - if ($target.is('.js-form-type-radios, .js-form-type-webform-radios-other, .js-webform-type-radios, .js-webform-type-webform-radios-other')) { + if ($target.is('.js-form-type-radios, .js-form-type-webform-radios-other, .js-webform-type-radios, .js-webform-type-webform-radios-other, .js-webform-type-webform-entity-radios, .webform-likert-table')) { + $target.toggleClass('required', e.value); toggleRequired($target.find('input[type="radio"]'), e.value); } @@ -167,6 +168,7 @@ // @see Issue #2938414: Checkboxes don't support #states required. // @see checkboxRequiredhandler if ($target.is('.js-form-type-checkboxes, .js-form-type-webform-checkboxes-other, .js-webform-type-checkboxes, .js-webform-type-webform-checkboxes-other')) { + $target.toggleClass('required', e.value); var $checkboxes = $target.find('input[type="checkbox"]'); if (e.value) { // Add event handler. @@ -182,6 +184,33 @@ } } + // Fix #required for tableselect. + // @see Issue #3212581: Table select does not trigger client side validation + if ($target.is('.js-webform-tableselect')) { + $target.toggleClass('required', e.value); + var isMultiple = $target.is('[multiple]'); + if (isMultiple) { + // Checkboxes. + var $tbody = $target.find('tbody'); + var $checkboxes = $tbody.find('input[type="checkbox"]'); + copyRequireMessage($target, $checkboxes); + if (e.value) { + $checkboxes.on('click change', statesCheckboxesRequiredEventHandler); + checkboxesRequired($tbody); + } + else { + $checkboxes.off('click change ', statesCheckboxesRequiredEventHandler); + toggleRequired($tbody, false); + } + } + else { + // Radios. + var $radios = $target.find('input[type="radio"]'); + copyRequireMessage($target, $radios); + toggleRequired($radios, e.value); + } + } + // Fix required label for elements without the for attribute. // @see Issue #3145300: Conditional Visible Select Other not working. if ($target.is('.js-form-type-webform-select-other, .js-webform-type-webform-select-other')) { @@ -314,7 +343,7 @@ */ Drupal.behaviors.webformRadiosRequired = { attach: function (context) { - $('.js-form-type-radios, .js-form-type-webform-radios-other, .js-webform-type-radios, .js-webform-type-webform-radios-other', context) + $('.js-form-type-radios, .js-form-type-webform-radios-other, .js-webform-type-radios, .js-webform-type-webform-radios-other, .js-webform-type-webform-entity-radios, .js-webform-type-webform-scale', context) .once('webform-radios-required') .each(function () { var $element = $(this); @@ -323,6 +352,38 @@ } }; + /** + * Adds HTML5 validation to required table select. + * + * @type {Drupal~behavior} + * + * @see https://www.drupal.org/project/webform/issues/2856795 + */ + Drupal.behaviors.webformTableSelectRequired = { + attach: function (context) { + $('.js-webform-tableselect.required', context) + .once('webform-tableselect-required') + .each(function () { + var $element = $(this); + var $tbody = $element.find('tbody'); + var isMultiple = $element.is('[multiple]'); + + if (isMultiple) { + // Check all checkbox triggers checkbox 'change' event on + // select and deselect all. + // @see Drupal.tableSelect + $tbody.find('input[type="checkbox"]').on('click change', function () { + checkboxesRequired($tbody); + }); + } + + setTimeout(function () { + isMultiple ? checkboxesRequired($tbody) : radiosRequired($element); + }); + }); + } + }; + /** * Add HTML5 multiple checkboxes required validation. * @@ -551,11 +612,22 @@ * Is input required. */ function toggleRequired($input, required) { + var isCheckboxOrRadio = ($input.attr('type') === 'radio' || $input.attr('type') === 'checkbox'); if (required) { - $input.attr({'required': 'required', 'aria-required': 'true'}); + if (isCheckboxOrRadio) { + $input.attr({'required': 'required'}); + } + else { + $input.attr({'required': 'required', 'aria-required': 'true'}); + } } else { - $input.removeAttr('required aria-required'); + if (isCheckboxOrRadio) { + $input.removeAttr('required'); + } + else { + $input.removeAttr('required aria-required'); + } } } diff --git a/web/modules/webform/modules/webform_access/webform_access.info.yml b/web/modules/webform/modules/webform_access/webform_access.info.yml index cf7b206548..db78ff1c24 100644 --- a/web/modules/webform/modules/webform_access/webform_access.info.yml +++ b/web/modules/webform/modules/webform_access/webform_access.info.yml @@ -7,7 +7,7 @@ dependencies: - 'webform:webform' - 'webform:webform_node' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/webform_attachment_test.info.yml b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/webform_attachment_test.info.yml index c0676fcc0a..8df158a8d4 100644 --- a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/webform_attachment_test.info.yml +++ b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/webform_attachment_test.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform_attachment' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_attachment/webform_attachment.info.yml b/web/modules/webform/modules/webform_attachment/webform_attachment.info.yml index 586a91b838..eda9e2c2d1 100644 --- a/web/modules/webform/modules/webform_attachment/webform_attachment.info.yml +++ b/web/modules/webform/modules/webform_attachment/webform_attachment.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_bootstrap/tests/modules/webform_bootstrap_test_module/webform_bootstrap_test_module.info.yml b/web/modules/webform/modules/webform_bootstrap/tests/modules/webform_bootstrap_test_module/webform_bootstrap_test_module.info.yml index 873a996642..3c72ea1215 100644 --- a/web/modules/webform/modules/webform_bootstrap/tests/modules/webform_bootstrap_test_module/webform_bootstrap_test_module.info.yml +++ b/web/modules/webform/modules/webform_bootstrap/tests/modules/webform_bootstrap_test_module/webform_bootstrap_test_module.info.yml @@ -9,7 +9,7 @@ dependencies: # Issue #3110478: [Webform 8.x-6.x] Track the D9 readiness state of the Webform module's (optional) dependencies. # - 'styleguide:styleguide' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_bootstrap/tests/themes/webform_bootstrap_test_theme/webform_bootstrap_test_theme.info.yml b/web/modules/webform/modules/webform_bootstrap/tests/themes/webform_bootstrap_test_theme/webform_bootstrap_test_theme.info.yml index 29464e3070..5caf152c3f 100644 --- a/web/modules/webform/modules/webform_bootstrap/tests/themes/webform_bootstrap_test_theme/webform_bootstrap_test_theme.info.yml +++ b/web/modules/webform/modules/webform_bootstrap/tests/themes/webform_bootstrap_test_theme/webform_bootstrap_test_theme.info.yml @@ -22,7 +22,7 @@ regions: libraries: - 'webform_bootstrap_test_theme/global-styling' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_bootstrap/webform_bootstrap.info.yml b/web/modules/webform/modules/webform_bootstrap/webform_bootstrap.info.yml index fcf3df5892..5b99bb1d8e 100644 --- a/web/modules/webform/modules/webform_bootstrap/webform_bootstrap.info.yml +++ b/web/modules/webform/modules/webform_bootstrap/webform_bootstrap.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_cards/src/Plugin/WebformElement/WebformCard.php b/web/modules/webform/modules/webform_cards/src/Plugin/WebformElement/WebformCard.php index 5d7b0b8441..74023131c6 100644 --- a/web/modules/webform/modules/webform_cards/src/Plugin/WebformElement/WebformCard.php +++ b/web/modules/webform/modules/webform_cards/src/Plugin/WebformElement/WebformCard.php @@ -96,6 +96,13 @@ protected function formatHtmlItem(array $element, WebformSubmissionInterface $we return $build; } + /** + * {@inheritdoc} + */ + public function preview() { + return []; + } + /** * {@inheritdoc} */ diff --git a/web/modules/webform/modules/webform_cards/templates/webform-card.html.twig b/web/modules/webform/modules/webform_cards/templates/webform-card.html.twig index f03588d9de..5d563dfd53 100644 --- a/web/modules/webform/modules/webform_cards/templates/webform-card.html.twig +++ b/web/modules/webform/modules/webform_cards/templates/webform-card.html.twig @@ -16,7 +16,7 @@ * * Copied from: fieldset.html.twig * - * @see template_preprocess_webform_section() + * @see template_preprocess_webform_card() * * @ingroup themeable */ diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/webform_cards_test.info.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/webform_cards_test.info.yml index 1b1655672c..c04500b178 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/webform_cards_test.info.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/webform_cards_test.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform_cards' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_cards/webform_cards.info.yml b/web/modules/webform/modules/webform_cards/webform_cards.info.yml index ecb06d9957..3812074fdc 100644 --- a/web/modules/webform/modules/webform_cards/webform_cards.info.yml +++ b/web/modules/webform/modules/webform_cards/webform_cards.info.yml @@ -8,7 +8,7 @@ dependencies: - 'webform:webform_clientside_validation' - 'drupal:inline_form_errors' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_cards/webform_cards.module b/web/modules/webform/modules/webform_cards/webform_cards.module index f78d696474..d6fe0e50b4 100644 --- a/web/modules/webform/modules/webform_cards/webform_cards.module +++ b/web/modules/webform/modules/webform_cards/webform_cards.module @@ -45,7 +45,7 @@ function webform_cards_entity_base_field_info(EntityTypeInterface $entity_type) */ function webform_cards_menu_local_actions_alter(&$local_actions) { if (!\Drupal::moduleHandler()->moduleExists('webform_ui')) { - $local_actions['entity.webform_ui.element.card']; + unset($local_actions['entity.webform_ui.element.card']); } } @@ -389,7 +389,7 @@ function webform_cards_form_webform_settings_form_alter(array &$form, FormStateI } /** - * Implements hook_form_FORM_ID_alter() for webform settings:form. + * Implements hook_form_FORM_ID_alter() for webform settings form. * * @see \Drupal\webform\EntitySettings\WebformEntitySettingsGeneralForm * @see /admin/structure/webform/manage/{webform}/settings/form @@ -459,6 +459,37 @@ function webform_cards_form_webform_settings_form_form_alter(array &$form, FormS ]); } +/** + * Implements hook_form_FORM_ID_alter() for webform settings submissions. + * + * @see \Drupal\webform\EntitySettings\WebformEntitySettingsSubmissionsForm + * @see /admin/structure/webform/manage/{webform}/settings/form + */ +function webform_cards_form_webform_settings_submissions_form_alter(array &$form, FormStateInterface $form_state) { + /** @var \Drupal\webform\EntitySettings\WebformEntitySettingsSubmissionsForm $form_object */ + $form_object = $form_state->getFormObject(); + $webform = $form_object->getEntity(); + + /** @var \Drupal\webform_cards\WebformCardsManagerInterface $webform_cards_manager */ + $webform_cards_manager = \Drupal::service('webform_cards.manager'); + + // Check if the webform has cards. + if ($webform_cards_manager->hasCards($webform)) { + $form['draft_settings']['draft_container']['draft_auto_save']['#default_value'] = 0; + $form['draft_settings']['draft_container']['draft_auto_save']['#disabled'] = TRUE; + $form['draft_settings']['draft_container']['draft_multiple']['#weight'] = -1; + $form['draft_settings']['draft_container']['draft_auto_save_message'] = [ + '#type' => 'webform_message', + '#message_message' => t('The automatic saving of drafts is not supported by cards. Please try using the <a href=":href">Webform autosave module</a>.', [':href' => 'https://www.drupal.org/project/webformautosave']), + '#message_type' => 'info', + '#message_close' => TRUE, + '#message_storage' => WebformMessage::STORAGE_SESSION, + '#message_id' => 'webform_card_draft_auto_save', + '#weight' => 0, + ]; + } +} + /** * Alter webform wizard configuration and settings form elements. * diff --git a/web/modules/webform/modules/webform_clientside_validation/js/webform_clientside_validation.ife.js b/web/modules/webform/modules/webform_clientside_validation/js/webform_clientside_validation.ife.js index 897668ccdb..f0f8a07b16 100644 --- a/web/modules/webform/modules/webform_clientside_validation/js/webform_clientside_validation.ife.js +++ b/web/modules/webform/modules/webform_clientside_validation/js/webform_clientside_validation.ife.js @@ -50,19 +50,51 @@ // Add '.form-item--error-message' class to all errors. $(this.currentForm).find('strong.error').addClass('form-item--error-message'); - // Move all radios, checkbox, and datelist errors to parent container. - $(this.currentForm).find('.form-checkboxes, .form-radios, .form-type-datelist .container-inline, .form-type-tel, .webform-type-webform-height .form--inline').each(function () { + // Move all radios, checkboxes, and datelist errors to appear after + // the parent container. + $(this.currentForm).find('.form-checkboxes, .form-radios, .form-type-datelist .container-inline, .form-type-tel, .webform-type-webform-height .form--inline, .js-webform-tableselect').each(function () { var $container = $(this); var $errorMessages = $container.find('strong.error.form-item--error-message'); $errorMessages.insertAfter($container); }); + // Move checkbox errors to appear as the last item in the + // parent container. + $(this.currentForm).find('.form-type-checkbox').each(function () { + var $container = $(this); + var $errorMessages = $container.find('strong.error.form-item--error-message'); + $container.append($errorMessages); + }); + + // Move all likert errors to question <label>. + $(this.currentForm).find('.webform-likert-table tbody tr').each(function () { + var $row = $(this); + var $errorMessages = $row.find('strong.error.form-item--error-message'); + $errorMessages.appendTo($row.find('td:first-child')); + }); + // Move error after field suffix. $(this.currentForm).find('strong.error.form-item--error-message ~ .field-suffix').each(function () { var $fieldSuffix = $(this); var $errorMessages = $fieldSuffix.prev('strong.error.form-item--error-message'); $errorMessages.insertAfter($fieldSuffix); }); + + // Add custom clear error handling to checkboxes to remove the + // error message, when any checkbox is checked. + $(this.currentForm).find('.form-checkboxes').once('webform-clientside-validation-form-checkboxes').each(function () { + var $container = $(this); + $container.find('input:checkbox').click( function () { + var state = $container.find('input:checkbox:checked').length ? 'hide' : 'show'; + var $message = $container.next('strong.error.form-item--error-message'); + $message[state](); + + // Ensure the message is set. This code addresses an expected bug + // where the error message is emptied when it is toggled. + var message = $container.find('[data-msg-required]').data('msg-required'); + $message.html(message); + }); + }); }; }); diff --git a/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/config/install/webform.webform.test_clientside_validation.yml b/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/config/install/webform.webform.test_clientside_validation.yml index 7fef9e3ad2..cfa4ca3eaa 100644 --- a/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/config/install/webform.webform.test_clientside_validation.yml +++ b/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/config/install/webform.webform.test_clientside_validation.yml @@ -50,6 +50,18 @@ elements: | two: Two three: Three '#required': true + select_other: + '#type': webform_select_other + '#title': select_other + '#options': + 1: first_option + 2: second_option + '#other__required_error': 'Custom select_other required message.' + '#required': true + checkbox: + '#type': checkbox + '#title': checkbox + '#required': true checkboxes: '#type': checkboxes '#title': checkboxes @@ -66,6 +78,14 @@ elements: | two: Two three: Three '#required': true + radios_other: + '#type': webform_radios_other + '#title': radios_other + '#options': + 1: first_option + 2: second_option + '#other__required_error': 'Custom radios_other required message.' + '#required': true checkboxes_two_columns: '#type': checkboxes '#title': checkboxes_two_columns @@ -76,6 +96,14 @@ elements: | three: Three four: Four '#required': true + checkboxes_other: + '#type': webform_checkboxes_other + '#title': checkboxes_other + '#options': + 1: option_1 + 2: option_2 + '#other__required_error': 'Custom checkboxes_other required message.' + '#required': true date_elements: '#type': details '#title': 'Date elements' @@ -92,6 +120,31 @@ elements: | '#type': webform_time '#title': time '#required': true + tableselect_elements: + '#type': details + '#title': 'Table select elements' + '#open': true + tableselect_checkboxes: + '#type': tableselect + '#title': tableselect_checkboxes + '#required': true + '#options': + one: One + two: Two + three: Three + four: Four + five: Five + tableselect_radios: + '#type': tableselect + '#title': tableselect_radios + '#multiple': false + '#required': true + '#options': + one: One + two: Two + three: Three + four: Four + five: Five advanced_elements: '#type': details '#title': 'Advanced elements' @@ -182,7 +235,7 @@ elements: | '#type': webform_signature '#title': signature '#required': true - + css: '' javascript: '' settings: diff --git a/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/config/install/webform.webform.test_clientside_validation_state.yml b/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/config/install/webform.webform.test_clientside_validation_state.yml new file mode 100644 index 0000000000..53f20cea37 --- /dev/null +++ b/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/config/install/webform.webform.test_clientside_validation_state.yml @@ -0,0 +1,401 @@ +uuid: null +langcode: en +status: open +dependencies: + enforced: + module: + - webform_clientside_validation_test +open: null +close: null +weight: 0 +uid: null +template: false +archive: false +id: test_clientside_validation_state + +title: 'Test: Clientside Validation #states' +description: 'Test webform clientside validation with conditional logic (#states).' +category: 'Test: Clientside Validation' +elements: | + trigger: + '#type': checkbox + '#title': trigger + container: + '#type': container + '#title': container + '#states': + visible: + ':input[name="trigger"]': + checked: true + basic_elements: + '#type': details + '#title': 'Basic elements' + '#open': true + textfield: + '#type': textfield + '#title': textfield + '#required': true + textfield_prefix_suffix: + '#type': textfield + '#title': textfield_prefix_suffix + '#field_prefix': '{field_prefix}' + '#field_suffix': '{field_suffix}' + '#required': true + pattern: + '#type': textfield + '#title': 'pattern (^[a-z]+$)' + '#pattern': '^[a-z]+$' + input_mask: + '#type': textfield + '#title': 'input_mask - (999) 999-9999' + '#input_mask': '(999) 999-9999' + textarea: + '#type': textarea + '#title': textarea + '#required': true + select: + '#type': select + '#title': select + '#options': + one: One + two: Two + three: Three + '#required': true + checkboxes: + '#type': checkboxes + '#title': checkboxes + '#options': + one: One + two: Two + three: Three + '#required': true + radios: + '#type': radios + '#title': radios + '#options': + one: One + two: Two + three: Three + '#required': true + checkboxes_two_columns: + '#type': checkboxes + '#title': checkboxes_two_columns + '#options_display': two_columns + '#options': + one: One + two: Two + three: Three + four: Four + '#required': true + date_elements: + '#type': details + '#title': 'Date elements' + '#open': true + date: + '#type': date + '#title': date + '#required': true + datelist: + '#type': datelist + '#title': datelist + '#required': true + time: + '#type': webform_time + '#title': time + '#required': true + tableselect_elements: + '#type': details + '#title': 'Table select elements' + '#open': true + tableselect_checkboxes: + '#type': tableselect + '#title': tableselect_checkboxes + '#required': true + '#options': + one: One + two: Two + three: Three + four: Four + five: Five + tableselect_radios: + '#type': tableselect + '#title': tableselect_radios + '#multiple': false + '#required': true + '#options': + one: One + two: Two + three: Three + four: Four + five: Five + advanced_elements: + '#type': details + '#title': 'Advanced elements' + '#open': true + email: + '#type': email + '#title': email + '#required': true + email_multiple: + '#type': webform_email_multiple + '#title': email_multiple + '#required': true + email_confirm: + '#type': webform_email_confirm + '#title': email_confirm + '#required': true + tel: + '#type': tel + '#title': Telephone + '#required': true + tel_international: + '#type': tel + '#title': tel_international + '#international': true + '#telephone_validation_format': '0' + '#required': true + url: + '#type': url + '#title': url + '#required': true + number: + '#type': number + '#title': number + '#min': 0 + '#max': 10 + '#step': 1 + '#required': true + range: + '#type': range + '#title': range + '#min': 0 + '#max': 100 + '#step': 1 + '#output': right + '#output__field_prefix': $ + '#output__field_suffix': '.00' + '#required': true + color: + '#type': color + '#title': color + '#required': true + custom_elements: + '#type': details + '#title': 'Custom elements' + '#open': true + autocomplete: + '#type': webform_autocomplete + '#title': autocomplete + '#autocomplete_items': country_names + image_select: + '#type': webform_image_select + '#title': image_select + '#show_label': true + '#images': + kitten_1: + text: 'Cute Kitten 1' + src: 'http://placekitten.com/220/200' + kitten_2: + text: 'Cute Kitten 2' + src: 'http://placekitten.com/180/200' + kitten_3: + text: 'Cute Kitten 3' + src: 'http://placekitten.com/130/200' + '#required': true + rating: + '#type': webform_rating + '#title': rating + '#required': true + scale: + '#type': webform_scale + '#title': scale + '#min': 1 + '#max': 10 + '#min_text': '1 = disagree' + '#max_text': '10 = agree' + '#required': true + signature: + '#type': webform_signature + '#title': signature + '#required': true + +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: both + form_submit_once: false + form_exception_message: '' + form_open_message: '' + form_close_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_reset: false + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_unsaved: false + form_disable_back: false + form_submit_back: false + form_autofocus: false + form_details_toggle: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_log: 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: { } + submission_exception_message: '' + submission_locked_message: '' + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + 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: false + wizard_progress_states: false + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '' + wizard_track: '' + wizard_prev_button_label: '' + wizard_next_button_label: '' + wizard_toggle: false + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + 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_title: '' + confirmation_message: '' + confirmation_url: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + 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: { } +variants: { } diff --git a/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/webform_clientside_validation_test.info.yml b/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/webform_clientside_validation_test.info.yml index 59f0b8e48a..3e4f36d4de 100644 --- a/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/webform_clientside_validation_test.info.yml +++ b/web/modules/webform/modules/webform_clientside_validation/tests/modules/webform_clientside_validation_test/webform_clientside_validation_test.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform_clientside_validation' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_clientside_validation/tests/src/FunctionalJavascript/Validation/WebformClientSideValidationJavaScriptTest.php b/web/modules/webform/modules/webform_clientside_validation/tests/src/FunctionalJavascript/Validation/WebformClientSideValidationJavaScriptTest.php new file mode 100644 index 0000000000..d8109f7508 --- /dev/null +++ b/web/modules/webform/modules/webform_clientside_validation/tests/src/FunctionalJavascript/Validation/WebformClientSideValidationJavaScriptTest.php @@ -0,0 +1,89 @@ +<?php + +namespace Drupal\Tests\webform_clientside_validation\FunctionalJavascript\Validation; + +use Drupal\Tests\webform\FunctionalJavascript\WebformWebDriverTestBase; + +/** + * Tests for webform submission with client side validation. + * + * @group webform_javascript + */ +class WebformClientSideValidationJavaScriptTest extends WebformWebDriverTestBase { + + /** + * Modules to enable. + * + * @var array + */ + public static $modules = ['webform', 'file', 'webform_clientside_validation_test', 'webform_clientside_validation']; + + /** + * Webforms to load. + * + * @var array + */ + protected static $testWebforms = [ + 'test_clientside_validation', + 'test_clientside_validation_state', + ]; + + /** + * Tests custom states. + */ + public function testClientSideValidation() { + $page = $this->getSession()->getPage(); + $assert_session = $this->assertSession(); + + /**************************************************************************/ + // Table select. + /**************************************************************************/ + + // Check that all radios and checkbox tables triggers client side validation. + $this->drupalGet('/webform/test_clientside_validation'); + $this->assertCssSelect('#edit-tableselect-checkboxes.required'); + $this->assertCssSelect('#edit-tableselect-checkboxes-one[required]'); + $this->assertCssSelect('#edit-tableselect-radios.required'); + $this->assertCssSelect('#edit-tableselect-radios-one[required]'); + $this->submitForm([], 'Submit'); + $this->assertRaw('This field is required.'); + $assert_session->waitForText('tableselect_radios field is required.'); + + // Check that all radios and checkbox tables triggers client side validation + // with conditional logic. + $this->drupalGet('/webform/test_clientside_validation_state'); + $this->assertNoCssSelect('#edit-tableselect-checkboxes.required'); + $this->assertNoCssSelect('#edit-tableselect-checkboxes-one[required]'); + $this->assertNoCssSelect('#edit-tableselect-radios.required'); + $this->assertNoCssSelect('#edit-tableselect-radios-one[required]'); + + $this->click('#edit-trigger'); + $this->assertCssSelect('#edit-tableselect-checkboxes.required'); + $this->assertCssSelect('#edit-tableselect-checkboxes-one[required]'); + $this->assertCssSelect('#edit-tableselect-radios.required'); + $this->assertCssSelect('#edit-tableselect-radios-one[required]'); + + /**************************************************************************/ + // Other elements. + /**************************************************************************/ + + // Check that custom 'other' error messages work. + $this->drupalGet('/webform/test_clientside_validation'); + $page->findById('edit-select-other-select')->selectOption('_other_'); + $page->findById('edit-radios-other-radios-other-')->selectOption('_other_'); + $page->findById('edit-checkboxes-other-checkboxes-other-')->check(); + $this->submitForm([], 'Submit'); + $custom_errors = [ + 'select-other' => 'Custom select_other required message.', + 'checkboxes-other' => 'Custom checkboxes_other required message.', + 'radios-other' => 'Custom radios_other required message.', + ]; + foreach ($custom_errors as $element_type => $expected_error) { + $element = $page->find('css', "#edit-$element_type-other-error.error"); + static::assertNotNull($element); + static::assertEquals($expected_error, $element->getText()); + } + + } + +} diff --git a/web/modules/webform/modules/webform_clientside_validation/webform_clientside_validation.info.yml b/web/modules/webform/modules/webform_clientside_validation/webform_clientside_validation.info.yml index b96e449a2b..be8e8ee3eb 100644 --- a/web/modules/webform/modules/webform_clientside_validation/webform_clientside_validation.info.yml +++ b/web/modules/webform/modules/webform_clientside_validation/webform_clientside_validation.info.yml @@ -8,7 +8,7 @@ dependencies: - 'clientside_validation:clientside_validation' - 'clientside_validation:clientside_validation_jquery' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/webform_demo_application_evaluation.info.yml b/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/webform_demo_application_evaluation.info.yml index 339ddc3a57..88f25e2cdb 100644 --- a/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/webform_demo_application_evaluation.info.yml +++ b/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/webform_demo_application_evaluation.info.yml @@ -9,7 +9,7 @@ dependencies: - 'webform:webform' - 'webform:webform_node' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_demo/webform_demo_event_registration/webform_demo_event_registration.info.yml b/web/modules/webform/modules/webform_demo/webform_demo_event_registration/webform_demo_event_registration.info.yml index f08579ef62..109a4f1977 100644 --- a/web/modules/webform/modules/webform_demo/webform_demo_event_registration/webform_demo_event_registration.info.yml +++ b/web/modules/webform/modules/webform_demo/webform_demo_event_registration/webform_demo_event_registration.info.yml @@ -13,7 +13,7 @@ dependencies: - 'webform:webform_scheduled_email' - 'webform:webform_share' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_demo/webform_demo_group/webform_demo_group.info.yml b/web/modules/webform/modules/webform_demo/webform_demo_group/webform_demo_group.info.yml index fb62cd9f2f..7970790167 100644 --- a/web/modules/webform/modules/webform_demo/webform_demo_group/webform_demo_group.info.yml +++ b/web/modules/webform/modules/webform_demo/webform_demo_group/webform_demo_group.info.yml @@ -11,7 +11,7 @@ dependencies: - 'webform:webform_node' - 'webform:webform_group' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_demo/webform_demo_region_contact/webform_demo_region_contact.info.yml b/web/modules/webform/modules/webform_demo/webform_demo_region_contact/webform_demo_region_contact.info.yml index 463d7701fd..9e90b64e32 100644 --- a/web/modules/webform/modules/webform_demo/webform_demo_region_contact/webform_demo_region_contact.info.yml +++ b/web/modules/webform/modules/webform_demo/webform_demo_region_contact/webform_demo_region_contact.info.yml @@ -10,7 +10,7 @@ dependencies: - 'webform:webform_node' - 'webform:webform_access' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_devel/webform_devel.drush.inc b/web/modules/webform/modules/webform_devel/webform_devel.drush.inc index dbfb74a3e6..093b3fd140 100644 --- a/web/modules/webform/modules/webform_devel/webform_devel.drush.inc +++ b/web/modules/webform/modules/webform_devel/webform_devel.drush.inc @@ -5,6 +5,8 @@ * Webform module drush commands. */ +use Drush\Drush; + /** * Implements hook_drush_command(). */ @@ -54,9 +56,9 @@ function drush_webform_devel_reset() { return drush_user_abort(); } - drush_print(dt('Resetting message closed via State API…')); + Drush::output()->writeln(dt('Resetting message closed via State API…')); \Drupal::state()->delete('webform.element.message'); - drush_print(dt('Resetting message closed via User Data…')); + Drush::output()->writeln(dt('Resetting message closed via User Data…')); \Drupal::service('user.data')->delete('webform', NULL, 'webform.element.message'); } diff --git a/web/modules/webform/modules/webform_devel/webform_devel.info.yml b/web/modules/webform/modules/webform_devel/webform_devel.info.yml index f55da4776c..c4a21fdbd9 100644 --- a/web/modules/webform/modules/webform_devel/webform_devel.info.yml +++ b/web/modules/webform/modules/webform_devel/webform_devel.info.yml @@ -7,7 +7,7 @@ dependencies: - 'devel:devel' - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/webform_entity_print_test.info.yml b/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/webform_entity_print_test.info.yml index ddb1786181..239ac9cb03 100644 --- a/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/webform_entity_print_test.info.yml +++ b/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/webform_entity_print_test.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform_entity_print' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_entity_print/webform_entity_print.info.yml b/web/modules/webform/modules/webform_entity_print/webform_entity_print.info.yml index 727aaec12f..07aff781ba 100644 --- a/web/modules/webform/modules/webform_entity_print/webform_entity_print.info.yml +++ b/web/modules/webform/modules/webform_entity_print/webform_entity_print.info.yml @@ -7,7 +7,7 @@ dependencies: - 'webform:webform' - 'entity_print:entity_print' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_entity_print_attachment/tests/modules/webform_entity_print_attachment_test/webform_entity_print_attachment_test.info.yml b/web/modules/webform/modules/webform_entity_print_attachment/tests/modules/webform_entity_print_attachment_test/webform_entity_print_attachment_test.info.yml index 93abb29287..df904f475b 100644 --- a/web/modules/webform/modules/webform_entity_print_attachment/tests/modules/webform_entity_print_attachment_test/webform_entity_print_attachment_test.info.yml +++ b/web/modules/webform/modules/webform_entity_print_attachment/tests/modules/webform_entity_print_attachment_test/webform_entity_print_attachment_test.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform_entity_print_attachment' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_entity_print_attachment/webform_entity_print_attachment.info.yml b/web/modules/webform/modules/webform_entity_print_attachment/webform_entity_print_attachment.info.yml index 735bcd0731..7e1cfb17ff 100644 --- a/web/modules/webform/modules/webform_entity_print_attachment/webform_entity_print_attachment.info.yml +++ b/web/modules/webform/modules/webform_entity_print_attachment/webform_entity_print_attachment.info.yml @@ -7,7 +7,7 @@ dependencies: - 'webform:webform_attachment' - 'webform:webform_entity_print' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_example_composite/webform_example_composite.info.yml b/web/modules/webform/modules/webform_example_composite/webform_example_composite.info.yml index 10977c27c9..ef04dd023e 100644 --- a/web/modules/webform/modules/webform_example_composite/webform_example_composite.info.yml +++ b/web/modules/webform/modules/webform_example_composite/webform_example_composite.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_example_custom_form/webform_example_custom_form.info.yml b/web/modules/webform/modules/webform_example_custom_form/webform_example_custom_form.info.yml index 479a18f70f..b1da53e01d 100644 --- a/web/modules/webform/modules/webform_example_custom_form/webform_example_custom_form.info.yml +++ b/web/modules/webform/modules/webform_example_custom_form/webform_example_custom_form.info.yml @@ -8,7 +8,7 @@ dependencies: - 'webform:webform' - 'webform:webform_devel' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_example_element/webform_example_element.info.yml b/web/modules/webform/modules/webform_example_element/webform_example_element.info.yml index 423a44509f..ead20fcba8 100644 --- a/web/modules/webform/modules/webform_example_element/webform_example_element.info.yml +++ b/web/modules/webform/modules/webform_example_element/webform_example_element.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_example_element_properties/webform_example_element_properties.info.yml b/web/modules/webform/modules/webform_example_element_properties/webform_example_element_properties.info.yml index 76d53d3de4..7f10ac9e81 100644 --- a/web/modules/webform/modules/webform_example_element_properties/webform_example_element_properties.info.yml +++ b/web/modules/webform/modules/webform_example_element_properties/webform_example_element_properties.info.yml @@ -7,7 +7,7 @@ dependencies: - 'webform:webform' - 'webform:webform_ui' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_example_handler/webform_example_handler.info.yml b/web/modules/webform/modules/webform_example_handler/webform_example_handler.info.yml index 43a8f8a2c6..ef40fd33fa 100644 --- a/web/modules/webform/modules/webform_example_handler/webform_example_handler.info.yml +++ b/web/modules/webform/modules/webform_example_handler/webform_example_handler.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_example_remote_post/webform_example_remote_post.info.yml b/web/modules/webform/modules/webform_example_remote_post/webform_example_remote_post.info.yml index 5c29b95591..af336869c1 100644 --- a/web/modules/webform/modules/webform_example_remote_post/webform_example_remote_post.info.yml +++ b/web/modules/webform/modules/webform_example_remote_post/webform_example_remote_post.info.yml @@ -7,7 +7,7 @@ dependencies: - 'token:token' - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_example_variant/webform_example_variant.info.yml b/web/modules/webform/modules/webform_example_variant/webform_example_variant.info.yml index 15fc6fae38..4a3c3c69b1 100644 --- a/web/modules/webform/modules/webform_example_variant/webform_example_variant.info.yml +++ b/web/modules/webform/modules/webform_example_variant/webform_example_variant.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_examples/webform_examples.info.yml b/web/modules/webform/modules/webform_examples/webform_examples.info.yml index 145a7b8421..4283f43d66 100644 --- a/web/modules/webform/modules/webform_examples/webform_examples.info.yml +++ b/web/modules/webform/modules/webform_examples/webform_examples.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_examples_accessibility/webform_examples_accessibility.info.yml b/web/modules/webform/modules/webform_examples_accessibility/webform_examples_accessibility.info.yml index db1bc9e1d3..d715482fc7 100644 --- a/web/modules/webform/modules/webform_examples_accessibility/webform_examples_accessibility.info.yml +++ b/web/modules/webform/modules/webform_examples_accessibility/webform_examples_accessibility.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'drupal:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/webform_group_test.info.yml b/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/webform_group_test.info.yml index 980194a1f4..dbad33b324 100644 --- a/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/webform_group_test.info.yml +++ b/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/webform_group_test.info.yml @@ -7,7 +7,7 @@ dependencies: - 'webform:webform_group' - 'group:group_test_config' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_group/webform_group.info.yml b/web/modules/webform/modules/webform_group/webform_group.info.yml index aaf8787f2a..021fb28ba5 100644 --- a/web/modules/webform/modules/webform_group/webform_group.info.yml +++ b/web/modules/webform/modules/webform_group/webform_group.info.yml @@ -9,7 +9,7 @@ dependencies: - 'group:group' - 'group:gnode' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/webform_icheck_test.info.yml b/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/webform_icheck_test.info.yml index c97d65ddba..0a77fccafe 100644 --- a/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/webform_icheck_test.info.yml +++ b/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/webform_icheck_test.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform_icheck' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_icheck/webform_icheck.info.yml b/web/modules/webform/modules/webform_icheck/webform_icheck.info.yml index 6096986e6c..6363663a30 100644 --- a/web/modules/webform/modules/webform_icheck/webform_icheck.info.yml +++ b/web/modules/webform/modules/webform_icheck/webform_icheck.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/webform_image_select_test.info.yml b/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/webform_image_select_test.info.yml index 1cdd9dbeb2..f7f9e899f7 100644 --- a/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/webform_image_select_test.info.yml +++ b/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/webform_image_select_test.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform_image_select' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_image_select/webform_image_select.info.yml b/web/modules/webform/modules/webform_image_select/webform_image_select.info.yml index 08c03de8d6..ebaae2d4f0 100644 --- a/web/modules/webform/modules/webform_image_select/webform_image_select.info.yml +++ b/web/modules/webform/modules/webform_image_select/webform_image_select.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_jqueryui_buttons/tests/modules/webform_jqueryui_buttons_test/webform_jqueryui_buttons_test.info.yml b/web/modules/webform/modules/webform_jqueryui_buttons/tests/modules/webform_jqueryui_buttons_test/webform_jqueryui_buttons_test.info.yml index 9e3bb7605a..700da05044 100644 --- a/web/modules/webform/modules/webform_jqueryui_buttons/tests/modules/webform_jqueryui_buttons_test/webform_jqueryui_buttons_test.info.yml +++ b/web/modules/webform/modules/webform_jqueryui_buttons/tests/modules/webform_jqueryui_buttons_test/webform_jqueryui_buttons_test.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform_jqueryui_buttons' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_jqueryui_buttons/webform_jqueryui_buttons.info.yml b/web/modules/webform/modules/webform_jqueryui_buttons/webform_jqueryui_buttons.info.yml index e2c1198faa..27a6f9b7d4 100644 --- a/web/modules/webform/modules/webform_jqueryui_buttons/webform_jqueryui_buttons.info.yml +++ b/web/modules/webform/modules/webform_jqueryui_buttons/webform_jqueryui_buttons.info.yml @@ -7,7 +7,7 @@ dependencies: - 'webform:webform' - 'jquery_ui_checkboxradio:jquery_ui_checkboxradio' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_location_geocomplete/tests/modules/webform_location_geocomplete_test/webform_location_geocomplete_test.info.yml b/web/modules/webform/modules/webform_location_geocomplete/tests/modules/webform_location_geocomplete_test/webform_location_geocomplete_test.info.yml index e682e8480a..d0cf388843 100644 --- a/web/modules/webform/modules/webform_location_geocomplete/tests/modules/webform_location_geocomplete_test/webform_location_geocomplete_test.info.yml +++ b/web/modules/webform/modules/webform_location_geocomplete/tests/modules/webform_location_geocomplete_test/webform_location_geocomplete_test.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform_location_geocomplete' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_location_geocomplete/webform_location_geocomplete.info.yml b/web/modules/webform/modules/webform_location_geocomplete/webform_location_geocomplete.info.yml index b7296aced9..7208ef95f8 100644 --- a/web/modules/webform/modules/webform_location_geocomplete/webform_location_geocomplete.info.yml +++ b/web/modules/webform/modules/webform_location_geocomplete/webform_location_geocomplete.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/webform_node_test_multiple.info.yml b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/webform_node_test_multiple.info.yml index f181ab3ebc..01250577e2 100644 --- a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/webform_node_test_multiple.info.yml +++ b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/webform_node_test_multiple.info.yml @@ -13,7 +13,7 @@ dependencies: - 'webform:webform' - 'webform:webform_node' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_translation/webform_node_test_translation.info.yml b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_translation/webform_node_test_translation.info.yml index 9f34b2afb2..9927f1668e 100644 --- a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_translation/webform_node_test_translation.info.yml +++ b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_translation/webform_node_test_translation.info.yml @@ -9,7 +9,7 @@ dependencies: - 'webform:webform_test_translation' - 'drupal:content_translation' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_node/tests/src/Unit/WebformNodeUninstallValidatorTest.php b/web/modules/webform/modules/webform_node/tests/src/Unit/WebformNodeUninstallValidatorTest.php index 0483361db4..4a32b436c8 100644 --- a/web/modules/webform/modules/webform_node/tests/src/Unit/WebformNodeUninstallValidatorTest.php +++ b/web/modules/webform/modules/webform_node/tests/src/Unit/WebformNodeUninstallValidatorTest.php @@ -2,7 +2,6 @@ namespace Drupal\Tests\webform_node\Unit; -use Drupal\Tests\AssertHelperTrait; use Drupal\Tests\UnitTestCase; /** @@ -11,8 +10,6 @@ */ class WebformNodeUninstallValidatorTest extends UnitTestCase { - use AssertHelperTrait; - /** * A mock webform node uninstall validator. * @@ -42,7 +39,7 @@ public function testValidateNotWebformNode() { $module = 'not_webform_node'; $expected = []; $reasons = $this->webformNodeUninstallValidator->validate($module); - $this->assertSame($expected, $this->castSafeStrings($reasons)); + $this->assertEquals($expected, $reasons); } /** @@ -56,7 +53,7 @@ public function testValidateEntityQueryWithoutResults() { $module = 'webform_node'; $expected = []; $reasons = $this->webformNodeUninstallValidator->validate($module); - $this->assertSame($expected, $this->castSafeStrings($reasons)); + $this->assertEquals($expected, $reasons); } /** @@ -70,7 +67,7 @@ public function testValidateEntityQueryWithResults() { $module = 'webform_node'; $expected = ['To uninstall Webform node, delete all content that has the Webform content type.']; $reasons = $this->webformNodeUninstallValidator->validate($module); - $this->assertSame($expected, $this->castSafeStrings($reasons)); + $this->assertEquals($expected, $reasons); } } diff --git a/web/modules/webform/modules/webform_node/webform_node.info.yml b/web/modules/webform/modules/webform_node/webform_node.info.yml index 7973b72fcc..a979dbd35d 100644 --- a/web/modules/webform/modules/webform_node/webform_node.info.yml +++ b/web/modules/webform/modules/webform_node/webform_node.info.yml @@ -11,7 +11,7 @@ dependencies: - 'drupal:user' - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_entity_test/webform_options_custom_entity_test.info.yml b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_entity_test/webform_options_custom_entity_test.info.yml index 475f22355d..feb8d7e6f7 100644 --- a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_entity_test/webform_options_custom_entity_test.info.yml +++ b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_entity_test/webform_options_custom_entity_test.info.yml @@ -8,7 +8,7 @@ dependencies: - 'webform:webform_options_limit' - 'webform:webform_options_custom' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/webform_options_custom_test.info.yml b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/webform_options_custom_test.info.yml index e6e56201e0..c94ff1eb4d 100644 --- a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/webform_options_custom_test.info.yml +++ b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/webform_options_custom_test.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform_options_custom' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_options_custom/webform_options_custom.info.yml b/web/modules/webform/modules/webform_options_custom/webform_options_custom.info.yml index 054cb982f4..b8d230b560 100644 --- a/web/modules/webform/modules/webform_options_custom/webform_options_custom.info.yml +++ b/web/modules/webform/modules/webform_options_custom/webform_options_custom.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_options_limit/src/Access/WebformOptionsLimitAccess.php b/web/modules/webform/modules/webform_options_limit/src/Access/WebformOptionsLimitAccess.php index 4d84aeebda..8f6547aa75 100644 --- a/web/modules/webform/modules/webform_options_limit/src/Access/WebformOptionsLimitAccess.php +++ b/web/modules/webform/modules/webform_options_limit/src/Access/WebformOptionsLimitAccess.php @@ -77,8 +77,8 @@ protected static function hasOptionsLimit(WebformInterface $webform) { $handlers = $webform->getHandlers(); foreach ($handlers as $handler) { if ($handler instanceof WebformOptionsLimitHandlerInterface) { - $configuration = $handler->getConfiguration(); - if (empty($configuration['settings']['limit_user'])) { + $limit_user = $handler->getSetting('limit_user'); + if (empty($limit_user)) { return TRUE; } } diff --git a/web/modules/webform/modules/webform_options_limit/src/Plugin/WebformHandler/OptionsLimitWebformHandler.php b/web/modules/webform/modules/webform_options_limit/src/Plugin/WebformHandler/OptionsLimitWebformHandler.php index feae39a01c..f67f407a19 100644 --- a/web/modules/webform/modules/webform_options_limit/src/Plugin/WebformHandler/OptionsLimitWebformHandler.php +++ b/web/modules/webform/modules/webform_options_limit/src/Plugin/WebformHandler/OptionsLimitWebformHandler.php @@ -143,8 +143,7 @@ public function defaultConfiguration() { * {@inheritdoc} */ public function getSummary() { - $configuration = $this->getConfiguration(); - $settings = $configuration['settings']; + $settings = $this->getSettings(); $element = $this->getWebform()->getElement($settings['element_key']); if ($element) { @@ -1104,8 +1103,8 @@ protected function getElements() { foreach ($handlers as $handler) { if ($handler instanceof WebformOptionsLimitHandlerInterface && $handler->getHandlerId() !== $this->getHandlerId()) { - $configuration = $handler->getConfiguration(); - unset($options[$configuration['settings']['element_key']]); + $element_key = $handler->getSetting('element_key'); + unset($options[$element_key]); } } diff --git a/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/webform_options_limit_test.info.yml b/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/webform_options_limit_test.info.yml index 1e2822a6a3..ee037c7f4b 100644 --- a/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/webform_options_limit_test.info.yml +++ b/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/webform_options_limit_test.info.yml @@ -7,7 +7,7 @@ dependencies: - 'webform:webform' - 'webform:webform_options_limit' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_options_limit/tests/src/Functional/WebformOptionsLimitSourceEntityTest.php b/web/modules/webform/modules/webform_options_limit/tests/src/Functional/WebformOptionsLimitSourceEntityTest.php index 7a02a97f3d..a604eebe99 100644 --- a/web/modules/webform/modules/webform_options_limit/tests/src/Functional/WebformOptionsLimitSourceEntityTest.php +++ b/web/modules/webform/modules/webform_options_limit/tests/src/Functional/WebformOptionsLimitSourceEntityTest.php @@ -26,6 +26,7 @@ class WebformOptionsLimitSourceEntityTest extends WebformNodeBrowserTestBase { * Test options limit source entity. */ public function testSourceEnity() { + /** @var \Drupal\webform\WebformInterface $webform */ $webform = Webform::load('test_handler_options_limit'); $node = $this->createWebformNode('test_handler_options_limit'); @@ -60,10 +61,8 @@ public function testSourceEnity() { $this->purgeSubmissions(); // Disable source entity support for the handler. - $handler = $webform->getHandler('options_limit_default'); - $configuration = $handler->getConfiguration(); - $configuration['settings']['limit_source_entity'] = FALSE; - $handler->setConfiguration($configuration); + $webform->getHandler('options_limit_default') + ->setSetting('limit_source_entity', FALSE); $webform->save(); // Check that the webform node option A and webform option A are both open. diff --git a/web/modules/webform/modules/webform_options_limit/webform_options_limit.info.yml b/web/modules/webform/modules/webform_options_limit/webform_options_limit.info.yml index 039b025177..43489d281c 100644 --- a/web/modules/webform/modules/webform_options_limit/webform_options_limit.info.yml +++ b/web/modules/webform/modules/webform_options_limit/webform_options_limit.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_scheduled_email/drush/webform_scheduled_email.drush.inc b/web/modules/webform/modules/webform_scheduled_email/drush/webform_scheduled_email.drush.inc index 7c52d7632a..bd260b15b7 100644 --- a/web/modules/webform/modules/webform_scheduled_email/drush/webform_scheduled_email.drush.inc +++ b/web/modules/webform/modules/webform_scheduled_email/drush/webform_scheduled_email.drush.inc @@ -7,6 +7,7 @@ use Drupal\webform\Entity\Webform; use Drupal\webform_scheduled_email\Plugin\WebformHandler\ScheduleEmailWebformHandler; +use Drush\Drush; /** * Implements hook_drush_command(). @@ -96,5 +97,5 @@ function webform_scheduled_email_cron_process($webform_id = NULL, $handler_id = /** @var \Drupal\webform_scheduled_email\WebformScheduledEmailManagerInterface $webform_scheduled_email_manager */ $webform_scheduled_email_manager = \Drupal::service('webform_scheduled_email.manager'); $stats = $webform_scheduled_email_manager->cron($webform, $handler_id, $schedule_limit, $send_limit); - drush_print(dt($stats['_message'], $stats['_context'])); + Drush::output()->writeln(dt($stats['_message'], $stats['_context'])); } diff --git a/web/modules/webform/modules/webform_scheduled_email/src/WebformScheduledEmailManager.php b/web/modules/webform/modules/webform_scheduled_email/src/WebformScheduledEmailManager.php index dd4daca408..93a2386517 100644 --- a/web/modules/webform/modules/webform_scheduled_email/src/WebformScheduledEmailManager.php +++ b/web/modules/webform/modules/webform_scheduled_email/src/WebformScheduledEmailManager.php @@ -165,14 +165,13 @@ public function getSendDate(WebformSubmissionInterface $webform_submission, $han /** @var \Drupal\webform_scheduled_email\Plugin\WebformHandler\ScheduleEmailWebformHandler $handler */ $handler = $webform->getHandler($handler_id); - $configuration = $handler->getConfiguration(); - if (empty($configuration['settings']['send'])) { + $send = $handler->getSetting('send'); + if (empty($send)) { return FALSE; } // Get send +/- days. - $send = $configuration['settings']['send']; - $days = (!empty($configuration['settings']['days'])) ? $configuration['settings']['days'] : 0; + $days = $handler->getSetting('days') ?: 0; // ISSUE: // [webform_submission:completed:html_date] token is not being replaced @@ -214,7 +213,7 @@ public function schedule(EntityInterface $entity, $handler_id) { $webform = $webform_submission->getWebform(); /** @var \Drupal\webform_scheduled_email\Plugin\WebformHandler\ScheduleEmailWebformHandler $handler */ $handler = $webform->getHandler($handler_id); - $handler_configuration = $handler->getConfiguration(); + $handler_settings = $handler->getSettings(); // Check send date and set timestamp. $send_iso_date = $this->getSendDate($webform_submission, $handler_id); @@ -226,13 +225,13 @@ public function schedule(EntityInterface $entity, $handler_id) { // Check submission state and unschedule. $state = $webform_submission->getState(); - if (!in_array($state, $handler_configuration['settings']['states']) && $handler_configuration['settings']['unschedule']) { + if (!in_array($state, $handler_settings['states']) && $handler_settings['unschedule']) { $this->unschedule($webform_submission, $handler_id); return WebformScheduledEmailManagerInterface::EMAIL_UNSCHEDULED; } // Check if action should be triggered in the past. - if (!empty($handler_configuration['settings']['ignore_past']) && $send_timestamp < $this->time->getRequestTime()) { + if (!empty($handler_settings['ignore_past']) && $send_timestamp < $this->time->getRequestTime()) { $this->unschedule($webform_submission, $handler_id); return WebformScheduledEmailManagerInterface::EMAIL_IGNORED; } diff --git a/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test/webform_scheduled_email_test.info.yml b/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test/webform_scheduled_email_test.info.yml index 33b40d23e9..b2e917525b 100644 --- a/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test/webform_scheduled_email_test.info.yml +++ b/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test/webform_scheduled_email_test.info.yml @@ -7,7 +7,7 @@ dependencies: - 'webform:webform' - 'webform:webform_scheduled_email' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test_translation/webform_scheduled_email_test_translation.info.yml b/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test_translation/webform_scheduled_email_test_translation.info.yml index 692e982855..72b68623c1 100644 --- a/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test_translation/webform_scheduled_email_test_translation.info.yml +++ b/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test_translation/webform_scheduled_email_test_translation.info.yml @@ -10,7 +10,7 @@ dependencies: - 'webform:webform' - 'webform:webform_scheduled_email' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_scheduled_email/webform_scheduled_email.info.yml b/web/modules/webform/modules/webform_scheduled_email/webform_scheduled_email.info.yml index 2ee45b4fa5..d6e247f3d7 100644 --- a/web/modules/webform/modules/webform_scheduled_email/webform_scheduled_email.info.yml +++ b/web/modules/webform/modules/webform_scheduled_email/webform_scheduled_email.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_share/webform_share.info.yml b/web/modules/webform/modules/webform_share/webform_share.info.yml index b410557603..bbce9eb673 100644 --- a/web/modules/webform/modules/webform_share/webform_share.info.yml +++ b/web/modules/webform/modules/webform_share/webform_share.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_shortcuts/webform_shortcuts.info.yml b/web/modules/webform/modules/webform_shortcuts/webform_shortcuts.info.yml index 3d6f15f59a..d5fed9955f 100644 --- a/web/modules/webform/modules/webform_shortcuts/webform_shortcuts.info.yml +++ b/web/modules/webform/modules/webform_shortcuts/webform_shortcuts.info.yml @@ -7,7 +7,7 @@ dependencies: - 'webform:webform' - 'webform:webform_ui' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_submission_export_import/src/Form/WebformSubmissionExportImportUploadForm.php b/web/modules/webform/modules/webform_submission_export_import/src/Form/WebformSubmissionExportImportUploadForm.php index 475a596bfc..a3c677d665 100644 --- a/web/modules/webform/modules/webform_submission_export_import/src/Form/WebformSubmissionExportImportUploadForm.php +++ b/web/modules/webform/modules/webform_submission_export_import/src/Form/WebformSubmissionExportImportUploadForm.php @@ -150,7 +150,7 @@ protected function buildUploadForm(array $form, FormStateInterface $form_state) $this->t('File uploads must use publicly access URLs which begin with http:// or https://.'), $this->t('Entity references can use UUIDs or entity IDs.'), $this->t('Composite (single) values are annotated using double underscores. (e.g. ELEMENT_KEY__SUB_ELEMENT_KEY)'), - $this->t('Multiple values are comma delimited with any nested commas URI escaped (%2E).'), + $this->t('Multiple values are comma delimited with any nested commas URI escaped (%2C).'), $this->t('Multiple composite values are formatted using <a href=":href">inline YAML</a>.', [':href' => 'https://en.wikipedia.org/wiki/YAML#Basic_components']), $this->t('Import maximum execution time limit is @time.', ['@time' => $this->dateFormatter->formatInterval($temporary_maximum_age)]), ], diff --git a/web/modules/webform/modules/webform_submission_export_import/tests/modules/webform_submission_export_import_test/webform_submission_export_import_test.info.yml b/web/modules/webform/modules/webform_submission_export_import/tests/modules/webform_submission_export_import_test/webform_submission_export_import_test.info.yml index ef7060ed7e..69e44d4fbe 100644 --- a/web/modules/webform/modules/webform_submission_export_import/tests/modules/webform_submission_export_import_test/webform_submission_export_import_test.info.yml +++ b/web/modules/webform/modules/webform_submission_export_import/tests/modules/webform_submission_export_import_test/webform_submission_export_import_test.info.yml @@ -7,7 +7,7 @@ dependencies: - 'webform:webform_submission_export_import' - 'webform:webform_image_select' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_submission_export_import/webform_submission_export_import.info.yml b/web/modules/webform/modules/webform_submission_export_import/webform_submission_export_import.info.yml index 52829a4843..971fe0d7ab 100644 --- a/web/modules/webform/modules/webform_submission_export_import/webform_submission_export_import.info.yml +++ b/web/modules/webform/modules/webform_submission_export_import/webform_submission_export_import.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_submission_log/webform_submission_log.info.yml b/web/modules/webform/modules/webform_submission_log/webform_submission_log.info.yml index c5c159b133..5a1ac32374 100644 --- a/web/modules/webform/modules/webform_submission_log/webform_submission_log.info.yml +++ b/web/modules/webform/modules/webform_submission_log/webform_submission_log.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_templates/webform_templates.info.yml b/web/modules/webform/modules/webform_templates/webform_templates.info.yml index 0206b881ce..671f514611 100644 --- a/web/modules/webform/modules/webform_templates/webform_templates.info.yml +++ b/web/modules/webform/modules/webform_templates/webform_templates.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_toggles/tests/modules/webform_toggles_test/webform_toggles_test.info.yml b/web/modules/webform/modules/webform_toggles/tests/modules/webform_toggles_test/webform_toggles_test.info.yml index 6f4d83e925..90bf2f4395 100644 --- a/web/modules/webform/modules/webform_toggles/tests/modules/webform_toggles_test/webform_toggles_test.info.yml +++ b/web/modules/webform/modules/webform_toggles/tests/modules/webform_toggles_test/webform_toggles_test.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform_toggles' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_toggles/webform_toggles.info.yml b/web/modules/webform/modules/webform_toggles/webform_toggles.info.yml index 2e0f7943f2..29b53cf933 100644 --- a/web/modules/webform/modules/webform_toggles/webform_toggles.info.yml +++ b/web/modules/webform/modules/webform_toggles/webform_toggles.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/modules/webform_ui/css/webform_ui.module.css b/web/modules/webform/modules/webform_ui/css/webform_ui.module.css index f1603122b7..d3e5105e27 100644 --- a/web/modules/webform/modules/webform_ui/css/webform_ui.module.css +++ b/web/modules/webform/modules/webform_ui/css/webform_ui.module.css @@ -166,7 +166,7 @@ thead th .dropbutton { white-space: nowrap; } -.webform-ui-element-type-table tr td:first-child .tippy-tooltip /** Allow tippy tooltip to wrap */ { +.webform-ui-element-type-table tr td:first-child .tippy-content /** Allow tippy tooltip to wrap */ { white-space: normal; } diff --git a/web/modules/webform/modules/webform_ui/webform_ui.info.yml b/web/modules/webform/modules/webform_ui/webform_ui.info.yml index 1db0e81b8f..c8e2f17f8a 100644 --- a/web/modules/webform/modules/webform_ui/webform_ui.info.yml +++ b/web/modules/webform/modules/webform_ui/webform_ui.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/src/Cache/WebformBubbleableMetadata.php b/web/modules/webform/src/Cache/WebformBubbleableMetadata.php new file mode 100644 index 0000000000..6b49845332 --- /dev/null +++ b/web/modules/webform/src/Cache/WebformBubbleableMetadata.php @@ -0,0 +1,54 @@ +<?php + +namespace Drupal\webform\Cache; + +use Drupal\Core\Cache\Cache; +use Drupal\Core\Render\BubbleableMetadata; + +/** + * Value object used for bubbleable rendering metadata for webforms. + */ +class WebformBubbleableMetadata extends BubbleableMetadata { + + /** + * Appends the values of this bubbleable metadata object to a render array. + * + * We can't use \Drupal\Core\Render\BubbleableMetadata::applyTo because it + * replaces all existing cache contexts and tags. + * + * @param array $build + * A render array + * + * @see \Drupal\Core\Render\BubbleableMetadata::applyTo + * @see \Drupal\webform\WebformSubmissionForm::buildForm + * @see \Drupal\webform\Plugin\WebformElementBase::replaceTokens + */ + public function appendTo(array &$build) { + $contexts = $this->getCacheContexts(); + $tags = $this->getCacheTags(); + $max_age = $this->getCacheMaxAge(); + $attachments = $this->getAttachments(); + + // Make sure cache metadata has been set. + if (empty($contexts) + && empty($tags) + && empty($attachments) + && $max_age === Cache::PERMANENT) { + return; + } + + // The below code is copied from Renderer::mergeBubbleableMetadata. + // @see \Drupal\Core\Render\Renderer::mergeBubbleableMetadata + $meta_a = BubbleableMetadata::createFromRenderArray($build); + $meta_b = BubbleableMetadata::createFromRenderArray([ + '#cache' => [ + 'contexts' => $contexts, + 'tags' => $tags, + 'max-age' => $max_age, + 'attachments' => $attachments, + ], + ]); + $meta_a->merge($meta_b)->applyTo($build); + } + +} diff --git a/web/modules/webform/src/Commands/WebformCliService.php b/web/modules/webform/src/Commands/WebformCliService.php index 28b3513935..842543448a 100644 --- a/web/modules/webform/src/Commands/WebformCliService.php +++ b/web/modules/webform/src/Commands/WebformCliService.php @@ -6,6 +6,7 @@ use Drupal\Core\Cache\Cache; use Drupal\Core\File\FileSystemInterface; use Drupal\Core\Mail\MailFormatHelper; +use Drupal\Core\Render\RenderContext; use Drupal\Core\Serialization\Yaml; use Drupal\Core\Site\Settings; use Drupal\webform\Controller\WebformResultsExportController; @@ -17,6 +18,7 @@ use Drupal\webform\Utility\WebformYaml; use Drupal\webform_submission_export_import\Form\WebformSubmissionExportImportUploadForm; use Drush\Commands\DrushCommands; +use Drush\Drush; use Psr\Log\LogLevel; /** @@ -198,16 +200,6 @@ public function webform_drush_command() { 'aliases' => ['wfls'], ]; - $items['webform-libraries-make'] = [ - 'description' => 'Generates libraries YAML to be included in a drush.make.yml files.', - 'core' => ['8+'], - 'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_ROOT, - 'examples' => [ - 'webform-libraries-make' => 'Generates libraries YAML to be included in a drush.make.yml file.', - ], - 'aliases' => ['wflm'], - ]; - $items['webform-libraries-composer'] = [ 'description' => "Generates the Webform module's composer.json with libraries as repositories.", 'core' => ['8+'], @@ -691,35 +683,6 @@ public function drush_webform_libraries_status() { $this->drush_print($description); } - /** - * {@inheritdoc} - */ - public function drush_webform_libraries_make() { - /** @var \Drupal\webform\WebformLibrariesManagerInterface $libraries_manager */ - $libraries_manager = \Drupal::service('webform.libraries_manager'); - $libraries = $libraries_manager->getLibraries(TRUE); - - $data = [ - 'core' => '8.x', - 'api' => 2, - 'libraries' => [], - ]; - foreach ($libraries as $library_name => $library) { - $url = $library['download_url']->toString(); - $data['libraries'][$library_name] = [ - 'directory_name' => $library_name, - 'destination' => 'libraries', - 'download' => [ - 'type' => 'get', - 'url' => $url, - ], - ]; - } - - $data = Yaml::encode($data); - $this->drush_print($data); - } - /** * {@inheritdoc} */ @@ -906,19 +869,34 @@ public function drush_webform_repair() { // Validate all webform elements. $this->drush_print($this->dt('Validating webform elements…')); - /** @var \Drupal\webform\WebformEntityElementsValidatorInterface $elements_validator */ - $elements_validator = \Drupal::service('webform.elements_validator'); - - /** @var \Drupal\webform\WebformInterface[] $webforms */ - $webforms = Webform::loadMultiple(); - foreach ($webforms as $webform) { - if ($messages = $elements_validator->validate($webform)) { - $this->drush_print(' ' . $this->dt('@title (@id): Found element validation errors.', ['@title' => $webform->label(), '@id' => $webform->id()])); - foreach ($messages as $message) { - $this->drush_print(' - ' . strip_tags($message)); + + \Drupal::moduleHandler()->loadAll(); + + /** @var \Drupal\Core\Render\RendererInterface $renderer */ + $renderer = \Drupal::service('renderer'); + $render_context = new RenderContext(); + $renderer->executeInRenderContext($render_context, function () { + /** @var \Drupal\webform\WebformEntityElementsValidatorInterface $elements_validator */ + $elements_validator = \Drupal::service('webform.elements_validator'); + + /** @var \Drupal\webform\WebformInterface[] $webforms */ + $webforms = Webform::loadMultiple(); + foreach ($webforms as $webform) { + // Ignored test files. + // @todo Determine why these webforms are throwing error via CLI. + if (in_array($webform->id(), ['test_element_managed_file_limit', 'test_composite_custom_file', 'test_element_comp_file_plugin'])) { + continue; + } + + $messages = $elements_validator->validate($webform); + if ($messages) { + $this->drush_print(' ' . $this->dt('@title (@id): Found element validation errors.', ['@title' => $webform->label(), '@id' => $webform->id()])); + foreach ($messages as $message) { + $this->drush_print(' - ' . strip_tags($message)); + } } } - } + }); Cache::invalidateTags(['rendered']); // @todo Remove when that is fixed in https://www.drupal.org/node/2773591. @@ -1103,7 +1081,7 @@ public function drush_webform_composer_update_validate() { return $this->drush_user_abort(); } - $drupal_root = $this->drush_get_context('DRUSH_DRUPAL_ROOT'); + $drupal_root = Drush::bootstrapManager()->getRoot(); if (file_exists($drupal_root . '/composer.json')) { $composer_json = $drupal_root . '/composer.json'; $composer_directory = ''; @@ -1411,7 +1389,7 @@ protected function drush_webform_generate_commands_drush9() { * @hook validate $command_name */ public function $validate_method(CommandData \$commandData) { - \$arguments = \$commandData->arguments(); + \$arguments = array_values(\$commandData->arguments()); array_shift(\$arguments); call_user_func_array([\$this->cliService, '$validate_method'], \$arguments); }"; diff --git a/web/modules/webform/src/Commands/WebformCliServiceInterface.php b/web/modules/webform/src/Commands/WebformCliServiceInterface.php index 4275aa01f1..539cf8c89a 100644 --- a/web/modules/webform/src/Commands/WebformCliServiceInterface.php +++ b/web/modules/webform/src/Commands/WebformCliServiceInterface.php @@ -67,11 +67,6 @@ function drush_webform_generate($webform_id = NULL, $num = NULL); */ public function drush_webform_libraries_status(); - /** - * Implements drush_hook_COMMAND(). - */ - public function drush_webform_libraries_make(); - /** * Implements drush_hook_COMMAND(). * diff --git a/web/modules/webform/src/Commands/WebformCommands.php b/web/modules/webform/src/Commands/WebformCommands.php index 32787d52d9..32bbb1d957 100644 --- a/web/modules/webform/src/Commands/WebformCommands.php +++ b/web/modules/webform/src/Commands/WebformCommands.php @@ -24,7 +24,7 @@ class WebformCommands extends WebformCommandsBase { * @hook validate webform:export */ public function drush_webform_export_validate(CommandData $commandData) { - $arguments = $commandData->arguments(); + $arguments = array_values($commandData->arguments()); array_shift($arguments); call_user_func_array([$this->cliService, 'drush_webform_export_validate'], $arguments); } @@ -71,7 +71,7 @@ public function drush_webform_export($webform = NULL, array $options = ['exporte * @hook validate webform:import */ public function drush_webform_import_validate(CommandData $commandData) { - $arguments = $commandData->arguments(); + $arguments = array_values($commandData->arguments()); array_shift($arguments); call_user_func_array([$this->cliService, 'drush_webform_import_validate'], $arguments); } @@ -100,7 +100,7 @@ public function drush_webform_import($webform = NULL, $import_uri = NULL, array * @hook validate webform:purge */ public function drush_webform_purge_validate(CommandData $commandData) { - $arguments = $commandData->arguments(); + $arguments = array_values($commandData->arguments()); array_shift($arguments); call_user_func_array([$this->cliService, 'drush_webform_purge_validate'], $arguments); } @@ -133,7 +133,7 @@ public function drush_webform_purge($webform_id = NULL, array $options = ['all' * @hook validate webform:tidy */ public function drush_webform_tidy_validate(CommandData $commandData) { - $arguments = $commandData->arguments(); + $arguments = array_values($commandData->arguments()); array_shift($arguments); call_user_func_array([$this->cliService, 'drush_webform_tidy_validate'], $arguments); } @@ -169,22 +169,6 @@ public function drush_webform_libraries_status() { $this->cliService->drush_webform_libraries_status(); } - /****************************************************************************/ - // drush webform:libraries:make. DO NOT EDIT. - /****************************************************************************/ - - /** - * Generates libraries YAML to be included in a drush.make.yml files. - * - * @command webform:libraries:make - * @usage webform:libraries:make - * Generates libraries YAML to be included in a drush.make.yml file. - * @aliases wflm,webform-libraries-make - */ - public function drush_webform_libraries_make() { - $this->cliService->drush_webform_libraries_make(); - } - /****************************************************************************/ // drush webform:libraries:composer. DO NOT EDIT. /****************************************************************************/ @@ -242,7 +226,7 @@ public function drush_webform_libraries_remove() { * @hook validate webform:generate */ public function drush_webform_generate_validate(CommandData $commandData) { - $arguments = $commandData->arguments(); + $arguments = array_values($commandData->arguments()); array_shift($arguments); call_user_func_array([$this->cliService, 'drush_webform_generate_validate'], $arguments); } @@ -303,7 +287,7 @@ public function drush_webform_remove_orphans() { * @hook validate webform:docs */ public function drush_webform_docs_validate(CommandData $commandData) { - $arguments = $commandData->arguments(); + $arguments = array_values($commandData->arguments()); array_shift($arguments); call_user_func_array([$this->cliService, 'drush_webform_docs_validate'], $arguments); } @@ -328,7 +312,7 @@ public function drush_webform_docs() { * @hook validate webform:composer:update */ public function drush_webform_composer_update_validate(CommandData $commandData) { - $arguments = $commandData->arguments(); + $arguments = array_values($commandData->arguments()); array_shift($arguments); call_user_func_array([$this->cliService, 'drush_webform_composer_update_validate'], $arguments); } @@ -362,4 +346,4 @@ public function drush_webform_generate_commands() { $this->cliService->drush_webform_generate_commands(); } -} +} \ No newline at end of file diff --git a/web/modules/webform/src/Commands/WebformCommandsBase.php b/web/modules/webform/src/Commands/WebformCommandsBase.php index bbbc623eaa..20ecb96ee0 100644 --- a/web/modules/webform/src/Commands/WebformCommandsBase.php +++ b/web/modules/webform/src/Commands/WebformCommandsBase.php @@ -5,6 +5,7 @@ use Drush\Commands\DrushCommands; use Drush\Drush; use Drush\Exceptions\UserAbortException; +use Drush\Exec\ExecTrait; use Psr\Log\LogLevel; use Symfony\Component\Filesystem\Filesystem; @@ -71,16 +72,19 @@ public function drush_download_file($url, $destination) { // Copied from: \Drush\Commands\SyncViaHttpCommands::downloadFile static $use_wget; if ($use_wget === NULL) { - $use_wget = drush_shell_exec('which wget'); + $use_wget = ExecTrait::programExists('wget'); } $destination_tmp = drush_tempnam('download_file'); if ($use_wget) { - drush_shell_exec("wget -q --timeout=30 -O %s %s", $destination_tmp, $url); + $args = ['wget', '-q', '--timeout=30', '-O', $destination_tmp, $url]; } else { - drush_shell_exec("curl -s -L --connect-timeout 30 -o %s %s", $destination_tmp, $url); + $args = ['curl', '-s', '-L', '--connect-timeout', '30', '-o', $destination_tmp, $url]; } + $process = Drush::process($args); + $process->mustRun(); + if (!drush_file_not_empty($destination_tmp) && $file = @file_get_contents($url)) { @file_put_contents($destination_tmp, $file); } @@ -110,16 +114,27 @@ public function drush_mkdir($path) { public function drush_tarball_extract($path, $destination = FALSE) { $this->drush_mkdir($destination); + $cwd = getcwd(); if (preg_match('/\.tgz$/', $path)) { - $return = drush_shell_cd_and_exec(dirname($path), "tar -xvzf %s -C %s", $path, $destination); + drush_op('chdir', dirname($path)); + $process = Drush::process(['tar', '-xvzf', $path, '-C', $destination]); + $process->run(); + $return = $process->isSuccessful(); + drush_op('chdir', $cwd); + if (!$return) { - throw new \Exception(dt('Unable to extract !filename.' . PHP_EOL . implode(PHP_EOL, drush_shell_exec_output()), ['!filename' => $path])); + throw new \Exception(dt('Unable to extract !filename.' . PHP_EOL . implode(PHP_EOL, $process->getOutput()), ['!filename' => $path])); } } else { - $return = drush_shell_cd_and_exec(dirname($path), "unzip %s -d %s", $path, $destination); + drush_op('chdir', dirname($path)); + $process = Drush::process(['unzip', $path, '-d', $destination]); + $process->run(); + $return = $process->isSuccessful(); + drush_op('chdir', $cwd); + if (!$return) { - throw new \Exception(dt('Unable to extract !filename.' . PHP_EOL . implode(PHP_EOL, drush_shell_exec_output()), ['!filename' => $path])); + throw new \Exception(dt('Unable to extract !filename.' . PHP_EOL . implode(PHP_EOL, $process->getOutput()), ['!filename' => $path])); } } return $return; diff --git a/web/modules/webform/src/Commands/WebformSanitizeSubmissionsCommands.php b/web/modules/webform/src/Commands/WebformSanitizeSubmissionsCommands.php index 5a6792ca3e..385c8430ca 100644 --- a/web/modules/webform/src/Commands/WebformSanitizeSubmissionsCommands.php +++ b/web/modules/webform/src/Commands/WebformSanitizeSubmissionsCommands.php @@ -71,7 +71,7 @@ public function sanitize($result, CommandData $command_data) { $this->database->truncate('webform_submission_log')->execute(); } $this->entityTypeManager->getStorage('webform_submission')->resetCache(); - $this->logger()->success(dt('Webform submission tables truncated.')); + $this->logger()->notice(dt('Webform submission tables truncated.')); } } diff --git a/web/modules/webform/src/Element/WebformAddress.php b/web/modules/webform/src/Element/WebformAddress.php index 30d4a2f43f..5672b9003b 100644 --- a/web/modules/webform/src/Element/WebformAddress.php +++ b/web/modules/webform/src/Element/WebformAddress.php @@ -33,7 +33,7 @@ public static function getCompositeElements(array $element) { '#type' => 'textfield', '#title' => t('City/Town'), ]; - // Any webform options prefixed with 'states_province' will automatically + // Any webform options prefixed with 'state_province' will automatically // be included within the Composite Element UI. // @see \Drupal\webform\Plugin\WebformElement\WebformCompositeBase::getCompositeElementOptions $elements['state_province'] = [ diff --git a/web/modules/webform/src/Element/WebformAutocomplete.php b/web/modules/webform/src/Element/WebformAutocomplete.php index edcd5a8c6a..1d9971c5a8 100644 --- a/web/modules/webform/src/Element/WebformAutocomplete.php +++ b/web/modules/webform/src/Element/WebformAutocomplete.php @@ -38,4 +38,10 @@ public static function preRenderWebformAutocomplete($element) { return $element; } + /** + * {@inheritdoc} + */ + protected function defineTranslatableProperties() { + return array_merge(parent::defineTranslatableProperties(), ['autocomplete_items']); + } } diff --git a/web/modules/webform/src/Element/WebformExcludedColumns.php b/web/modules/webform/src/Element/WebformExcludedColumns.php index e7561fcbea..71881d1379 100644 --- a/web/modules/webform/src/Element/WebformExcludedColumns.php +++ b/web/modules/webform/src/Element/WebformExcludedColumns.php @@ -29,6 +29,9 @@ public static function getWebformExcludedOptions(array $element) { /** @var \Drupal\webform\WebformInterface $webform */ $webform = WebformEntity::load($element['#webform_id']) ?: \Drupal::service('webform.request')->getCurrentWebform(); + if (!$webform) { + return []; + } $options = []; diff --git a/web/modules/webform/src/Element/WebformLikert.php b/web/modules/webform/src/Element/WebformLikert.php index 07bdb2703b..4970c1ad0b 100644 --- a/web/modules/webform/src/Element/WebformLikert.php +++ b/web/modules/webform/src/Element/WebformLikert.php @@ -152,6 +152,15 @@ public static function processWebformLikert(&$element, FormStateInterface $form_ } foreach ($answers as $answer_key => $answer) { + $answer_attributes = ['aria-labelledby' => $question_id]; + + // Add required attributes to input without setting the <label> + // to required. + if ($element['#required']) { + $answer_attributes['required'] ='required'; + $answer_attributes['aria-required'] = 'true'; + } + $row[$answer_key] = [ '#parents' => [$element['#name'], $question_key], '#type' => 'radio', @@ -162,7 +171,7 @@ public static function processWebformLikert(&$element, FormStateInterface $form_ // value is NULL. // @see \Drupal\Core\Render\Element\Radio::preRenderRadio '#value' => ($value === NULL) ? FALSE : (string) $value, - '#attributes' => ['aria-labelledby' => $question_id], + '#attributes' => $answer_attributes, ]; // Wrap title in span.webform-likert-label.visually-hidden diff --git a/web/modules/webform/src/Element/WebformOtherBase.php b/web/modules/webform/src/Element/WebformOtherBase.php index bd13214529..95712414ec 100644 --- a/web/modules/webform/src/Element/WebformOtherBase.php +++ b/web/modules/webform/src/Element/WebformOtherBase.php @@ -164,6 +164,14 @@ public static function processWebformOther(&$element, FormStateInterface $form_s $element['other']['#parents'] = array_merge($element['#parents'], ['other']); } + // Add custom required error message so that clientside_validation.module + // can display it. + // @see https://www.drupal.org/project/clientside_validation/issues/3084798 + if (\Drupal::moduleHandler()->moduleExists('clientside_validation') + && isset($element['other']['#required_error'])) { + $element['other']['#attributes']['data-msg-required'] = $element['other']['#required_error']; + } + // Initialize the type and other elements to allow for webform enhancements. /** @var \Drupal\webform\Plugin\WebformElementManagerInterface $element_manager */ $element_manager = \Drupal::service('plugin.manager.webform.element'); diff --git a/web/modules/webform/src/Element/WebformSection.php b/web/modules/webform/src/Element/WebformSection.php index 4f3d73b83b..ea2007e2de 100644 --- a/web/modules/webform/src/Element/WebformSection.php +++ b/web/modules/webform/src/Element/WebformSection.php @@ -26,6 +26,10 @@ public function getInfo() { ], '#value' => NULL, '#title_tag' => 'h2', + // Must set default description display to before to prevent it from being + // set to after. + // @see \Drupal\Core\Form\FormBuilder::doBuildForm + '#description_display' => 'before', '#theme_wrappers' => ['webform_section'], ]; } diff --git a/web/modules/webform/src/Element/WebformTermsOfService.php b/web/modules/webform/src/Element/WebformTermsOfService.php index 7ca66c34f4..2601539252 100644 --- a/web/modules/webform/src/Element/WebformTermsOfService.php +++ b/web/modules/webform/src/Element/WebformTermsOfService.php @@ -38,6 +38,25 @@ public function getInfo() { ] + parent::getInfo(); } + /** + * Sets the #checked property of a checkbox element. + */ + public static function processCheckbox(&$element, FormStateInterface $form_state, &$complete_form) { + $element = parent::processCheckbox($element, $form_state, $complete_form); + + // Remove curly brackets from the {terms of service} title. + if (empty($element['#required_error'])) { + $title = (empty($element['#title'])) + ? (string) t('I agree to the {terms of service}.') + : $element['#title']; + $title = str_replace('{', '', $title); + $title = str_replace('}', '', $title); + $element['#required_error'] = t('@name field is required.', ['@name' => $title]); + } + + return $element; + } + /** * {@inheritdoc} */ diff --git a/web/modules/webform/src/Entity/Webform.php b/web/modules/webform/src/Entity/Webform.php index 923a4082ad..0197e749e0 100644 --- a/web/modules/webform/src/Entity/Webform.php +++ b/web/modules/webform/src/Entity/Webform.php @@ -2248,10 +2248,6 @@ public function getCacheTags() { public function getCacheContexts() { $cache_contexts = parent::getCacheContexts(); - // Add paths to cache contexts since webform can be placed on multiple - // pages. - $cache_contexts[] = 'url.path'; - // Add all prepopulate query string parameters. if ($this->getSetting('form_prepopulate')) { $cache_contexts[] = 'url.query_args'; @@ -2259,11 +2255,11 @@ public function getCacheContexts() { else { // Add source entity type and id query string parameters. if ($this->getSetting('form_prepopulate_source_entity')) { - $cache_contexts[] = 'url.query_args:entity_type'; - $cache_contexts[] = 'url.query_args:entity_id'; + $cache_contexts[] = 'url.query_args:source_entity_type'; + $cache_contexts[] = 'url.query_args:source_entity_id'; } // Add webform (secure) token query string parameter. - if ($this->getSetting('token_view') || $this->getSetting('token_update')) { + if ($this->getSetting('token_view') || $this->getSetting('token_update') || $this->getSetting('token_delete')) { $cache_contexts[] = 'url.query_args:token'; } } diff --git a/web/modules/webform/src/EntitySettings/WebformEntitySettingsSubmissionsForm.php b/web/modules/webform/src/EntitySettings/WebformEntitySettingsSubmissionsForm.php index 3feefe1ae4..f9691c8349 100644 --- a/web/modules/webform/src/EntitySettings/WebformEntitySettingsSubmissionsForm.php +++ b/web/modules/webform/src/EntitySettings/WebformEntitySettingsSubmissionsForm.php @@ -646,7 +646,7 @@ public function form(array $form, FormStateInterface $form_state) { $form['draft_settings']['draft_container']['draft_multiple'] = [ '#type' => 'checkbox', '#title' => $this->t('Allow users to save multiple drafts'), - "#description" => $this->t('If checked, users will be able save and resume multiple drafts.'), + "#description" => $this->t("If checked, users will be able save and resume multiple drafts. Please note: Authenticated user need to be able 'view own submissions' to access saved drafts."), '#return_value' => TRUE, '#default_value' => $settings['draft_multiple'], ]; diff --git a/web/modules/webform/src/EventSubscriber/WebformDefaultExceptionHtmlSubscriber.php b/web/modules/webform/src/EventSubscriber/WebformDefaultExceptionHtmlSubscriber.php index 349d631e1f..019ef2fad9 100644 --- a/web/modules/webform/src/EventSubscriber/WebformDefaultExceptionHtmlSubscriber.php +++ b/web/modules/webform/src/EventSubscriber/WebformDefaultExceptionHtmlSubscriber.php @@ -263,7 +263,7 @@ protected function getHandledFormats() { public function onException(ExceptionEvent $event) { // Only handle 403 exception. // @see \Drupal\webform\EventSubscriber\WebformExceptionHtmlSubscriber::on403 - $exception = $event->getException(); + $exception = $event->getThrowable(); if ($exception instanceof HttpExceptionInterface && $exception->getStatusCode() === 403) { parent::onException($event); } diff --git a/web/modules/webform/src/Form/WebformAjaxFormTrait.php b/web/modules/webform/src/Form/WebformAjaxFormTrait.php index 410b6c1eb1..422c53c3d2 100644 --- a/web/modules/webform/src/Form/WebformAjaxFormTrait.php +++ b/web/modules/webform/src/Form/WebformAjaxFormTrait.php @@ -161,7 +161,7 @@ protected function buildAjaxForm(array &$form, FormStateInterface $form_state, a $wrapper_attributes = new Attribute($wrapper_attributes); $form['#form_wrapper_id'] = $wrapper_id; - $form['#prefix'] = '<a id="' . $wrapper_id . '-content" tabindex="-1" aria-hidden="true"></a>'; + $form['#prefix'] = '<span id="' . $wrapper_id . '-content"></span>'; $form['#prefix'] .= '<div' . $wrapper_attributes . '>'; $form['#suffix'] = '</div>'; diff --git a/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerateTrait.php b/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerateTrait.php index e586f9ee59..03f463f9b9 100644 --- a/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerateTrait.php +++ b/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerateTrait.php @@ -237,13 +237,14 @@ protected function generateSubmissions(array $values) { $start = $this->time->getRequestTime(); for ($i = 1; $i <= $values['num']; $i++) { $this->generateSubmission($values); - if (function_exists('drush_log') && $i % drush_get_option('feedback', 1000) === 0) { + $feedback = isset($values['feedback']) && is_int($values['feedback']) ? $values['feedback'] : 1000; + if ($i % $feedback === 0) { $now = $this->time->getRequestTime(); $dt_args = [ - '@feedback' => drush_get_option('feedback', 1000), - '@rate' => (drush_get_option('feedback', 1000) * 60) / ($now - $start), + '@feedback' => $feedback, + '@rate' => ($feedback * 60) / ($now - $start), ]; - drush_log(dt('Completed @feedback submissions (@rate submissions/min)', $dt_args), 'ok'); + \Drupal::logger('webform')->notice($this->t('Completed @feedback submissions (@rate submissions/min)', $dt_args)); $start = $now; } } @@ -339,26 +340,26 @@ public function _validateDrushParams($args) { $values = [ 'webform_ids' => $webform_ids, 'num' => array_shift($args) ?: 50, - 'kill' => drush_get_option('kill') ?: FALSE, + 'kill' => empty($args['kill']) ? FALSE : TRUE, ]; if (empty($webform_id)) { - return drush_set_error('DEVEL_GENERATE_INVALID_INPUT', dt('Webform id required')); + throw new \Exception(dt('Webform ida required')); } if (!$this->getWebformStorage()->load($webform_id)) { - return drush_set_error('DEVEL_GENERATE_INVALID_INPUT', dt('Invalid webform name: @name', ['@name' => $webform_id])); + throw new \Exception(dt('Invalid webform name: @name', ['@name' => $webform_id])); } if ($this->isNumber($values['num']) === FALSE) { - return drush_set_error('DEVEL_GENERATE_INVALID_INPUT', dt('Invalid number of submissions: @num', ['@num' => $values['num']])); + throw new \Exception(dt('Invalid number of submissions: @num', ['@num' => $values['num']])); } - $entity_type = drush_get_option('entity-type'); - $entity_id = drush_get_option('entity-id'); + $entity_type = $args['entity-type']; + $entity_id = $args['entity-id']; if ($entity_type || $entity_id) { if ($error = $this->validateEntity($webform_ids, $entity_type, $entity_id)) { - return drush_set_error('DEVEL_GENERATE_INVALID_INPUT', $error); + throw new \Exception($error); } else { $values['entity-type'] = $entity_type; diff --git a/web/modules/webform/src/Plugin/WebformElement/BooleanBase.php b/web/modules/webform/src/Plugin/WebformElement/BooleanBase.php index 6e8933be96..9459493bd1 100644 --- a/web/modules/webform/src/Plugin/WebformElement/BooleanBase.php +++ b/web/modules/webform/src/Plugin/WebformElement/BooleanBase.php @@ -47,6 +47,15 @@ protected function formatTextItem(array $element, WebformSubmissionInterface $we } } + /** + * {@inheritdoc} + */ + public function getItemFormats() { + $formats = parent::getItemFormats(); + $formats['raw'] = $this->t('Raw/return value'); + return $formats; + } + /** * {@inheritdoc} */ diff --git a/web/modules/webform/src/Plugin/WebformElement/EntityAutocomplete.php b/web/modules/webform/src/Plugin/WebformElement/EntityAutocomplete.php index 0b20e31e2e..19b5a0b679 100644 --- a/web/modules/webform/src/Plugin/WebformElement/EntityAutocomplete.php +++ b/web/modules/webform/src/Plugin/WebformElement/EntityAutocomplete.php @@ -172,4 +172,13 @@ protected static function getEntityIdFromItem($item) { } } + /** + * {@inheritdoc} + */ + public function getExportDefaultOptions() { + return [ + 'entity_reference_items' => ['id', 'title', 'url'], + ]; + } + } diff --git a/web/modules/webform/src/Plugin/WebformElement/Table.php b/web/modules/webform/src/Plugin/WebformElement/Table.php index c22217cb84..4c99b793b2 100644 --- a/web/modules/webform/src/Plugin/WebformElement/Table.php +++ b/web/modules/webform/src/Plugin/WebformElement/Table.php @@ -202,6 +202,10 @@ public function form(array $form, FormStateInterface $form_state) { '#title' => $this->t('Empty text'), '#description' => $this->t('Text to display when no rows are present.'), ]; + + // Unset textarea rows to prevent any conflicts. + unset($form['form']['size_container']['rows']); + return $form; } diff --git a/web/modules/webform/src/Plugin/WebformElement/TextBase.php b/web/modules/webform/src/Plugin/WebformElement/TextBase.php index 0a9dec4da7..98d960e220 100644 --- a/web/modules/webform/src/Plugin/WebformElement/TextBase.php +++ b/web/modules/webform/src/Plugin/WebformElement/TextBase.php @@ -135,6 +135,11 @@ public function prepare(array &$element, WebformSubmissionInterface $webform_sub $element['#attributes']['data-webform-pattern-error'] = WebformHtmlHelper::toPlainText($element['#pattern_error']); } } + + // Minlength attribute. + if (isset($element['#minlength'])) { + $element['#attributes']['minlength'] = $element['#minlength']; + } } /** @@ -278,6 +283,8 @@ public static function isDefaultInputMask(array $element, $value) { $input_mask = $element['#input_mask']; $input_masks = [ "'alias': 'currency'" => '$ 0.00', + "'alias': 'currency_negative'" => '-$ 0.00', + "'alias': 'currency_positive_negative'" => '$ 0.00', ]; return (isset($input_masks[$input_mask]) && $input_masks[$input_mask] === $value) ? TRUE : FALSE; } @@ -351,10 +358,20 @@ public function validateConfigurationForm(array &$form, FormStateInterface $form protected function getInputMasks() { $input_masks = [ "'alias': 'currency'" => [ - 'title' => $this->t('Currency'), + 'title' => $this->t('Currency (+)'), 'example' => '$ 9.99', 'pattern' => '^\$ [0-9]{1,3}(,[0-9]{3})*.\d\d$', ], + "'alias': 'currency_negative'" => [ + 'title' => $this->t('Currency (-)'), + 'example' => '-$ 9.99', + 'pattern' => '^(-\$ [0-9]{1,3}(,[0-9]{3})*.\d\d|\$ 0.00)$', + ], + "'alias': 'currency_positive_negative'" => [ + 'title' => $this->t('Currency (+/-)'), + 'example' => '$ 9.99', + 'pattern' => '^[-]?\$ [0-9]{1,3}(,[0-9]{3})*.\d\d$', + ], "'alias': 'datetime'" => [ 'title' => $this->t('Date'), 'example' => '2007-06-09\'T\'17:46:21', diff --git a/web/modules/webform/src/Plugin/WebformElement/WebformEntityOptionsTrait.php b/web/modules/webform/src/Plugin/WebformElement/WebformEntityOptionsTrait.php index f44591766d..b1097ac4b7 100644 --- a/web/modules/webform/src/Plugin/WebformElement/WebformEntityOptionsTrait.php +++ b/web/modules/webform/src/Plugin/WebformElement/WebformEntityOptionsTrait.php @@ -71,4 +71,16 @@ public function getElementSelectorSourceValues(array $element) { return parent::getElementSelectorSourceValues($element); } + /** + * {@inheritdoc} + */ + public function getExportDefaultOptions() { + return [ + 'entity_reference_items' => ['id', 'title', 'url'], + 'options_single_format' => 'compact', + 'options_multiple_format' => 'compact', + 'options_item_format' => 'label', + ]; + } + } diff --git a/web/modules/webform/src/Plugin/WebformElement/WebformEntityReferenceTrait.php b/web/modules/webform/src/Plugin/WebformElement/WebformEntityReferenceTrait.php index e02ee05940..a4160b6601 100644 --- a/web/modules/webform/src/Plugin/WebformElement/WebformEntityReferenceTrait.php +++ b/web/modules/webform/src/Plugin/WebformElement/WebformEntityReferenceTrait.php @@ -239,15 +239,6 @@ public function preview() { return $element; } - /** - * {@inheritdoc} - */ - public function getExportDefaultOptions() { - return [ - 'entity_reference_items' => ['id', 'title', 'url'], - ]; - } - /** * {@inheritdoc} */ diff --git a/web/modules/webform/src/Plugin/WebformElement/WebformSection.php b/web/modules/webform/src/Plugin/WebformElement/WebformSection.php index 7f6f110315..91f28caa7e 100644 --- a/web/modules/webform/src/Plugin/WebformElement/WebformSection.php +++ b/web/modules/webform/src/Plugin/WebformElement/WebformSection.php @@ -32,6 +32,7 @@ protected function defineDefaultProperties() { 'title_tag' => $this->configFactory->get('webform.settings')->get('element.default_section_title_tag'), 'title_display' => '', 'title_attributes' => [], + 'description_display' => '', 'help_display' => '', ] + parent::defineDefaultProperties(); } @@ -77,6 +78,9 @@ public function form(array $form, FormStateInterface $form_state) { ], ]; + // Remove unsupported description display. + unset($form['form']['display_container']['description_display']['#options']['tooltip']); + return $form; } diff --git a/web/modules/webform/src/Plugin/WebformElement/WebformTableRow.php b/web/modules/webform/src/Plugin/WebformElement/WebformTableRow.php index f307f25e6b..4e4153e407 100644 --- a/web/modules/webform/src/Plugin/WebformElement/WebformTableRow.php +++ b/web/modules/webform/src/Plugin/WebformElement/WebformTableRow.php @@ -360,6 +360,13 @@ protected function hasIncrementalChildrenElements($key) { return TRUE; } + /** + * {@inheritdoc} + */ + public function preview() { + return []; + } + /** * Get child elements incremented with a new index. * diff --git a/web/modules/webform/src/Plugin/WebformElement/WebformTableTrait.php b/web/modules/webform/src/Plugin/WebformElement/WebformTableTrait.php index bc97a39e54..a5b8cf911e 100644 --- a/web/modules/webform/src/Plugin/WebformElement/WebformTableTrait.php +++ b/web/modules/webform/src/Plugin/WebformElement/WebformTableTrait.php @@ -140,11 +140,15 @@ public static function processTableSelect(array $element) { $element['#attributes']['class'][] = 'webform-tableselect'; $element['#attributes']['class'][] = 'js-webform-tableselect'; $element['#attached']['library'][] = 'webform/webform.element.tableselect'; + if (!empty($element['#required'])) { + $element['#attributes']['class'][] = 'required'; + } + $element['#attributes']['multiple'] = !empty($element['#multiple']); return $element; } /** - * Process table selected options and add #title to the table's options. + * Process table selected options. * * @param array $element * An associative array containing the properties and children of @@ -157,12 +161,26 @@ public static function processTableSelect(array $element) { */ public static function processTableSelectOptions(array $element) { foreach ($element['#options'] as $key => $choice) { - if (isset($element[$key]) && empty($element[$key]['#title'])) { + if (!isset($element[$key])) { + continue; + } + + // Add #title to the table's options. + if (empty($element[$key]['#title'])) { if ($title = static::getTableSelectOptionTitle($choice)) { $element[$key]['#title'] = $title; $element[$key]['#title_display'] = 'invisible'; } } + + // Suppress inline error messages from appearing below + // checkboxes and radios. + $element[$key]['#error_no_message'] = TRUE; + + // Add required attribute to table select radios + if (!empty($element['#required']) && empty($element['#multiple'])) { + $element[$key]['#attributes']['required'] = TRUE; + } } return $element; } diff --git a/web/modules/webform/src/Plugin/WebformElement/WebformVariant.php b/web/modules/webform/src/Plugin/WebformElement/WebformVariant.php index fc96553805..cc681f415f 100644 --- a/web/modules/webform/src/Plugin/WebformElement/WebformVariant.php +++ b/web/modules/webform/src/Plugin/WebformElement/WebformVariant.php @@ -257,6 +257,13 @@ public static function afterBuild(array $form, FormStateInterface $form_state) { return $form; } + /** + * {@inheritdoc} + */ + public function preview() { + return []; + } + /** * {@inheritdoc} */ diff --git a/web/modules/webform/src/Plugin/WebformElementBase.php b/web/modules/webform/src/Plugin/WebformElementBase.php index d2cd23eae2..0f761d8799 100644 --- a/web/modules/webform/src/Plugin/WebformElementBase.php +++ b/web/modules/webform/src/Plugin/WebformElementBase.php @@ -16,6 +16,7 @@ use Drupal\Core\Session\AccountInterface; use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\Core\Url; +use Drupal\webform\Cache\WebformBubbleableMetadata; use Drupal\webform\Element\WebformCompositeFormElementTrait; use Drupal\webform\Element\WebformHtmlEditor; use Drupal\webform\Element\WebformMessage; @@ -955,6 +956,8 @@ protected function checkAccessRule(array $element, $operation, AccountInterface * {@inheritdoc} */ public function replaceTokens(array &$element, EntityInterface $entity = NULL) { + $bubbleable_metadata = new WebformBubbleableMetadata(); + foreach ($element as $key => $value) { // Only replace tokens in properties. if (Element::child($key)) { @@ -966,8 +969,11 @@ public function replaceTokens(array &$element, EntityInterface $entity = NULL) { continue; } - $element[$key] = $this->tokenManager->replaceNoRenderContext($value, $entity); + $element[$key] = $this->tokenManager->replace($value, $entity, [], [], $bubbleable_metadata); } + + // Append metadata to the element's #cache property. + $bubbleable_metadata->appendTo($element); } /** diff --git a/web/modules/webform/src/Plugin/WebformHandler/ActionWebformHandler.php b/web/modules/webform/src/Plugin/WebformHandler/ActionWebformHandler.php index 8e4bbad1e2..1c9fb8bf42 100644 --- a/web/modules/webform/src/Plugin/WebformHandler/ActionWebformHandler.php +++ b/web/modules/webform/src/Plugin/WebformHandler/ActionWebformHandler.php @@ -45,8 +45,7 @@ public static function create(ContainerInterface $container, array $configuratio * {@inheritdoc} */ public function getSummary() { - $configuration = $this->getConfiguration(); - $settings = $configuration['settings']; + $settings = $this->getSettings(); // Get state labels. $states = [ diff --git a/web/modules/webform/src/Plugin/WebformHandler/DebugWebformHandler.php b/web/modules/webform/src/Plugin/WebformHandler/DebugWebformHandler.php index 18a074a417..9aa318346c 100644 --- a/web/modules/webform/src/Plugin/WebformHandler/DebugWebformHandler.php +++ b/web/modules/webform/src/Plugin/WebformHandler/DebugWebformHandler.php @@ -69,8 +69,7 @@ public function defaultConfiguration() { * {@inheritdoc} */ public function getSummary() { - $configuration = $this->getConfiguration(); - $settings = $configuration['settings']; + $settings = $this->getSettings(); switch ($settings['format']) { case static::FORMAT_JSON: $settings['format'] = $this->t('JSON'); @@ -125,8 +124,7 @@ public function submitConfigurationForm(array &$form, FormStateInterface $form_s * {@inheritdoc} */ public function submitForm(array &$form, FormStateInterface $form_state, WebformSubmissionInterface $webform_submission) { - $configuration = $this->getConfiguration(); - $settings = $configuration['settings']; + $settings = $this->getSettings(); $data = ($settings['submission']) ? $webform_submission->toArray(TRUE) diff --git a/web/modules/webform/src/Plugin/WebformHandler/EmailWebformHandler.php b/web/modules/webform/src/Plugin/WebformHandler/EmailWebformHandler.php index bf5deda9bb..9d4501261a 100644 --- a/web/modules/webform/src/Plugin/WebformHandler/EmailWebformHandler.php +++ b/web/modules/webform/src/Plugin/WebformHandler/EmailWebformHandler.php @@ -275,9 +275,9 @@ protected function getDefaultConfigurationValue($name) { * along with the default configuration values. */ public function getEmailConfiguration() { - $configuration = $this->getConfiguration(); + $settings = $this->getSettings(); $email = []; - foreach ($configuration['settings'] as $key => $value) { + foreach ($settings as $key => $value) { $email[$key] = ($value === static::DEFAULT_VALUE) ? $this->getDefaultConfigurationValue($key) : $value; } return $email; @@ -1253,7 +1253,6 @@ public function resendMessageForm(array $message) { $element['reply_to'] = [ '#type' => 'email', '#title' => $this->t('Reply to'), - '#required' => TRUE, '#default_value' => $message['reply_to'], ]; $element['message_divider'] = ['#markup' => '<hr/>']; diff --git a/web/modules/webform/src/Plugin/WebformHandler/RemotePostWebformHandler.php b/web/modules/webform/src/Plugin/WebformHandler/RemotePostWebformHandler.php index db66cc7ce2..b2deb7b0b1 100644 --- a/web/modules/webform/src/Plugin/WebformHandler/RemotePostWebformHandler.php +++ b/web/modules/webform/src/Plugin/WebformHandler/RemotePostWebformHandler.php @@ -122,8 +122,7 @@ public static function create(ContainerInterface $container, array $configuratio * {@inheritdoc} */ public function getSummary() { - $configuration = $this->getConfiguration(); - $settings = $configuration['settings']; + $settings = $this->getSettings(); if (!$this->isResultsEnabled()) { $settings['updated_url'] = ''; @@ -509,7 +508,7 @@ protected function remotePost($state, WebformSubmissionInterface $webform_submis } // If debugging is enabled, display the request and response. - $this->debug(t('Remote post successful!'), $state, $request_url, $request_method, $request_type, $request_options, $response, 'warning'); + $this->debug($this->t('Remote post successful!'), $state, $request_url, $request_method, $request_type, $request_options, $response, 'warning'); // Replace [webform:handler] tokens in submission data. // Data structured for [webform:handler:remote_post:completed:key] tokens. @@ -563,7 +562,9 @@ protected function getRequestData($state, WebformSubmissionInterface $webform_su // Append uploaded file name, uri, and base64 data to data. $webform = $this->getWebform(); foreach ($data as $element_key => $element_value) { - if (empty($element_value)) { + // Ignore empty and not equal to zero values. + // @see https://stackoverflow.com/questions/732979/php-whats-an-alternative-to-empty-where-string-0-is-not-treated-as-empty + if (empty($element_value) && $element_value !== 0 && $element_value !== '0') { continue; } diff --git a/web/modules/webform/src/Plugin/WebformHandler/SettingsWebformHandler.php b/web/modules/webform/src/Plugin/WebformHandler/SettingsWebformHandler.php index 9a1c3ae2c3..b6823d9f9e 100644 --- a/web/modules/webform/src/Plugin/WebformHandler/SettingsWebformHandler.php +++ b/web/modules/webform/src/Plugin/WebformHandler/SettingsWebformHandler.php @@ -55,9 +55,7 @@ public static function create(ContainerInterface $container, array $configuratio * {@inheritdoc} */ public function getSummary() { - $configuration = $this->getConfiguration(); - $settings = $configuration['settings']; - + $settings = $this->getSettings(); $setting_definitions = $this->getSettingsDefinitions(); $setting_override = $this->getSettingsOverride(); foreach ($setting_override as $name => $value) { diff --git a/web/modules/webform/src/Plugin/WebformHandlerBase.php b/web/modules/webform/src/Plugin/WebformHandlerBase.php index 6ac5e7f2f7..f3f5d8b11c 100644 --- a/web/modules/webform/src/Plugin/WebformHandlerBase.php +++ b/web/modules/webform/src/Plugin/WebformHandlerBase.php @@ -26,6 +26,7 @@ abstract class WebformHandlerBase extends PluginBase implements WebformHandlerIn use WebformEntityInjectionTrait; use WebformEntityStorageTrait; + use WebformPluginSettingsTrait; /** * The webform. diff --git a/web/modules/webform/src/Plugin/WebformHandlerInterface.php b/web/modules/webform/src/Plugin/WebformHandlerInterface.php index 30b8979324..2ac93902a8 100644 --- a/web/modules/webform/src/Plugin/WebformHandlerInterface.php +++ b/web/modules/webform/src/Plugin/WebformHandlerInterface.php @@ -20,7 +20,7 @@ * @see \Drupal\webform\Plugin\WebformHandlerManagerInterface * @see plugin_api */ -interface WebformHandlerInterface extends PluginInspectionInterface, ConfigurableInterface, ContainerFactoryPluginInterface, PluginFormInterface, WebformEntityInjectionInterface { +interface WebformHandlerInterface extends PluginInspectionInterface, ConfigurableInterface, ContainerFactoryPluginInterface, PluginFormInterface, WebformEntityInjectionInterface, WebformPluginSettingsInterface { /** * Value indicating unlimited plugin instances are permitted. diff --git a/web/modules/webform/src/Plugin/WebformPluginSettingsInterface.php b/web/modules/webform/src/Plugin/WebformPluginSettingsInterface.php new file mode 100644 index 0000000000..9a8f7764bd --- /dev/null +++ b/web/modules/webform/src/Plugin/WebformPluginSettingsInterface.php @@ -0,0 +1,51 @@ +<?php + +namespace Drupal\webform\Plugin; + +/** + * An interface for managing a plugin's settings\. + */ +interface WebformPluginSettingsInterface { + + /** + * Returns the plugin's settings. + * + * @return array + * A structured array containing all the plugin's settings. + */ + public function getSettings(); + + /** + * Update a plugin's settings. + * + * @param array $settings + * The structured array containing the plugin's settings to be updated. + * + * @return $this + */ + public function setSettings(array $settings); + + /** + * Returns the plugin setting for given key + * + * @param string $key + * The key of the plugin setting to retrieve. + * + * @return mixed + * The settings value, or NULL if no settings exists. + */ + public function getSetting($key); + + /** + * Sets a plugin setting for a given key. + * + * @param string $key + * The key of the setting to be updated. + * @param mixed $value + * The value for the settings.. + * + * @return $this + */ + public function setSetting($key, $value); + +} diff --git a/web/modules/webform/src/Plugin/WebformPluginSettingsTrait.php b/web/modules/webform/src/Plugin/WebformPluginSettingsTrait.php new file mode 100644 index 0000000000..6e915c81e5 --- /dev/null +++ b/web/modules/webform/src/Plugin/WebformPluginSettingsTrait.php @@ -0,0 +1,45 @@ +<?php + +namespace Drupal\webform\Plugin; + +/** + * Provides a plugin settings trait. + */ +trait WebformPluginSettingsTrait { + + /** + * {@inheritdoc} + */ + public function getSettings() { + $configuration = $this->getConfiguration(); + return $configuration['settings']; + } + + /** + * {@inheritdoc} + */ + public function setSettings(array $settings) { + $configuration = $this->getConfiguration(); + $configuration['settings'] = $settings + $configuration['settings']; + $this->setConfiguration($configuration); + return $this; + } + + /** + * {@inheritdoc} + */ + public function getSetting($key) { + $configuration = $this->getConfiguration(); + return (isset($configuration['settings'][$key])) ? $configuration['settings'][$key] : NULL; + } + + /** + * {@inheritdoc} + */ + public function setSetting($key, $value) { + $configuration = $this->getConfiguration(); + $configuration['settings'][$key] = $value; + return $this->setConfiguration($configuration); + } + +} diff --git a/web/modules/webform/src/Plugin/WebformVariantBase.php b/web/modules/webform/src/Plugin/WebformVariantBase.php index d1533d1a56..8e4f3384a1 100644 --- a/web/modules/webform/src/Plugin/WebformVariantBase.php +++ b/web/modules/webform/src/Plugin/WebformVariantBase.php @@ -19,6 +19,7 @@ abstract class WebformVariantBase extends PluginBase implements WebformVariantInterface { use WebformEntityInjectionTrait; + use WebformPluginSettingsTrait; /** * The webform variant ID. diff --git a/web/modules/webform/src/Plugin/WebformVariantInterface.php b/web/modules/webform/src/Plugin/WebformVariantInterface.php index ba17fb16e0..f6cd1ff29c 100644 --- a/web/modules/webform/src/Plugin/WebformVariantInterface.php +++ b/web/modules/webform/src/Plugin/WebformVariantInterface.php @@ -17,7 +17,7 @@ * @see \Drupal\webform\Plugin\WebformVariantManagerInterface * @see plugin_api */ -interface WebformVariantInterface extends PluginInspectionInterface, ConfigurableInterface, ContainerFactoryPluginInterface, PluginFormInterface, WebformEntityInjectionInterface { +interface WebformVariantInterface extends PluginInspectionInterface, ConfigurableInterface, ContainerFactoryPluginInterface, PluginFormInterface, WebformEntityInjectionInterface, WebformPluginSettingsInterface { /** * Returns a render array summarizing the configuration of the webform variant. diff --git a/web/modules/webform/src/WebformAddonsManager.php b/web/modules/webform/src/WebformAddonsManager.php index e9b81c0f1e..875dafa46c 100644 --- a/web/modules/webform/src/WebformAddonsManager.php +++ b/web/modules/webform/src/WebformAddonsManager.php @@ -449,6 +449,14 @@ protected function initProjects() { 'category' => 'enhancement', ]; + // Enhancement: Webform Entity Email. + $projects['webform_entity_email'] = [ + 'title' => $this->t('Webform Entity Email'), + 'description' => $this->t('Allow send a node in a specific display mode.'), + 'url' => Url::fromUri('https://www.drupal.org/project/webform_entity_email'), + 'category' => 'enhancement', + ]; + // Enhancement: Webform Extra Field. $projects['webform_extra_field'] = [ 'title' => $this->t('Webform Extra Field'), @@ -1124,10 +1132,18 @@ protected function initProjects() { 'category' => 'mail', ]; + // Mail: Flexmail. + $projects['flexmail'] = [ + 'title' => $this->t('Flexmail'), + 'description' => $this->t('Provides Flexmail email service webform integration.'), + 'url' => Url::fromUri('https://www.drupal.org/project/flexmail'), + 'category' => 'mail', + ]; + // Mail: Mailboxlayer. $projects['mailboxlayer'] = [ 'title' => $this->t('Mailboxlayer'), - 'description' => $this->t('Integrates the <a href=":href">Mailboxlayer API</a> with the Webforms.', [':href' => 'https://mailboxlayer.com']), + 'description' => $this->t('Integrates the Mailboxlayer API with the Webforms.'), 'url' => Url::fromUri('https://www.drupal.org/project/mailboxlayer'), 'category' => 'mail', ]; diff --git a/web/modules/webform/src/WebformEntityReferenceManager.php b/web/modules/webform/src/WebformEntityReferenceManager.php index 0d6ddd4eb0..abc8842eb8 100644 --- a/web/modules/webform/src/WebformEntityReferenceManager.php +++ b/web/modules/webform/src/WebformEntityReferenceManager.php @@ -240,8 +240,10 @@ public function getWebforms(EntityInterface $entity = NULL) { $field_names = $this->getFieldNames($entity); foreach ($field_names as $field_name) { foreach ($entity->$field_name as $item) { - $sorted_entities[$item->target_id] = (method_exists($item->entity, 'getWeight')) ? $item->entity->getWeight() : 0; - $target_entities[$item->target_id] = $item->entity; + if ($item->entity) { + $sorted_entities[$item->target_id] = (method_exists($item->entity, 'getWeight')) ? $item->entity->getWeight() : 0; + $target_entities[$item->target_id] = $item->entity; + } } } diff --git a/web/modules/webform/src/WebformHelpManager.php b/web/modules/webform/src/WebformHelpManager.php index 63607a1a3d..5fdeaf0f33 100644 --- a/web/modules/webform/src/WebformHelpManager.php +++ b/web/modules/webform/src/WebformHelpManager.php @@ -861,6 +861,18 @@ protected function initVideos() { ], ], ], + 'open_collective' => [ + 'title' => $this->t("The Webform module's Open Collective"), + 'content' => $this->t("This screencast provides details about the Webform module's Open Collective"), + 'youtube_id' => 'MtlFTwZLKpc', + 'presentation_id' => '1ykQtm9dBthRoK2Tt3AwiopTxTcPm355uGZEHuXcx2nU', + 'links' => [ + [ + 'title' => $this->t("Webform module's Open Collective"), + 'url' => 'https://opencollective.com/webform', + ], + ], + ], 'about' => [ 'title' => $this->t('About Webform & the Drupal community'), 'content' => $this->t('This screencast introduces you to the maintainer and community behind the Webform module.'), @@ -1760,7 +1772,6 @@ protected function initHelp() { // Configuration: Libraries. $t_args = [ - '@webform-libraries-make' => 'webform-libraries-make', '@webform-libraries-composer' => 'webform-libraries-composer', '@webform-libraries-download' => 'webform-libraries-download', '@webform-composer-update' => 'webform-composer-update', @@ -1786,7 +1797,7 @@ protected function initHelp() { '</ul>' . '<p><strong>' . $this->t('Alternatives') . '</strong></p>' . '<ul>' . - '<li>' . $this->t('Generate a *.make.yml or composer.json file using <code>drush @webform-libraries-make</code> or <code>drush @webform-libraries-composer</code>.', $t_args) . '</li>' . + '<li>' . $this->t('Generate a composer.json file using <code>drush @webform-libraries-composer</code>.', $t_args) . '</li>' . '<li>' . $this->t('Execute <code>drush @webform-libraries-download</code>, to download third-party libraries required by the Webform module. (OSX/Linux)', $t_args) . '</li>' . '<li>' . $this->t("Execute <code>drush @webform-composer-update</code>, to update your Drupal installation's composer.json to include the Webform module's selected libraries as repositories.", $t_args) . '</li>' . '<li>' . $this->t('Download and extract a <a href=":href">zipped archive containing all webform libraries</a> and extract the directories and files to /libraries or /web/libraries', [':href' => 'https://git.drupalcode.org/sandbox/jrockowitz-2941983/raw/6.x/libraries.zip']) . '</li>' . diff --git a/web/modules/webform/src/WebformLibrariesManager.php b/web/modules/webform/src/WebformLibrariesManager.php index 8348c139d6..086ba4871d 100644 --- a/web/modules/webform/src/WebformLibrariesManager.php +++ b/web/modules/webform/src/WebformLibrariesManager.php @@ -87,6 +87,15 @@ public function requirements($cli = FALSE) { $libraries = $this->getLibraries(); + // Defined REQUIREMENT constants which may not be loaded. + // @see /private/var/www/sites/d8_webform/web/core/includes/install.inc + if (!defined('REQUIREMENT_OK')) { + define('REQUIREMENT_INFO', -1); + define('REQUIREMENT_OK', 0); + define('REQUIREMENT_WARNING', 1); + define('REQUIREMENT_ERROR', 2); + } + // Track stats. $severity = REQUIREMENT_OK; $stats = [ @@ -383,9 +392,9 @@ protected function initLibraries() { 'notes' => $this->t('Code Mirror is used to provide a text editor for YAML, HTML, CSS, and JavaScript configuration settings and messages.'), 'homepage_url' => Url::fromUri('http://codemirror.net/'), // Issue #3177233: CodeMirror 5.70.0 is displaying vertical scrollbar. - 'download_url' => Url::fromUri('https://github.com/components/codemirror/archive/5.53.2.zip'), + 'download_url' => Url::fromUri('https://github.com/components/codemirror/archive/5.61.1.zip'), 'issues_url' => Url::fromUri('https://github.com/codemirror/codemirror/issues'), - 'version' => '5.53.2', + 'version' => '5.61.1', ]; $libraries['algolia.places'] = [ 'title' => $this->t('Algolia Places'), @@ -405,8 +414,8 @@ protected function initLibraries() { 'description' => $this->t('Input masks ensures a predefined format is entered. This can be useful for dates, numerics, phone numbers, etc…'), 'notes' => $this->t('Input masks are used to ensure predefined and custom formats for text fields.'), 'homepage_url' => Url::fromUri('https://robinherbots.github.io/Inputmask/'), - 'download_url' => Url::fromUri('https://github.com/RobinHerbots/jquery.inputmask/archive/5.0.5.zip'), - 'version' => '5.0.5', + 'download_url' => Url::fromUri('https://github.com/RobinHerbots/jquery.inputmask/archive/5.0.6.zip'), + 'version' => '5.0.6', ]; $libraries['jquery.intl-tel-input'] = [ 'title' => $this->t('jQuery: International Telephone Input'), @@ -438,8 +447,8 @@ protected function initLibraries() { 'description' => $this->t('A lightweight, customizable javascript timepicker plugin for jQuery, inspired by Google Calendar.'), 'notes' => $this->t('Timepicker is used to provide a polyfill for HTML 5 time elements.'), 'homepage_url' => Url::fromUri('https://github.com/jonthornton/jquery-timepicker'), - 'download_url' => Url::fromUri('https://github.com/jonthornton/jquery-timepicker/archive/1.13.14.zip'), - 'version' => '1.13.14', + 'download_url' => Url::fromUri('https://github.com/jonthornton/jquery-timepicker/archive/1.13.18.zip'), + 'version' => '1.13.18', ]; $libraries['progress-tracker'] = [ 'title' => $this->t('Progress Tracker'), diff --git a/web/modules/webform/src/WebformSubmissionForm.php b/web/modules/webform/src/WebformSubmissionForm.php index d9cf7cf4d5..5e8f03606d 100644 --- a/web/modules/webform/src/WebformSubmissionForm.php +++ b/web/modules/webform/src/WebformSubmissionForm.php @@ -16,6 +16,7 @@ use Drupal\Core\Routing\TrustedRedirectResponse; use Drupal\Core\Template\Attribute; use Drupal\Core\Url; +use Drupal\webform\Cache\WebformBubbleableMetadata; use Drupal\webform\Entity\WebformSubmission; use Drupal\webform\Form\WebformDialogFormTrait; use Drupal\webform\Plugin\WebformElement\Hidden; @@ -182,6 +183,15 @@ class WebformSubmissionForm extends ContentEntityForm { */ protected $originalData; + /** + * Bubbleable metadata. + * + * @var \Drupal\webform\Cache\WebformBubbleableMetadata + * + * @see \Drupal\webform\WebformSubmissionForm::buildForm + */ + protected $bubbleableMetadata; + /** * {@inheritdoc} */ @@ -261,6 +271,10 @@ protected function init(FormStateInterface $form_state) { * @see \Drupal\Core\Entity\EntityFormBuilder::getForm */ public function setEntity(EntityInterface $entity) { + // Create new metadata to be applie when the form is built. + // @see \Drupal\webform\WebformSubmissionForm::buildForm + $this->bubbleableMetadata = new WebformBubbleableMetadata(); + /** @var \Drupal\webform\WebformSubmissionInterface $entity */ $webform = $entity->getWebform(); @@ -306,7 +320,7 @@ public function setEntity(EntityInterface $entity) { // Handle paragraph source entity. if ($source_entity && $source_entity->getEntityTypeId() === 'paragraph') { // Disable :clear suffix to prevent webform tokens from being removed. - $data = $this->tokenManager->replace($data, $source_entity, [], ['suffixes' => ['clear' => FALSE]]); + $data = $this->tokenManager->replace($data, $source_entity, [], ['suffixes' => ['clear' => FALSE]], $this->bubbleableMetadata); $source_entity = WebformSourceEntityManager::getMainSourceEntity($source_entity); } // Set source entity. @@ -408,7 +422,7 @@ public function setEntity(EntityInterface $entity) { // This allows computed elements to be executed and tokens // to be replaced using the webform's default data. $default_data = $webform->getElementsDefaultData(); - $default_data = $this->tokenManager->replaceNoRenderContext($default_data, $entity); + $default_data = $this->tokenManager->replace($default_data, $entity, [], [], $this->bubbleableMetadata); $data += $default_data; // Set data and calculate computed values. @@ -593,9 +607,14 @@ public function buildForm(array $form, FormStateInterface $form_state) { // Server side #states API validation. $this->conditionsValidator->buildForm($form, $form_state); + // Append the bubbleable metadat to the form's render array. + // @see \Drupal\webform\WebformSubmissionForm::setEntity + $this->bubbleableMetadata->appendTo($form); + return $form; } + /** * {@inheritdoc} */ @@ -2031,7 +2050,7 @@ protected function getUploadedManagedFileIds() { protected function setFormPropertiesFromElements(array &$form, array &$elements) { foreach ($elements as $key => $value) { if (is_string($key) && $key[0] === '#') { - $value = $this->tokenManager->replace($value, $this->getEntity()); + $value = $this->tokenManager->replace($value, $this->getEntity(), [], [], $this->bubbleableMetadata); if (isset($form[$key]) && is_array($form[$key]) && is_array($value)) { $form[$key] = NestedArray::mergeDeep($form[$key], $value); } @@ -2043,7 +2062,7 @@ protected function setFormPropertiesFromElements(array &$form, array &$elements) } // Replace token in #attributes. if (isset($form['#attributes'])) { - $form['#attributes'] = $this->tokenManager->replace($form['#attributes'], $this->getEntity()); + $form['#attributes'] = $this->tokenManager->replace($form['#attributes'], $this->getEntity(), [], [], $this->bubbleableMetadata); } } @@ -2301,7 +2320,7 @@ protected function setConfirmation(FormStateInterface $form_state) { switch ($confirmation_type) { case WebformInterface::CONFIRMATION_PAGE: $redirect_url = $this->requestHandler->getUrl($webform, $this->sourceEntity, 'webform.confirmation', $route_options); - $form_state->setRedirectUrl($redirect_url); + $this->setTrustedRedirectUrl($form_state, $redirect_url); return; case WebformInterface::CONFIRMATION_URL: @@ -2980,7 +2999,7 @@ protected function getWebformSetting($name, $default_value = NULL) { ?: NULL; if ($value !== NULL) { - return $this->tokenManager->replace($value, $this->getEntity()); + return $this->tokenManager->replace($value, $this->getEntity(), [], [], $this->bubbleableMetadata); } else { return $default_value; diff --git a/web/modules/webform/src/WebformTokenManager.php b/web/modules/webform/src/WebformTokenManager.php index 309fc85062..1150414075 100644 --- a/web/modules/webform/src/WebformTokenManager.php +++ b/web/modules/webform/src/WebformTokenManager.php @@ -72,7 +72,11 @@ class WebformTokenManager implements WebformTokenManagerInterface { // Removes all HTML tags from the token's value. 'striptags', // URL encodes the token's value. + // @see https://www.php.net/manual/en/function.urlencode.php 'urlencode', + // Raw URL encodes the token's value. + // @see https://www.php.net/manual/en/function.rawurlencode.php + 'rawurlencode', // XML encodes the token's value. 'xmlencode', ]; @@ -340,7 +344,7 @@ public static function validateElement($element, FormStateInterface $form_state, } // Remove all suffixes which are not valid. - $pattern = '/\[(webform[^]]+)((?::' . implode('|:', static::$suffixes) . ')+)\]/'; + $pattern = '/\[((?:webform|current-user)[^]]+)((?::' . implode('|:', static::$suffixes) . ')+)\]/'; while (preg_match($pattern, $value)) { $value = preg_replace($pattern, '[\1]', $value); } @@ -446,6 +450,9 @@ protected function processSuffixes($text) { if (isset($suffixes['urlencode'])) { $replace = urlencode($replace); } + if (isset($suffixes['rawurlencode'])) { + $replace = rawurlencode($replace); + } // Encode xml. if (isset($suffixes['xmlencode'])) { $replace = htmlspecialchars($replace, ENT_XML1); diff --git a/web/modules/webform/src/WebformTranslationConfigManager.php b/web/modules/webform/src/WebformTranslationConfigManager.php index 15339ac55c..0652a8d425 100644 --- a/web/modules/webform/src/WebformTranslationConfigManager.php +++ b/web/modules/webform/src/WebformTranslationConfigManager.php @@ -265,14 +265,14 @@ protected function alterConfigWebformForm($config_name, &$config_element, &$form * {@inheritdoc} */ public static function validateWebformForm(&$form, FormStateInterface $form_state) { - if ($form_state::hasAnyErrors()) { + $source_elements = $form_state->get('webform_source_elements'); + if ($form_state::hasAnyErrors() || empty($source_elements)) { return; } $values = $form_state->getValues(); $config_name = $form_state->get('webform_config_name'); - $source_elements = $form_state->get('webform_source_elements'); $translation_elements = $values['translation']['config_names'][$config_name]['elements']; foreach ($translation_elements as $key => $element) { @@ -319,9 +319,13 @@ public static function validateWebformForm(&$form, FormStateInterface $form_stat * The current state of the form. */ protected function alterConfigWebformFormHandlers($config_name, &$config_element, &$form, $form_state) { - $webform = $this->loadWebform($config_name); - $handlers =& $config_element['handlers']; + // Verify if the webform has any handler. + if(!isset($handlers)){ + return; + } + + $webform = $this->loadWebform($config_name); foreach (Element::children($handlers) as $handler_id) { $handler = $webform->getHandler($handler_id); if (!$handler) { @@ -331,16 +335,18 @@ protected function alterConfigWebformFormHandlers($config_name, &$config_element // Apply custom logic to email body which can be twig, html, or text. if ($handler instanceof EmailWebformHandler) { $body_element =& NestedArray::getValue($config_element, ['handlers', $handler_id, 'settings', 'body']); - $configuration = $handler->getConfiguration(); - if (!empty($configuration['settings']['twig'])) { - $this->alterTextareaElement($body_element, 'twig'); - $body_element['translation']['#access'] = WebformTwigExtension::hasEditTwigAccess(); - } - elseif (!empty($configuration['settings']['html'])) { - $this->alterHtmlEditorElement($body_element); - } - else { - $this->alterTextareaElement($body_element, 'text'); + if ($body_element) { + $configuration = $handler->getConfiguration(); + if (!empty($configuration['settings']['twig'])) { + $this->alterTextareaElement($body_element, 'twig'); + $body_element['translation']['#access'] = WebformTwigExtension::hasEditTwigAccess(); + } + elseif (!empty($configuration['settings']['html'])) { + $this->alterHtmlEditorElement($body_element); + } + else { + $this->alterTextareaElement($body_element, 'text'); + } } } } @@ -1024,7 +1030,7 @@ protected function mergeTranslationAndSourceElementsProperties(array &$translati if ($translation_element === $source_element) { unset($translation_elements[$key]); } - elseif (is_array($translation_element)) { + elseif (is_array($translation_element) && is_array($source_element)) { $this->mergeTranslationAndSourceElementsProperties($translation_element, $source_element); if (empty($translation_element)) { unset($translation_elements[$key]); diff --git a/web/modules/webform/templates/webform-progress-tracker.html.twig b/web/modules/webform/templates/webform-progress-tracker.html.twig index 4d7715d164..f4cfbb736b 100644 --- a/web/modules/webform/templates/webform-progress-tracker.html.twig +++ b/web/modules/webform/templates/webform-progress-tracker.html.twig @@ -11,7 +11,7 @@ * - current_index: The current wizard page index. * - max_pages: Maximum number of pages that progress text should be displayed on. * - * @see template_preprocess_webform_progress_bar() + * @see template_preprocess_webform_progress_tracker() * @see https://www.w3.org/WAI/tutorials/forms/multi-page/ * * @ingroup themeable diff --git a/web/modules/webform/templates/webform-progress.html.twig b/web/modules/webform/templates/webform-progress.html.twig index fe634fa4c0..c55f01d567 100644 --- a/web/modules/webform/templates/webform-progress.html.twig +++ b/web/modules/webform/templates/webform-progress.html.twig @@ -7,7 +7,8 @@ * - webform: A webform. * - pages: Array of wizard pages. * - current_page: Current wizard page. - * - total_pages: Current wizard page. + * - index: Index of the current page. + * - total: Total number of pages. * - summary: Summary of progress. * - percentage: Percentage completed. * - bar: A progress bar. diff --git a/web/modules/webform/templates/webform-section.html.twig b/web/modules/webform/templates/webform-section.html.twig index 5a1aed5ecf..a29a8be9f8 100644 --- a/web/modules/webform/templates/webform-section.html.twig +++ b/web/modules/webform/templates/webform-section.html.twig @@ -13,6 +13,12 @@ * - description: The description element containing the following properties: * - content: The description content of the <fieldset>. * - attributes: HTML attributes to apply to the description container. + * - description_display: Description display setting. It can have these values: + * - before: The description is output before the element. + * - after: The description is output after the element. This is the default + * value. + * - invisible: The description is output after the element, hidden visually + * but available to screen readers. * - children: The rendered child elements of the <fieldset>. * - prefix: The content to add before the .section-wrapper children. * - suffix: The content to add after the .section-wrapper children. @@ -50,7 +56,7 @@ {{ errors }} </div> {% endif %} - {% if description.content %} + {% if description_display in ['before', 'invisible'] and description.content %} <div{{ description.attributes.addClass('description') }}>{{ description.content }}</div> {% endif %} {% if prefix %} @@ -60,5 +66,8 @@ {% if suffix %} <span class="field-suffix">{{ suffix }}</span> {% endif %} + {% if description_display == 'after' and description.content %} + <div{{ description.attributes.addClass('description') }}>{{ description.content }}</div> + {% endif %} </div> </section> diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax.yml index ef42f87560..cc42a9e140 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -20,7 +19,6 @@ elements: | '#title': textfield '#type': textfield '#required': true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_inline.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_inline.yml index c77c330077..56d9088682 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_inline.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_inline.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,7 +20,6 @@ elements: | test: '#type': textfield '#title': test - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_message.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_message.yml index dfa68cbf97..7990959301 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_message.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_message.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,7 +20,6 @@ elements: | test: '#type': textfield '#title': test - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_modal.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_modal.yml index eb75ecbe5f..b835ec6e0b 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_modal.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_modal.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,7 +20,6 @@ elements: | test: '#type': textfield '#title': test - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_page.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_page.yml index 4b7ede6d68..1933b14afa 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_page.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_page.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,7 +20,6 @@ elements: | test: '#type': textfield '#title': test - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_url.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_url.yml index 5c639a2f49..98f25cc5fd 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_url.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_url.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -18,7 +17,6 @@ category: 'Test: Ajax' elements: | description: '#markup': 'This webform will redirect to the homepage when submitted.' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_url_msg.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_url_msg.yml index dc3f2011f9..f303ac17f5 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_url_msg.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_ajax_confirmation_url_msg.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,7 +20,6 @@ elements: | test: '#type': textfield '#title': test - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite.yml index a04f93a4ba..a9334e633f 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -104,7 +103,6 @@ elements: | one: One two: Two three: Three - css: '' javascript: '' settings: @@ -292,5 +290,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_custom.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_custom.yml index 8f0333f761..226efaa588 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_custom.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_custom.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -66,7 +65,6 @@ elements: | martial_status: Single employment_status: Unemployed age: 20 - css: '' javascript: '' settings: @@ -254,5 +252,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_custom_file.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_custom_file.yml index f6803f5c39..19ed0e88d5 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_custom_file.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_custom_file.yml @@ -1,4 +1,3 @@ -uuid: b754b5b4-0b50-4a42-a23c-30f95cd9870e langcode: en status: open dependencies: @@ -37,7 +36,6 @@ elements: | managed_file: '#type': managed_file '#title': managed_file - css: '' javascript: '' settings: @@ -225,7 +223,9 @@ handlers: status: true conditions: { } weight: -49 - settings: { } + settings: + format: yaml + submission: false email: id: email label: Email @@ -264,5 +264,3 @@ handlers: theme_name: '' parameters: { } variants: { } -_core: - default_config_hash: l67ofWFfSw0nP4K6ZBRppS9Dv_uBzGiAeEUKwW7-IwA diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_format.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_format.yml index 3f093e151a..288f4fa9f6 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_format.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_format.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -90,12 +89,6 @@ elements: | text_format: '#type': details '#title': 'Text format' - text_format_plain_text: - '#type': text_format - '#title': 'Text format (Plain text)' - '#default_value': - value: '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Negat esse eam, inquit, propter se expetendam. Primum Theophrasti, Strato, physicum se voluit; Id mihi magnum videtur. Itaque mihi non satis videmini considerare quod iter sit naturae quaeque progressio. Quare hoc videndum est, possitne nobis hoc ratio philosophorum dare. Est enim tanti philosophi tamque nobilis audacter sua decreta defendere.</p>' - '#format': plain_text text_format_basic_html: '#type': text_format '#title': 'Text format (Basic HTML)' @@ -108,6 +101,12 @@ elements: | '#default_value': value: '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Negat esse eam, inquit, propter se expetendam. Primum Theophrasti, Strato, physicum se voluit; Id mihi magnum videtur. Itaque mihi non satis videmini considerare quod iter sit naturae quaeque progressio. Quare hoc videndum est, possitne nobis hoc ratio philosophorum dare. Est enim tanti philosophi tamque nobilis audacter sua decreta defendere.</p>' '#format': full_html + text_format_plain_text: + '#type': text_format + '#title': 'Text format (Plain text)' + '#default_value': + value: '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Negat esse eam, inquit, propter se expetendam. Primum Theophrasti, Strato, physicum se voluit; Id mihi magnum videtur. Itaque mihi non satis videmini considerare quod iter sit naturae quaeque progressio. Quare hoc videndum est, possitne nobis hoc ratio philosophorum dare. Est enim tanti philosophi tamque nobilis audacter sua decreta defendere.</p>' + '#format': plain_text text_format_restricted_html: '#type': text_format '#title': 'Text format (Restricted HTML)' @@ -456,7 +455,6 @@ elements: | q2: 1 q3: 1 '#format': table - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_format_multiple.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_format_multiple.yml index d8aa9dc978..43975e995e 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_format_multiple.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_composite_format_multiple.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -712,7 +711,6 @@ elements: | phone: '+1 212-333-4444' ext: 0 '#format_items': table - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_inline.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_inline.yml index 1423aab357..8a5af98181 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_inline.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_inline.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,7 +20,6 @@ elements: | test: '#type': textfield '#title': test - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_message.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_message.yml index 89f1c51f4c..893d866dcb 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_message.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_message.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,7 +20,6 @@ elements: | test: '#type': textfield '#title': test - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_modal.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_modal.yml index 60a5c9d136..649b73ac0d 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_modal.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_modal.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,7 +20,6 @@ elements: | test: '#type': textfield '#title': test - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_none.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_none.yml index b14794a09f..c31af3b6a0 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_none.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_none.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,7 +20,6 @@ elements: | test: '#type': textfield '#title': test - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page.yml index f29bd87998..eaee10f06a 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,7 +20,6 @@ elements: | test: '#type': textfield '#title': test - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page_custom.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page_custom.yml index a0f7375f3f..95e5d3bc56 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page_custom.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_page_custom.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,7 +20,6 @@ elements: | test: '#type': textfield '#title': test - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url.yml index ecb2191cfb..c4739e72e9 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -18,7 +17,6 @@ category: 'Test: Confirmation' elements: | description: '#markup': 'This webform will redirect to the homepage when submitted.' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url_message.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url_message.yml index b863824f46..065b11e720 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url_message.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_confirmation_url_message.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,7 +20,6 @@ elements: | test: '#type': textfield '#title': test - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element.yml index be11368670..bdcdfb32cc 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_access.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_access.yml index 4f1ce70da3..e9426a5f1a 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_access.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_access.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -120,7 +119,6 @@ elements: | fieldset_textfield_access: '#type': textfield '#title': fieldset_textfield_access - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_actions.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_actions.yml index 6a5284985d..8b61932753 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_actions.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_actions.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -158,7 +157,6 @@ elements: | '#draft_hide': true '#wizard_prev_hide': true '#wizard_next_hide': true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_actions_buttons.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_actions_buttons.yml index 2d2d3e16ca..aeffa9c303 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_actions_buttons.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_actions_buttons.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -59,7 +58,6 @@ elements: | class: - preview_next_button_attributes style: 'color: orange' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_address.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_address.yml index 1a763de1e9..7f9748ee9c 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_address.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_address.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -71,7 +70,6 @@ elements: | administrative_area: CA country_code: US langcode: en - css: '' javascript: '' settings: @@ -259,5 +257,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_allowed_tags.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_allowed_tags.yml index 744bc24841..e2d00ea8fe 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_allowed_tags.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_allowed_tags.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -20,7 +19,6 @@ elements: | '#type': item '#title': 'Below markup contains HTML tags' '#markup': 'Hello <ignored></tag><b>…Goodbye</b>' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_attributes.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_attributes.yml index 511d8d181d..7e2388bf23 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_attributes.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_attributes.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -33,7 +32,6 @@ elements: | - four style: 'color: red' custom: test - css: '' javascript: '' settings: @@ -221,5 +219,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_autocomplete.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_autocomplete.yml index 5edb86bc86..668ed1c857 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_autocomplete.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_autocomplete.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -38,7 +37,6 @@ elements: | '#autocomplete_existing': true '#autocomplete_limit': 5 '#autocomplete_match': 1 - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_captcha.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_captcha.yml index d633e00746..54c67447e4 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_captcha.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_captcha.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -41,7 +40,6 @@ elements: | captcha_recaptcha: '#type': captcha '#captcha_type': recaptcha/reCAPTCHA - css: '' javascript: '' settings: @@ -229,5 +227,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkbox.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkbox.yml index b320212f8e..1b0cf772e1 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkbox.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkbox.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -32,7 +31,6 @@ elements: | '#title': checkbox_return_value_raw '#return_value': custom_return_value_raw '#format': raw - css: '' javascript: '' settings: @@ -220,5 +218,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkbox_value.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkbox_value.yml index ac741769a5..ab1eab9ef2 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkbox_value.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkbox_value.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -35,7 +34,6 @@ elements: | One: One Two: Two Three: Three - css: '' javascript: '' settings: @@ -223,5 +221,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkboxes.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkboxes.yml index 07e6acb514..ee2bf963ac 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkboxes.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkboxes.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -103,8 +102,8 @@ elements: | '#options_display': buttons_horizontal '#options_description_display': description '#options': - one: 'One' - two: 'Two' + one: One + two: Two three: 'Three -- This is a description' checkboxes_buttons_vertical: '#type': checkboxes @@ -139,7 +138,7 @@ elements: | '#type': checkboxes '#title': checkboxes_buttons_wrapping '#options': - one: 'OneOneOneOneOneOneOne' + one: OneOneOneOneOneOneOne two: Two three: Three four: Four @@ -161,17 +160,17 @@ elements: | '#options__properties': two: '#wrapper_attributes': - 'data-custom': 'custom wrapper data' + data-custom: 'custom wrapper data' style: 'border: red 1px solid' class: - one-custom-wrapper-class '#label_attributes': - 'data-custom': 'custom label data' + data-custom: 'custom label data' style: 'border: blue 1px solid' class: - one-custom-label-class '#attributes': - 'data-custom': 'custom input data' + data-custom: 'custom input data' style: 'border: yellow 1px solid' class: - one-custom-class @@ -197,11 +196,11 @@ elements: | '#disabled': true checkboxes_other_options_properties: '#type': webform_checkboxes_other - '#title': checkboxes_other_options_properties + '#title': checkboxes_other_options_properties '#options': - one: 'One' - two: 'Two' - three: 'Three' + one: One + two: Two + three: Three '#options__properties': one: '#disabled': true @@ -209,7 +208,6 @@ elements: | '#disabled': true three: '#disabled': true - css: '' javascript: '' settings: @@ -397,5 +395,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkboxes_all_none.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkboxes_all_none.yml index b7604d50df..c6c757da68 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkboxes_all_none.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_checkboxes_all_none.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,26 +20,26 @@ elements: | '#title': checkboxes_all '#options_all': true '#options': - one: 'One' - two: 'Two' - three: 'Three' + one: One + two: Two + three: Three checkboxes_none: '#type': checkboxes '#title': checkboxes_none '#options_none': true '#options': - one: 'One' - two: 'Two' - three: 'Three' + one: One + two: Two + three: Three checkboxes_both: '#type': checkboxes '#title': checkboxes_both '#options_all': true '#options_none': true '#options': - one: 'One' - two: 'Two' - three: 'Three' + one: One + two: Two + three: Three checkboxes_randomize: '#type': checkboxes '#title': checkboxes_randomize @@ -48,17 +47,17 @@ elements: | '#options_all': true '#options_none': true '#options': - one: 'One' - two: 'Two' - three: 'Three' + one: One + two: Two + three: Three checkboxes_other_none: '#type': webform_checkboxes_other '#title': checkboxes_other_none '#options_none': true '#options': - one: 'One' - two: 'Two' - three: 'Three' + one: One + two: Two + three: Three webform_entity_checkboxes_all: '#type': webform_entity_checkboxes '#title': webform_entity_checkboxes_all @@ -69,7 +68,6 @@ elements: | include_anonymous: true '#default_value': - 1 - css: '' javascript: '' settings: @@ -257,5 +255,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_codemirror.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_codemirror.yml index 0a3af32ec4..7fbb1c5d2b 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_codemirror.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_codemirror.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -32,12 +31,13 @@ elements: | '#title': text_basic_min_max_height '#wrap': false '#default_value': | - Pellentesque habitant morbi tristique senectus - et netus et malesuada fames ac turpis egestas. - Vestibulum tortor quam, feugiat vitae, ultricies - eget, tempor sit amet, ante. - Donec eu libero sit amet quam egestas semper. Aenean - ultricies mi vitae est. Mauris placerat eleifend leo. + Pellentesque habitant morbi tristique senectus + et netus et malesuada fames ac turpis egestas. + Vestibulum tortor quam, feugiat vitae, ultricies + eget, tempor sit amet, ante. + Donec eu libero sit amet quam egestas semper. Aenean + ultricies mi vitae est. Mauris placerat eleifend leo. + '#attributes': style: 'min-height:100px; max-height:200px' yaml_basic: @@ -93,16 +93,15 @@ elements: | </script> </body> </html> - + twig_basic: '#type': webform_codemirror '#mode': twig '#title': twig_basic '#default_value': | - + {% set value = "Hello" %} {{ value }} - css: '' javascript: '' settings: @@ -290,5 +289,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_composite.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_composite.yml index 77ab27da8a..78e0c3fee2 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_composite.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_composite.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -58,7 +57,6 @@ elements: | '#field_suffix': ' yrs. old' '#min': 1 '#max': 125 - css: '' javascript: '' settings: @@ -246,5 +244,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_composite_wrapper.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_composite_wrapper.yml index 0fcf6e1a66..5a60c0b025 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_composite_wrapper.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_composite_wrapper.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -134,7 +133,6 @@ elements: | visible: ':input[name="states_checkbox"]': checked: true - css: '' javascript: '' settings: @@ -322,5 +320,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_ajax.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_ajax.yml index c4bbd047d3..339b4afdb0 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_ajax.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_ajax.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -51,7 +50,7 @@ elements: | Please enter a value for a and b. {% endif %} {% endspaceless %} - + webform_computed_twig_token: '#type': webform_computed_twig '#title': webform_computed_twig_token @@ -66,7 +65,7 @@ elements: | Please enter a value for a and b. {% endif %} {% endspaceless %} - + horizontal_rule: '#type': webform_horizontal_rule composite: @@ -89,9 +88,8 @@ elements: | Please enter a value for composite textfield. {% endif %} {% endspaceless %} - + '#ajax': true - css: '' javascript: '' settings: @@ -279,5 +277,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_debug.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_debug.yml index 215dcfa579..ce2de25780 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_debug.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_debug.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -60,6 +59,7 @@ elements: | {# data.select_other_01 #} {# data.datelist_01 #} <pre>{{ webform_debug(data|without('computed_twig_data_01', 'computed_twig_data_ajax_01', 'computed_twig_data_02', 'computed_twig_data_ajax_02', 'computed_twig_data_03', 'computed_twig_data_ajax_03') ) }}</pre> + '#ajax': true page_02: '#type': webform_wizard_page @@ -105,6 +105,7 @@ elements: | {# data.select_other_02 #} {# data.datelist_02 #} <pre>{{ webform_debug(data|without('computed_twig_data_01', 'computed_twig_data_ajax_01', 'computed_twig_data_02', 'computed_twig_data_ajax_02', 'computed_twig_data_03', 'computed_twig_data_ajax_03') ) }}</pre> + '#ajax': true page_03: '#type': webform_wizard_page @@ -141,7 +142,7 @@ elements: | '#type': webform_computed_twig '#title': computed_twig_data_03 '#template': '<pre>{{ webform_debug(data|without(''computed_twig_data_01'', ''computed_twig_data_ajax_01'', ''computed_twig_data_02'', ''computed_twig_data_ajax_02'', ''computed_twig_data_03'', ''computed_twig_data_ajax_03'') ) }}</pre>' - computed_twig_data_ajax_01: + computed_twig_data_ajax_03: '#type': webform_computed_twig '#title': computed_twig_data_ajax_03 '#template': | @@ -150,8 +151,8 @@ elements: | {# data.select_other_03 #} {# data.datelist_03 #} <pre>{{ webform_debug(data|without('computed_twig_data_01', 'computed_twig_data_ajax_01', 'computed_twig_data_02', 'computed_twig_data_ajax_02', 'computed_twig_data_03', 'computed_twig_data_ajax_03') ) }}</pre> + '#ajax': true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_token.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_token.yml index 20853c7ca0..eedf757dc5 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_token.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_token.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -30,7 +29,7 @@ elements: | '#default_value': | <p>This is a <strong>text format</strong> string.</p> <p>It contains "double" and 'single' quotes with special characters like <, >, <>, and ><.</p> - + xss: '#type': textfield '#title': xss @@ -43,7 +42,7 @@ elements: | <b class="webform_computed_token_auto">complex string :</b> [webform_submission:values:complex_string]<br /> <b class="webform_computed_token_auto">text_format:</b> [webform_submission:values:text_format]<br /> <b class="webform_computed_token_auto">xss:</b> [webform_submission:values:xss]<br /> - + webform_computed_token_html: '#type': webform_computed_token '#title': webform_computed_token_html @@ -53,7 +52,7 @@ elements: | <b class="webform_computed_token_html">complex string :</b> [webform_submission:values:complex_string]<br /> <b class="webform_computed_token_html">text_format:</b> [webform_submission:values:text_format]<br /> <b class="webform_computed_token_html">xss:</b> [webform_submission:values:xss]<br /> - + webform_computed_token_text: '#type': webform_computed_token '#title': webform_computed_token_text @@ -63,7 +62,7 @@ elements: | complex string : [webform_submission:values:complex_string] text_format: [webform_submission:values:text_format] xss: [webform_submission:values:xss] - + webform_computed_token_store: '#type': webform_computed_token '#title': webform_computed_token_store @@ -71,7 +70,6 @@ elements: | '#display_on': none '#store': true '#template': 'sid: [webform_submission:sid]' - css: '' javascript: '' settings: @@ -259,5 +257,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_twig.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_twig.yml index ca8000dd14..54d19bf031 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_twig.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_computed_twig.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -34,7 +33,7 @@ elements: | '#default_value': | <p>This is a <strong>text format</strong> string.</p> <p>It contains "double" and 'single' quotes with special characters like <, >, <>, and ><.</p> - + xss: '#type': textfield '#title': xss @@ -48,7 +47,7 @@ elements: | <b class="webform_computed_twig_auto">complex string:</b> {{ webform_token('[webform_submission:values:complex_string]', webform_submission) }}<br /> <b class="webform_computed_twig_auto">text_format:</b> {{ webform_token('[webform_submission:values:text_format]', webform_submission) }}<br /> <b class="webform_computed_twig_auto">xss:</b> {{ webform_token('[webform_submission:values:xss]', webform_submission) }}<br /> - + webform_computed_twig_html: '#type': webform_computed_twig '#title': webform_computed_twig_html @@ -59,7 +58,7 @@ elements: | <b class="webform_computed_twig_html">complex string:</b> {{ webform_token('[webform_submission:values:complex_string]', webform_submission) }}<br /> <b class="webform_computed_twig_html">text_format:</b> {{ webform_token('[webform_submission:values:text_format]', webform_submission) }}<br /> <b class="webform_computed_twig_html">xss:</b> {{ webform_token('[webform_submission:values:xss]', webform_submission) }}<br /> - + webform_computed_twig_text: '#type': webform_computed_twig '#title': webform_computed_twig_text @@ -70,7 +69,7 @@ elements: | complex string: {{ webform_token('[webform_submission:values:complex_string]', webform_submission) }} text_format: {{ webform_token('[webform_submission:values:text_format]', webform_submission) }} xss: {{ webform_token('[webform_submission:values:xss]', webform_submission) }} - + webform_computed_twig_data: '#type': webform_computed_twig '#title': webform_computed_twig_data @@ -80,7 +79,7 @@ elements: | <b class="webform_computed_twig_data">complex string:</b> {{ data.complex_string }}<br /> <b class="webform_computed_twig_data">text_format:</b> {{ data.text_format.value }}<br /> <b class="webform_computed_twig_data">xss:</b> {{ data.xss }}<br /> - + webform_computed_twig_store: '#type': webform_computed_twig '#title': webform_computed_twig_store @@ -98,7 +97,6 @@ elements: | '#title': webform_computed_twig_spaceless '#whitespace': spaceless '#template': ' <em>This is spaceless</em> <br/> ' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_container.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_container.yml index fd216f8544..fe3fb07a63 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_container.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_container.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -40,11 +39,11 @@ elements: | '#description': 'This is a details_closed description.' '#open': false '#format': details-closed - details_value: + details_closed_value: '#markup': 'This is a details_closed value.' - details_textfield: + details_closed_textfield: '#type': textfield - '#title': details_textfield + '#title': details_closed_textfield details_title_display_invisible: '#type': details '#title': details_title_display_invisible @@ -75,7 +74,6 @@ elements: | fieldset_title_display_invisible_textfield: '#type': textfield '#title': fieldset_title_display_invisible_textfield - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_counter.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_counter.yml index 9ea4a61076..407f9ce5cb 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_counter.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_counter.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -50,13 +49,12 @@ elements: | '#counter_maximum_message': '%d character(s) remaining. This is custom text' counter_characters_xss: '#type': textfield - '#title': 'counter_characters_xss' + '#title': counter_characters_xss '#counter_type': character '#counter_minimum': 5 '#counter_maximum': 10 '#counter_minimum_message': '<script>alert(''XSS'');</script><em>%d</em> character(s) entered.' '#counter_maximum_message': '<script>alert(''XSS'');</script><em>%d</em> character(s) remaining.' - counter_word: '#type': details '#title': counter_word @@ -89,7 +87,6 @@ elements: | '#counter_type': word '#counter_maximum': 10 '#counter_maximum_message': '%d character(s) remaining. This is custom text' - css: '' javascript: '' settings: @@ -277,5 +274,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_date.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_date.yml index dab50fcd62..7266cf29a6 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_date.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_date.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -83,7 +82,6 @@ elements: | '#title': date_datepicker_placeholder '#datepicker': true '#placeholder': '{date}' - css: '' javascript: '' settings: @@ -271,5 +269,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_datelist.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_datelist.yml index 34abeabde2..258f91c533 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_datelist.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_datelist.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -96,7 +95,6 @@ elements: | '#title': datelist '#default_value': - datelist: '2009-08-18T01:00:00-05:00' - css: '' javascript: '' settings: @@ -284,5 +282,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_datetime.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_datetime.yml index 7ff34363c4..a42d67ab34 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_datetime.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_datetime.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -124,7 +123,7 @@ elements: | '#description': | @see <a href="https://www.drupal.org/node/2917107">Issue #2917107: Date and Time validation problem</a><br/> @see <a href="https://www.drupal.org/node/2723159">Issue #2723159: Datetime form element cannot validate when using a format without seconds</a><br/> - + '#date_date_element': datepicker '#date_time_element': text '#date_time_format': 'H:i' @@ -154,7 +153,6 @@ elements: | '#autocomplete': 'off' '#default_value': - datetime: '2009-08-18T01:00:00-05:00' - css: '' javascript: '' settings: @@ -342,5 +340,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_description_tooltip.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_description_tooltip.yml index bf23a1a463..940b14586a 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_description_tooltip.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_description_tooltip.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -76,6 +75,11 @@ elements: | '#title': 'Email multiple' '#description': 'This is a description for the ''webform_email_multiple'' element.' '#description_display': tooltip + webform_height: + '#type': webform_height + '#title': 'Height (feet/inches)' + '#description': 'This is a description for the ''webform_height'' element.' + '#description_display': tooltip webform_mapping: '#type': webform_mapping '#title': Mapping @@ -118,6 +122,18 @@ elements: | '#title': Rating '#description': 'This is a description for the ''webform_rating'' element.' '#description_display': tooltip + webform_same: + '#type': webform_same + '#title': 'Billing address is the same as the shipping address' + '#description': 'This is a description for the ''webform_same'' element.' + '#description_display': tooltip + webform_scale: + '#type': webform_scale + '#title': Scale + '#min': 1 + '#max': 5 + '#description': 'This is a description for the ''webform_scale'' element.' + '#description_display': tooltip search: '#type': search '#title': Search @@ -228,24 +244,6 @@ elements: | '#type': details '#title': 'Options elements' '#open': true - webform_buttons: - '#type': webform_buttons - '#title': Buttons - '#options': - one: One - two: Two - three: Three - '#description': 'This is a description for the ''webform_buttons'' element.' - '#description_display': tooltip - webform_buttons_other: - '#type': webform_buttons_other - '#title': 'Buttons other' - '#options': - one: One - two: Two - three: Three - '#description': 'This is a description for the ''webform_buttons_other'' element.' - '#description_display': tooltip checkboxes: '#type': checkboxes '#title': Checkboxes @@ -333,6 +331,33 @@ elements: | three: Three '#description': 'This is a description for the ''webform_select_other'' element.' '#description_display': tooltip + tableselect: + '#type': tableselect + '#title': 'Table select' + '#options': + one: One + two: Two + three: Three + '#description': 'This is a description for the ''tableselect'' element.' + '#description_display': tooltip + webform_tableselect_sort: + '#type': webform_tableselect_sort + '#title': 'Tableselect sort' + '#options': + one: One + two: Two + three: Three + '#description': 'This is a description for the ''webform_tableselect_sort'' element.' + '#description_display': tooltip + webform_table_sort: + '#type': webform_table_sort + '#title': 'Table sort' + '#options': + one: One + two: Two + three: Three + '#description': 'This is a description for the ''webform_table_sort'' element.' + '#description_display': tooltip computed_elements: '#type': details '#title': 'Computed Elements' @@ -453,6 +478,28 @@ elements: | '#field_suffix': '{field_suffix}' '#description': 'This is a description for the ''item'' element.' '#description_display': tooltip + webform_section: + '#type': webform_section + '#title': Section + '#description': 'This is a description for the ''webform_section'' element.' + '#description_display': tooltip + webform_table: + '#type': table + '#header': + - 'Header 1' + - 'Header 2' + '#rows': + - + - 'Row 1 - Col 1' + - 'Row 1 - Col 2' + - + - 'Row 2 - Col 1' + - 'Row 2 - Col 2' + - + - 'Row 3 - Col 1' + - 'Row 3 - Col 2' + '#description': 'This is a description for the ''webform_table'' element.' + '#description_display': tooltip other_elements: '#type': details '#title': 'Other elements' @@ -467,7 +514,6 @@ elements: | '#title': 'Machine name' '#description': 'This is a description for the ''machine_name'' element.' '#description_display': tooltip - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_details.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_details.yml index 5dac93a9dd..8b398240e7 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_details.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_details.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -47,7 +46,6 @@ elements: | '#open': true details_help_markup: '#markup': '<p>This is some markup</p>' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_disabled.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_disabled.yml index 87de03c733..8d947bd1e7 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_disabled.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_disabled.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -28,22 +27,6 @@ elements: | '#type': webform_autocomplete '#title': Autocomplete '#disabled': true - webform_buttons: - '#type': webform_buttons - '#title': Buttons - '#options': - one: One - two: Two - three: Three - '#disabled': true - webform_buttons_other: - '#type': webform_buttons_other - '#title': 'Buttons other' - '#options': - one: One - two: Two - three: Three - '#disabled': true checkbox: '#type': checkbox '#title': Checkbox @@ -174,6 +157,10 @@ elements: | '#title': File '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/2705471">Issue #2705471: Webform states managed file fields</a><br /><a href="https://www.drupal.org/node/2113931">Issue #2113931: File Field design update</a><br /><a href="https://www.drupal.org/node/2346893">Issue #2346893: Duplicate Ajax wrapper around a file field</a><br /><a href="https://www.drupal.org/node/2482783">Issue #2482783: File upload errors not set or shown correctly</a>' '#disabled': true + webform_height: + '#type': webform_height + '#title': 'Height (feet/inches)' + '#disabled': true webform_image_file: '#type': webform_image_file '#title': 'Image file' @@ -271,6 +258,16 @@ elements: | '#type': webform_rating '#title': Rating '#disabled': true + webform_same: + '#type': webform_same + '#title': 'Billing address is the same as the shipping address' + '#disabled': true + webform_scale: + '#type': webform_scale + '#title': Scale + '#min': 1 + '#max': 5 + '#disabled': true search: '#type': search '#title': Search @@ -292,6 +289,10 @@ elements: | two: Two three: Three '#disabled': true + webform_signature: + '#type': webform_signature + '#title': Signature + '#disabled': true tableselect: '#type': tableselect '#title': 'Table select' @@ -364,7 +365,6 @@ elements: | '#type': webform_video_file '#title': 'Video file' '#disabled': true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_email_confirm.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_email_confirm.yml index 0a2bdbf9da..e30e653d0c 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_email_confirm.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_email_confirm.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -38,12 +37,11 @@ elements: | '#title': email_confirm_required '#required': true '#required_error': 'Email address is required' - '#default_value': 'example@example.com' + '#default_value': example@example.com email_confirm_flexbox: '#type': webform_email_confirm '#title': email_confirm_flexbox '#flexbox': 1 - css: '' javascript: '' settings: @@ -231,5 +229,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_email_multiple.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_email_multiple.yml index 273cbce47f..1f0938b711 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_email_multiple.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_email_multiple.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -28,7 +27,6 @@ elements: | '#type': webform_email_multiple '#title': email_multiple_three '#cardinality': 3 - css: '' javascript: '' settings: @@ -216,5 +214,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_entity_autocomplete.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_entity_autocomplete.yml index 05350ba092..4f4ee7c2d5 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_entity_autocomplete.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_entity_autocomplete.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -86,7 +85,6 @@ elements: | auto_create: true auto_create_bundle: tags '#default_value': 1 - css: '' javascript: '' settings: @@ -274,5 +272,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_entity_reference.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_entity_reference.yml index 4ea336b2b8..027b8dc127 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_entity_reference.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_entity_reference.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -63,7 +62,6 @@ elements: | include_anonymous: true '#default_value': - 1 - css: '' javascript: '' settings: @@ -251,5 +249,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_excluded_columns.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_excluded_columns.yml index 572e1e6ebf..4e045b14e6 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_excluded_columns.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_excluded_columns.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -30,7 +29,6 @@ elements: | '#title': webform_excluded_columns '#default_value': webform_excluded_columns: webform_excluded_columns - css: '' javascript: '' settings: @@ -218,5 +216,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_excluded_elements.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_excluded_elements.yml index 8c3e0f9564..d82f2e4d39 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_excluded_elements.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_excluded_elements.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -38,7 +37,6 @@ elements: | '#default_value': webform_excluded_elements: webform_excluded_elements webform_excluded_elements_markup: webform_excluded_elements_markup - css: '' javascript: '' settings: @@ -226,5 +224,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_fieldset.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_fieldset.yml index 0e16d86eb8..18553ad018 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_fieldset.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_fieldset.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -61,7 +60,6 @@ elements: | '#field_suffix': suffix fieldset_markup: '#markup': '<p>This is some markup</p>' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox.yml index 06447995d6..e2748475f7 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -58,6 +57,38 @@ elements: | flex_table_right: '#type': table '#title': 'Table 02' + flexbox_webform_table: + '#type': webform_flexbox + flex_webform_table_left: + '#type': table + '#header': + - 'Header 1' + - 'Header 2' + '#rows': + - + - 'Row 1 - Col 1' + - 'Row 1 - Col 2' + - + - 'Row 2 - Col 1' + - 'Row 2 - Col 2' + - + - 'Row 3 - Col 1' + - 'Row 3 - Col 2' + flex_webform_table_right: + '#type': table + '#header': + - 'Header 1' + - 'Header 2' + '#rows': + - + - 'Row 1 - Col 1' + - 'Row 1 - Col 2' + - + - 'Row 2 - Col 1' + - 'Row 2 - Col 2' + - + - 'Row 3 - Col 1' + - 'Row 3 - Col 2' flexbox_webform_address: '#type': webform_flexbox flex_webform_address_left: @@ -108,49 +139,21 @@ elements: | '#type': webform_markup '#title': 'Basic HTML 02' '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/2700667">Issue #2700667: Notice: Undefined index: #type in drupal_process_states()</a>' - flexbox_webform_buttons: - '#type': webform_flexbox - flex_webform_buttons_left: - '#type': webform_buttons - '#title': 'Buttons 01' - '#options': - one: One - two: Two - three: Three - flex_webform_buttons_right: - '#type': webform_buttons - '#title': 'Buttons 02' - '#options': - one: One - two: Two - three: Three - flexbox_webform_buttons_other: - '#type': webform_flexbox - flex_webform_buttons_other_left: - '#type': webform_buttons_other - '#title': 'Buttons other 01' - '#options': - one: One - two: Two - three: Three - flex_webform_buttons_other_right: - '#type': webform_buttons_other - '#title': 'Buttons other 02' - '#options': - one: One - two: Two - three: Three flexbox_captcha: '#type': webform_flexbox flex_captcha_left: '#type': captcha '#title': 'CAPTCHA 01' '#captcha_admin_mode': true + '#captcha_info': + form_id: '' '#captcha_type': image_captcha/Image flex_captcha_right: '#type': captcha '#title': 'CAPTCHA 02' '#captcha_admin_mode': true + '#captcha_info': + form_id: '' '#captcha_type': image_captcha/Image flexbox_checkbox: '#type': webform_flexbox @@ -432,6 +435,14 @@ elements: | '#type': managed_file '#title': 'File 02' '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/2705471">Issue #2705471: Webform states managed file fields</a><br /><a href="https://www.drupal.org/node/2113931">Issue #2113931: File Field design update</a><br /><a href="https://www.drupal.org/node/2346893">Issue #2346893: Duplicate Ajax wrapper around a file field</a><br /><a href="https://www.drupal.org/node/2482783">Issue #2482783: File upload errors not set or shown correctly</a>' + flexbox_webform_height: + '#type': webform_flexbox + flex_webform_height_left: + '#type': webform_height + '#title': 'Height (feet/inches) 01' + flex_webform_height_right: + '#type': webform_height + '#title': 'Height (feet/inches) 02' flexbox_webform_horizontal_rule: '#type': webform_flexbox flex_webform_horizontal_rule_left: @@ -602,6 +613,16 @@ elements: | '#message_type': warning '#message_message': 'This is a <strong>warning</strong> message.' '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/77245">Issue #77245: A place for JavaScript status messages</a>' + flexbox_webform_more: + '#type': webform_flexbox + flex_webform_more_left: + '#type': webform_more + '#title': 'More 01' + '#more': 'This is more content' + flex_webform_more_right: + '#type': webform_more + '#title': 'More 02' + '#more': 'This is more content' flexbox_webform_name: '#type': webform_flexbox flex_webform_name_left: @@ -708,6 +729,26 @@ elements: | flex_webform_rating_right: '#type': webform_rating '#title': 'Rating 02' + flexbox_webform_same: + '#type': webform_flexbox + flex_webform_same_left: + '#type': webform_same + '#title': 'Billing address is the same as the shipping address 01' + flex_webform_same_right: + '#type': webform_same + '#title': 'Billing address is the same as the shipping address 02' + flexbox_webform_scale: + '#type': webform_flexbox + flex_webform_scale_left: + '#type': webform_scale + '#title': 'Scale 01' + '#min': 1 + '#max': 5 + flex_webform_scale_right: + '#type': webform_scale + '#title': 'Scale 02' + '#min': 1 + '#max': 5 flexbox_search: '#type': webform_flexbox flex_search_left: @@ -928,28 +969,15 @@ elements: | '#type': webform_flexbox '#align_items': flex-end toggle: - '#type': webform_toggle + '#type': toggle '#title': toggle toggle_textfield: '#type': textfield '#title': textfield '#flex': 5 toggle_rating: - '#type': webform_rating + '#type': rating '#title': rating - flexbox_inline_title: - '#type': webform_flexbox - flexbox_inline_title_textfield_01: - '#type': textfield - '#title': 'textfield 01' - '#title_display': inline - '#size': 20 - flexbox_inline_title_textfield_02: - '#type': textfield - '#title': 'textfield 02' - '#title_display': inline - '#size': 20 - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox_flex.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox_flex.yml index 14b4e72663..56080f24fd 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox_flex.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_flexbox_flex.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -806,7 +805,6 @@ elements: | style: 'padding: 30px; background: #ccc; text-align: center' flex: '#markup': 1 - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format.yml index 01de1209e9..cde553dfd7 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -30,21 +29,9 @@ elements: | '#format': value checkbox_raw: '#type': checkbox - '#title': 'Checkbox (Raw value)' + '#title': 'Checkbox (Raw/return value)' '#default_value': true '#format': raw - radios: - '#type': details - '#title': Radios - radios_description: - '#type': radios - '#title': 'Radios (Description)' - '#default_value': one - '#format': description - '#options': - one: 'One -- This is the <strong>first</strong> description' - two: 'Two -- This is the <strong>second</strong> description' - three: 'Three -- This is <strong>third</strong> description' password: '#type': details '#title': Password @@ -201,6 +188,19 @@ elements: | '#title': 'Email multiple (Link)' '#default_value': 'example@example.com, test@test.com, random@random.com' '#format': link + webform_height: + '#type': details + '#title': 'Height (feet/inches)' + webform_height_value: + '#type': webform_height + '#title': 'Height (feet/inches) (Value)' + '#default_value': 48 + '#format': value + webform_height_raw: + '#type': webform_height + '#title': 'Height (feet/inches) (Raw value)' + '#default_value': 48 + '#format': raw number: '#type': details '#title': Number @@ -274,6 +274,23 @@ elements: | '#type': webform_rating '#title': 'Rating (Star)' '#format': star + webform_scale: + '#type': details + '#title': Scale + webform_scale_value: + '#type': webform_scale + '#title': 'Scale (Value)' + '#min': 1 + '#max': 5 + '#default_value': 1 + '#format': value + webform_scale_raw: + '#type': webform_scale + '#title': 'Scale (Raw value)' + '#min': 1 + '#max': 5 + '#default_value': 1 + '#format': raw search: '#type': details '#title': Search @@ -339,7 +356,7 @@ elements: | '#format': value webform_terms_of_service_raw: '#type': webform_terms_of_service - '#title': 'I agree to the {terms of service}. (Raw value)' + '#title': 'I agree to the {terms of service}. (Raw/return value)' '#required': true '#terms_type': slideout '#terms_content': '<em>These are the terms of service.</em>' @@ -380,20 +397,20 @@ elements: | '#type': details '#title': 'File attachment elements' '#open': true - 'webform_entity_print_attachment:pdf': + webform_entity_print_attachment_pdf: '#type': details '#title': 'Attachment PDF' - 'webform_entity_print_attachment:pdf_link': + webform_entity_print_attachment_pdf_link: '#type': webform_entity_print_attachment '#title': 'Attachment PDF (File link)' '#default_value': Loremipsum '#format': link - 'webform_entity_print_attachment:pdf_name': + webform_entity_print_attachment_pdf_name: '#type': webform_entity_print_attachment '#title': 'Attachment PDF (File name)' '#default_value': Loremipsum '#format': name - 'webform_entity_print_attachment:pdf_url': + webform_entity_print_attachment_pdf_url: '#type': webform_entity_print_attachment '#title': 'Attachment PDF (File URL)' '#default_value': Loremipsum @@ -443,191 +460,6 @@ elements: | '#type': webform_attachment_url '#title': 'Attachment URL (File URL)' '#format': url - options_elements: - '#type': details - '#title': 'Options elements' - '#open': true - webform_buttons: - '#type': details - '#title': Buttons - webform_buttons_value: - '#type': webform_buttons - '#title': 'Buttons (Value)' - '#options': - one: One - two: Two - three: Three - '#default_value': one - '#format': value - webform_buttons_raw: - '#type': webform_buttons - '#title': 'Buttons (Raw value)' - '#options': - one: One - two: Two - three: Three - '#default_value': one - '#format': raw - webform_buttons_other: - '#type': details - '#title': 'Buttons other' - webform_buttons_other_value: - '#type': webform_buttons_other - '#title': 'Buttons other (Value)' - '#options': - one: One - two: Two - three: Three - '#default_value': one - '#format': value - webform_buttons_other_raw: - '#type': webform_buttons_other - '#title': 'Buttons other (Raw value)' - '#options': - one: One - two: Two - three: Three - '#default_value': one - '#format': raw - webform_image_select: - '#type': details - '#title': 'Image select' - webform_image_select_value: - '#type': webform_image_select - '#title': 'Image select (Value)' - '#show_label': true - '#images': - dog_1: - text: 'Dog 1' - src: 'https://www.placedog.net/80/100' - dog_2: - text: 'Dog 2' - src: 'https://www.placedog.net/100/100' - dog_3: - text: 'Dog 3' - src: 'https://www.placedog.net/120/100' - '#default_value': Loremipsum - '#format': value - webform_image_select_raw: - '#type': webform_image_select - '#title': 'Image select (Raw value)' - '#show_label': true - '#images': - dog_1: - text: 'Dog 1' - src: 'https://www.placedog.net/80/100' - dog_2: - text: 'Dog 2' - src: 'https://www.placedog.net/100/100' - dog_3: - text: 'Dog 3' - src: 'https://www.placedog.net/120/100' - '#default_value': Loremipsum - '#format': raw - webform_image_select_image: - '#type': webform_image_select - '#title': 'Image select (Image)' - '#show_label': true - '#images': - dog_1: - text: 'Dog 1' - src: 'https://www.placedog.net/80/100' - dog_2: - text: 'Dog 2' - src: 'https://www.placedog.net/100/100' - dog_3: - text: 'Dog 3' - src: 'https://www.placedog.net/120/100' - '#default_value': Loremipsum - '#format': image - radios: - '#type': details - '#title': Radios - radios_value: - '#type': radios - '#title': 'Radios (Value)' - '#options': - one: One - two: Two - three: Three - '#options_display': side_by_side - '#default_value': one - '#format': value - radios_raw: - '#type': radios - '#title': 'Radios (Raw value)' - '#options': - one: One - two: Two - three: Three - '#options_display': side_by_side - '#default_value': one - '#format': raw - webform_radios_other: - '#type': details - '#title': 'Radios other' - webform_radios_other_value: - '#type': webform_radios_other - '#title': 'Radios other (Value)' - '#options': - one: One - two: Two - three: Three - '#options_display': side_by_side - '#default_value': one - '#format': value - webform_radios_other_raw: - '#type': webform_radios_other - '#title': 'Radios other (Raw value)' - '#options': - one: One - two: Two - three: Three - '#options_display': side_by_side - '#default_value': one - '#format': raw - select: - '#type': details - '#title': Select - select_value: - '#type': select - '#title': 'Select (Value)' - '#options': - one: One - two: Two - three: Three - '#default_value': one - '#format': value - select_raw: - '#type': select - '#title': 'Select (Raw value)' - '#options': - one: One - two: Two - three: Three - '#default_value': one - '#format': raw - webform_select_other: - '#type': details - '#title': 'Select other' - webform_select_other_value: - '#type': webform_select_other - '#title': 'Select other (Value)' - '#options': - one: One - two: Two - three: Three - '#default_value': one - '#format': value - webform_select_other_raw: - '#type': webform_select_other - '#title': 'Select other (Raw value)' - '#options': - one: One - two: Two - three: Three - '#default_value': one - '#format': raw computed_elements: '#type': details '#title': 'Computed Elements' @@ -675,16 +507,21 @@ elements: | '#title': 'Date (Raw value)' '#default_value': '1942-06-18' '#format': raw - date_fallback: - '#type': date - '#title': 'Date (Fallback date format)' - '#default_value': '1942-06-18' - '#format': fallback date_html_date: '#type': date '#title': 'Date (HTML Date)' '#default_value': '1942-06-18' '#format': html_date + date_html_time: + '#type': date + '#title': 'Date (HTML Time)' + '#default_value': '1942-06-18' + '#format': html_time + date_fallback: + '#type': date + '#title': 'Date (Fallback date format)' + '#default_value': '1942-06-18' + '#format': fallback date_html_datetime: '#type': date '#title': 'Date (HTML Datetime)' @@ -695,11 +532,6 @@ elements: | '#title': 'Date (HTML Month)' '#default_value': '1942-06-18' '#format': html_month - date_html_time: - '#type': date - '#title': 'Date (HTML Time)' - '#default_value': '1942-06-18' - '#format': html_time date_html_week: '#type': date '#title': 'Date (HTML Week)' @@ -893,7 +725,7 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true - '#default_value': 11 + '#default_value': 1 '#format': value entity_autocomplete_raw: '#type': entity_autocomplete @@ -902,7 +734,7 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true - '#default_value': 11 + '#default_value': 1 '#format': raw entity_autocomplete_link: '#type': entity_autocomplete @@ -911,7 +743,7 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true - '#default_value': 11 + '#default_value': 1 '#format': link entity_autocomplete_id: '#type': entity_autocomplete @@ -920,7 +752,7 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true - '#default_value': 11 + '#default_value': 1 '#format': id entity_autocomplete_label: '#type': entity_autocomplete @@ -929,7 +761,7 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true - '#default_value': 11 + '#default_value': 1 '#format': label entity_autocomplete_text: '#type': entity_autocomplete @@ -938,7 +770,7 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true - '#default_value': 11 + '#default_value': 1 '#format': text entity_autocomplete_teaser: '#type': entity_autocomplete @@ -947,7 +779,7 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true - '#default_value': 11 + '#default_value': 1 '#format': teaser entity_autocomplete_default: '#type': entity_autocomplete @@ -956,7 +788,7 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true - '#default_value': 11 + '#default_value': 1 '#format': default webform_entity_radios: '#type': details @@ -987,6 +819,19 @@ elements: | 0: Anonymous '#default_value': 1 '#format': raw + webform_entity_radios_description: + '#type': webform_entity_radios + '#title': 'Entity radios (Option description)' + '#options_display': side_by_side + '#target_type': user + '#selection_handler': 'default:user' + '#selection_settings': + include_anonymous: true + '#options': + 1: Administrator + 0: Anonymous + '#default_value': 1 + '#format': description webform_entity_radios_link: '#type': webform_entity_radios '#title': 'Entity radios (Link)' @@ -1092,6 +937,18 @@ elements: | 0: Anonymous '#default_value': 1 '#format': raw + webform_entity_select_description: + '#type': webform_entity_select + '#title': 'Entity select (Option description)' + '#target_type': user + '#selection_handler': 'default:user' + '#selection_settings': + include_anonymous: true + '#options': + 1: Administrator + 0: Anonymous + '#default_value': 1 + '#format': description webform_entity_select_link: '#type': webform_entity_select '#title': 'Entity select (Link)' @@ -1179,6 +1036,12 @@ elements: | '#vocabulary': tags '#default_value': Loremipsum '#format': raw + webform_term_select_description: + '#type': webform_term_select + '#title': 'Term select (Option description)' + '#vocabulary': tags + '#default_value': Loremipsum + '#format': description webform_term_select_link: '#type': webform_term_select '#title': 'Term select (Link)' @@ -1273,21 +1136,218 @@ elements: | '#title': 'File (File mime type)' '#file_extensions': txt '#format': mime - managed_file_data: - '#type': managed_file - '#title': 'File (File content (Base64))' - '#file_extensions': txt - '#format': data managed_file_size: '#type': managed_file '#title': 'File (File size (Bytes))' '#file_extensions': txt '#format': size + managed_file_data: + '#type': managed_file + '#title': 'File (File content (Base64))' + '#file_extensions': txt + '#format': data managed_file_extension: '#type': managed_file '#title': 'File (File extension)' '#file_extensions': txt '#format': extension + options_elements: + '#type': details + '#title': 'Options elements' + '#open': true + webform_image_select: + '#type': details + '#title': 'Image select' + webform_image_select_value: + '#type': webform_image_select + '#title': 'Image select (Value)' + '#show_label': true + '#images': + dog_1: + text: 'Dog 1' + src: 'https://www.placedog.net/80/100' + dog_2: + text: 'Dog 2' + src: 'https://www.placedog.net/100/100' + dog_3: + text: 'Dog 3' + src: 'https://www.placedog.net/120/100' + '#default_value': Loremipsum + '#format': value + webform_image_select_raw: + '#type': webform_image_select + '#title': 'Image select (Raw value)' + '#show_label': true + '#images': + dog_1: + text: 'Dog 1' + src: 'https://www.placedog.net/80/100' + dog_2: + text: 'Dog 2' + src: 'https://www.placedog.net/100/100' + dog_3: + text: 'Dog 3' + src: 'https://www.placedog.net/120/100' + '#default_value': Loremipsum + '#format': raw + webform_image_select_description: + '#type': webform_image_select + '#title': 'Image select (Option description)' + '#show_label': true + '#images': + dog_1: + text: 'Dog 1' + src: 'https://www.placedog.net/80/100' + dog_2: + text: 'Dog 2' + src: 'https://www.placedog.net/100/100' + dog_3: + text: 'Dog 3' + src: 'https://www.placedog.net/120/100' + '#default_value': Loremipsum + '#format': description + webform_image_select_image: + '#type': webform_image_select + '#title': 'Image select (Image)' + '#show_label': true + '#images': + dog_1: + text: 'Dog 1' + src: 'https://www.placedog.net/80/100' + dog_2: + text: 'Dog 2' + src: 'https://www.placedog.net/100/100' + dog_3: + text: 'Dog 3' + src: 'https://www.placedog.net/120/100' + '#default_value': Loremipsum + '#format': image + radios: + '#type': details + '#title': Radios + radios_value: + '#type': radios + '#title': 'Radios (Value)' + '#options': + one: One + two: Two + three: Three + '#options_display': side_by_side + '#default_value': one + '#format': value + radios_raw: + '#type': radios + '#title': 'Radios (Raw value)' + '#options': + one: One + two: Two + three: Three + '#options_display': side_by_side + '#default_value': one + '#format': raw + radios_description: + '#type': radios + '#title': 'Radios (Option description)' + '#options': + one: One + two: Two + three: Three + '#options_display': side_by_side + '#default_value': one + '#format': description + webform_radios_other: + '#type': details + '#title': 'Radios other' + webform_radios_other_value: + '#type': webform_radios_other + '#title': 'Radios other (Value)' + '#options': + one: One + two: Two + three: Three + '#options_display': side_by_side + '#default_value': one + '#format': value + webform_radios_other_raw: + '#type': webform_radios_other + '#title': 'Radios other (Raw value)' + '#options': + one: One + two: Two + three: Three + '#options_display': side_by_side + '#default_value': one + '#format': raw + webform_radios_other_description: + '#type': webform_radios_other + '#title': 'Radios other (Option description)' + '#options': + one: One + two: Two + three: Three + '#options_display': side_by_side + '#default_value': one + '#format': description + select: + '#type': details + '#title': Select + select_value: + '#type': select + '#title': 'Select (Value)' + '#options': + one: One + two: Two + three: Three + '#default_value': one + '#format': value + select_raw: + '#type': select + '#title': 'Select (Raw value)' + '#options': + one: One + two: Two + three: Three + '#default_value': one + '#format': raw + select_description: + '#type': select + '#title': 'Select (Option description)' + '#options': + one: One + two: Two + three: Three + '#default_value': one + '#format': description + webform_select_other: + '#type': details + '#title': 'Select other' + webform_select_other_value: + '#type': webform_select_other + '#title': 'Select other (Value)' + '#options': + one: One + two: Two + three: Three + '#default_value': one + '#format': value + webform_select_other_raw: + '#type': webform_select_other + '#title': 'Select other (Raw value)' + '#options': + one: One + two: Two + three: Three + '#default_value': one + '#format': raw + webform_select_other_description: + '#type': webform_select_other + '#title': 'Select other (Option description)' + '#options': + one: One + two: Two + three: Three + '#default_value': one + '#format': description other_elements: '#type': details '#title': 'Other elements' @@ -1305,7 +1365,6 @@ elements: | '#title': 'Machine name (Raw value)' '#default_value': loremipsum '#format': raw - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format_custom.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format_custom.yml index d1457dd1e4..837b78212a 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format_custom.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format_custom.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -22,10 +21,10 @@ elements: | '#format': custom '#format_html': | <em>{{ value }}</em> - + '#format_text': | /{{ value }}/ - + '#default_value': '{textfield_custom}' textfield_custom_token: '#type': textfield @@ -33,10 +32,10 @@ elements: | '#format': custom '#format_html': | <em>[webform_submission:values:textfield_custom_token:raw]</em> - + '#format_text': | /[webform_submission:values:textfield_custom_token:raw]/ - + '#default_value': '{textfield_custom_token}' textfield_custom_token_exception: '#type': textfield @@ -44,10 +43,10 @@ elements: | '#format': custom '#format_html': | <em>EXCEPTION[webform_submission:values:textfield_custom_token_exception]</em> - + '#format_text': | /EXCEPTION[webform_submission:values:textfield_custom_token_exception]/ - + '#default_value': '{textfield_custom_token_exception}' textfield_custom_value_multiple: '#type': textfield @@ -56,10 +55,10 @@ elements: | '#format': custom '#format_html': | <em>{{ value }}</em> - + '#format_text': | /{{ value }}/ - + '#format_items': custom '#format_items_html': | <table> @@ -67,12 +66,12 @@ elements: | <tr {% if loop.index is divisible by(2) %}style="background-color: #ffc"{% endif %}><td>{{ item }}</td></tr> {% endfor %} </table> - + '#format_items_text': | {% for item in items %} ⦿ {{ item }} {% endfor %} - + '#default_value': - One - Two @@ -93,7 +92,7 @@ elements: | item['original:image']: <div style="width: 100px">{{ item['original:image'] }}</div> item['original:link']: <div style="width: 100px">{{ item['original:link'] }}</div> item['original:modal']: <div style="width: 100px">{{ item['original:modal'] }}</div> - + '#format_text': | value: {{ value }} item['value']: {{ item['value'] }} @@ -101,7 +100,7 @@ elements: | item['link']: {{ item['link'] }} item['id']: {{ item['id'] }} item['url']: {{ item['url'] }} - + address_custom: '#type': webform_address '#title': address_custom @@ -113,7 +112,7 @@ elements: | element.state_province: {{ element.state_province }}<br/> element.postal_code: {{ element.postal_code }}<br/> element.country: {{ element.country }}<br/> - + '#format_text': | element.address: {{ element.address }} element.address_2: {{ element.address_2 }} @@ -121,7 +120,7 @@ elements: | element.state_province: {{ element.state_province }} element.postal_code: {{ element.postal_code }} element.country: {{ element.country }} - + '#state_province__type': webform_select_other '#country__type': webform_select_other '#default_value': @@ -156,7 +155,7 @@ elements: | element.state_province: {{ element.state_province }}<br/> element.postal_code: {{ element.postal_code }}<br/> element.country: {{ element.country }}<br/> - + '#format_text': | element.address: {{ element.address }} element.address_2: {{ element.address_2 }} @@ -164,7 +163,7 @@ elements: | element.state_province: {{ element.state_province }} element.postal_code: {{ element.postal_code }} element.country: {{ element.country }} - + '#format_items': custom '#format_items_html': | {% for item in items %} @@ -172,14 +171,14 @@ elements: | {{ item }} <div>*****</div> {% endfor %} - + '#format_items_text': | {% for item in items %} ***** {{ item }} ***** {% endfor %} - + '#state_province__type': webform_select_other '#country__type': webform_select_other fieldset_custom: @@ -188,10 +187,10 @@ elements: | '#format': custom '#format_html': | {{ item.details }} - + '#format_text': | {{ item.details }} - + fieldset_custom_textfield: '#type': textfield '#title': fieldset_custom_textfield @@ -204,17 +203,16 @@ elements: | <h3>fieldset_custom_children</h3> <hr /> {{ children }} - + '#format_text': | fieldset_custom_children ------------------------ {{ children }} - + fieldset_custom_children_textfield: '#type': textfield '#title': fieldset_custom_children_textfield '#default_value': '{fieldset_custom_children_textfield}' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format_multiple.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format_multiple.yml index 7a2b04742f..f53ea0bec7 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format_multiple.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format_multiple.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -221,6 +220,44 @@ elements: | - test@test.com - random@random.com '#format_items': ul + webform_height: + '#type': details + '#title': 'Height (feet/inches)' + webform_height_comma: + '#type': webform_height + '#title': 'Height (feet/inches) (Comma)' + '#multiple': true + '#default_value': + - 36 + '#format_items': comma + webform_height_semicolon: + '#type': webform_height + '#title': 'Height (feet/inches) (Semicolon)' + '#multiple': true + '#default_value': + - 36 + '#format_items': semicolon + webform_height_and: + '#type': webform_height + '#title': 'Height (feet/inches) (And)' + '#multiple': true + '#default_value': + - 36 + '#format_items': and + webform_height_ol: + '#type': webform_height + '#title': 'Height (feet/inches) (Ordered list)' + '#multiple': true + '#default_value': + - 36 + '#format_items': ol + webform_height_ul: + '#type': webform_height + '#title': 'Height (feet/inches) (Unordered list)' + '#multiple': true + '#default_value': + - 36 + '#format_items': ul number: '#type': details '#title': Number @@ -390,6 +427,7 @@ elements: | two: Two three: Three '#options_display': side_by_side + '#multiple': true '#default_value': - one - two @@ -403,6 +441,7 @@ elements: | two: Two three: Three '#options_display': side_by_side + '#multiple': true '#default_value': - one - two @@ -416,6 +455,7 @@ elements: | two: Two three: Three '#options_display': side_by_side + '#multiple': true '#default_value': - one - two @@ -429,6 +469,7 @@ elements: | two: Two three: Three '#options_display': side_by_side + '#multiple': true '#default_value': - one - two @@ -442,23 +483,40 @@ elements: | two: Two three: Three '#options_display': side_by_side + '#multiple': true '#default_value': - one - two - three '#format_items': ul - checkboxes_checklist: + checkboxes_checklist_boxes: '#type': checkboxes - '#title': 'Checkboxes (Checklist)' + '#title': 'Checkboxes (Checklist (☑/☐))' '#options': one: One two: Two three: Three + '#options_display': side_by_side + '#multiple': true '#default_value': - one - two - three '#format_items': 'checklist:boxes' + checkboxes_checklist_crosses: + '#type': checkboxes + '#title': 'Checkboxes (Checklist (gi))' + '#options': + one: One + two: Two + three: Three + '#options_display': side_by_side + '#multiple': true + '#default_value': + - one + - two + - three + '#format_items': 'checklist:crosses' webform_checkboxes_other: '#type': details '#title': 'Checkboxes other' @@ -532,6 +590,34 @@ elements: | - two - three '#format_items': ul + webform_checkboxes_other_checklist_boxes: + '#type': webform_checkboxes_other + '#title': 'Checkboxes other (Checklist (☑/☐))' + '#options': + one: One + two: Two + three: Three + '#options_display': side_by_side + '#multiple': true + '#default_value': + - one + - two + - three + '#format_items': 'checklist:boxes' + webform_checkboxes_other_checklist_crosses: + '#type': webform_checkboxes_other + '#title': 'Checkboxes other (Checklist (gi))' + '#options': + one: One + two: Two + three: Three + '#options_display': side_by_side + '#multiple': true + '#default_value': + - one + - two + - three + '#format_items': 'checklist:crosses' webform_image_select: '#type': details '#title': 'Image select' @@ -635,6 +721,46 @@ elements: | - Oratione - Dixisset '#format_items': ul + webform_image_select_checklist_boxes: + '#type': webform_image_select + '#title': 'Image select (Checklist (☑/☐))' + '#show_label': true + '#images': + dog_1: + text: 'Dog 1' + src: 'https://www.placedog.net/80/100' + dog_2: + text: 'Dog 2' + src: 'https://www.placedog.net/100/100' + dog_3: + text: 'Dog 3' + src: 'https://www.placedog.net/120/100' + '#multiple': true + '#default_value': + - Loremipsum + - Oratione + - Dixisset + '#format_items': 'checklist:boxes' + webform_image_select_checklist_crosses: + '#type': webform_image_select + '#title': 'Image select (Checklist (gi))' + '#show_label': true + '#images': + dog_1: + text: 'Dog 1' + src: 'https://www.placedog.net/80/100' + dog_2: + text: 'Dog 2' + src: 'https://www.placedog.net/100/100' + dog_3: + text: 'Dog 3' + src: 'https://www.placedog.net/120/100' + '#multiple': true + '#default_value': + - Loremipsum + - Oratione + - Dixisset + '#format_items': 'checklist:crosses' webform_image_select_br: '#type': webform_image_select '#title': 'Image select (Break)' @@ -743,6 +869,32 @@ elements: | - two - three '#format_items': ul + select_checklist_boxes: + '#type': select + '#title': 'Select (Checklist (☑/☐))' + '#options': + one: One + two: Two + three: Three + '#multiple': true + '#default_value': + - one + - two + - three + '#format_items': 'checklist:boxes' + select_checklist_crosses: + '#type': select + '#title': 'Select (Checklist (gi))' + '#options': + one: One + two: Two + three: Three + '#multiple': true + '#default_value': + - one + - two + - three + '#format_items': 'checklist:crosses' webform_select_other: '#type': details '#title': 'Select other' @@ -811,6 +963,32 @@ elements: | - two - three '#format_items': ul + webform_select_other_checklist_boxes: + '#type': webform_select_other + '#title': 'Select other (Checklist (☑/☐))' + '#options': + one: One + two: Two + three: Three + '#multiple': true + '#default_value': + - one + - two + - three + '#format_items': 'checklist:boxes' + webform_select_other_checklist_crosses: + '#type': webform_select_other + '#title': 'Select other (Checklist (gi))' + '#options': + one: One + two: Two + three: Three + '#multiple': true + '#default_value': + - one + - two + - three + '#format_items': 'checklist:crosses' tableselect: '#type': details '#title': 'Table select' @@ -879,6 +1057,32 @@ elements: | - two - three '#format_items': ul + tableselect_checklist_boxes: + '#type': tableselect + '#title': 'Table select (Checklist (☑/☐))' + '#options': + one: One + two: Two + three: Three + '#multiple': true + '#default_value': + - one + - two + - three + '#format_items': 'checklist:boxes' + tableselect_checklist_crosses: + '#type': tableselect + '#title': 'Table select (Checklist (gi))' + '#options': + one: One + two: Two + three: Three + '#multiple': true + '#default_value': + - one + - two + - three + '#format_items': 'checklist:crosses' webform_tableselect_sort: '#type': details '#title': 'Tableselect sort' @@ -947,6 +1151,32 @@ elements: | - two - three '#format_items': ul + webform_tableselect_sort_checklist_boxes: + '#type': webform_tableselect_sort + '#title': 'Tableselect sort (Checklist (☑/☐))' + '#options': + one: One + two: Two + three: Three + '#multiple': true + '#default_value': + - one + - two + - three + '#format_items': 'checklist:boxes' + webform_tableselect_sort_checklist_crosses: + '#type': webform_tableselect_sort + '#title': 'Tableselect sort (Checklist (gi))' + '#options': + one: One + two: Two + three: Three + '#multiple': true + '#default_value': + - one + - two + - three + '#format_items': 'checklist:crosses' webform_table_sort: '#type': details '#title': 'Table sort' @@ -1010,6 +1240,30 @@ elements: | - two - three '#format_items': ul + webform_table_sort_checklist_boxes: + '#type': webform_table_sort + '#title': 'Table sort (Checklist (☑/☐))' + '#options': + one: One + two: Two + three: Three + '#default_value': + - one + - two + - three + '#format_items': 'checklist:boxes' + webform_table_sort_checklist_crosses: + '#type': webform_table_sort + '#title': 'Table sort (Checklist (gi))' + '#options': + one: One + two: Two + three: Three + '#default_value': + - one + - two + - three + '#format_items': 'checklist:crosses' date_time_elements: '#type': details '#title': 'Date/time elements' @@ -1217,9 +1471,9 @@ elements: | include_anonymous: true '#multiple': true '#default_value': - - 8 - 4 - - 10 + - 11 + - 7 '#format_items': comma entity_autocomplete_semicolon: '#type': entity_autocomplete @@ -1230,9 +1484,9 @@ elements: | include_anonymous: true '#multiple': true '#default_value': - - 8 - 4 - - 10 + - 11 + - 7 '#format_items': semicolon entity_autocomplete_and: '#type': entity_autocomplete @@ -1243,9 +1497,9 @@ elements: | include_anonymous: true '#multiple': true '#default_value': - - 8 - 4 - - 10 + - 11 + - 7 '#format_items': and entity_autocomplete_ol: '#type': entity_autocomplete @@ -1256,9 +1510,9 @@ elements: | include_anonymous: true '#multiple': true '#default_value': - - 8 - 4 - - 10 + - 11 + - 7 '#format_items': ol entity_autocomplete_ul: '#type': entity_autocomplete @@ -1269,9 +1523,9 @@ elements: | include_anonymous: true '#multiple': true '#default_value': - - 8 - 4 - - 10 + - 11 + - 7 '#format_items': ul webform_entity_checkboxes: '#type': details @@ -1351,6 +1605,36 @@ elements: | '#default_value': - 1 '#format_items': ul + webform_entity_checkboxes_checklist_boxes: + '#type': webform_entity_checkboxes + '#title': 'Entity checkboxes (Checklist (☑/☐))' + '#options_display': side_by_side + '#target_type': user + '#selection_handler': 'default:user' + '#selection_settings': + include_anonymous: true + '#options': + 1: Administrator + 0: Anonymous + '#multiple': true + '#default_value': + - 1 + '#format_items': 'checklist:boxes' + webform_entity_checkboxes_checklist_crosses: + '#type': webform_entity_checkboxes + '#title': 'Entity checkboxes (Checklist (gi))' + '#options_display': side_by_side + '#target_type': user + '#selection_handler': 'default:user' + '#selection_settings': + include_anonymous: true + '#options': + 1: Administrator + 0: Anonymous + '#multiple': true + '#default_value': + - 1 + '#format_items': 'checklist:crosses' webform_entity_select: '#type': details '#title': 'Entity select' @@ -1424,6 +1708,34 @@ elements: | '#default_value': - 1 '#format_items': ul + webform_entity_select_checklist_boxes: + '#type': webform_entity_select + '#title': 'Entity select (Checklist (☑/☐))' + '#target_type': user + '#selection_handler': 'default:user' + '#selection_settings': + include_anonymous: true + '#options': + 1: Administrator + 0: Anonymous + '#multiple': true + '#default_value': + - 1 + '#format_items': 'checklist:boxes' + webform_entity_select_checklist_crosses: + '#type': webform_entity_select + '#title': 'Entity select (Checklist (gi))' + '#target_type': user + '#selection_handler': 'default:user' + '#selection_settings': + include_anonymous: true + '#options': + 1: Administrator + 0: Anonymous + '#multiple': true + '#default_value': + - 1 + '#format_items': 'checklist:crosses' webform_term_checkboxes: '#type': details '#title': 'Term checkboxes' @@ -1477,6 +1789,26 @@ elements: | - Oratione - Dixisset '#format_items': ul + webform_term_checkboxes_checklist_boxes: + '#type': webform_term_checkboxes + '#title': 'Term checkboxes (Checklist (☑/☐))' + '#vocabulary': tags + '#multiple': true + '#default_value': + - Loremipsum + - Oratione + - Dixisset + '#format_items': 'checklist:boxes' + webform_term_checkboxes_checklist_crosses: + '#type': webform_term_checkboxes + '#title': 'Term checkboxes (Checklist (gi))' + '#vocabulary': tags + '#multiple': true + '#default_value': + - Loremipsum + - Oratione + - Dixisset + '#format_items': 'checklist:crosses' webform_term_select: '#type': details '#title': 'Term select' @@ -1530,6 +1862,26 @@ elements: | - Oratione - Dixisset '#format_items': ul + webform_term_select_checklist_boxes: + '#type': webform_term_select + '#title': 'Term select (Checklist (☑/☐))' + '#vocabulary': tags + '#multiple': true + '#default_value': + - Loremipsum + - Oratione + - Dixisset + '#format_items': 'checklist:boxes' + webform_term_select_checklist_crosses: + '#type': webform_term_select + '#title': 'Term select (Checklist (gi))' + '#vocabulary': tags + '#multiple': true + '#default_value': + - Loremipsum + - Oratione + - Dixisset + '#format_items': 'checklist:crosses' file_upload_elements: '#type': details '#title': 'File upload elements' @@ -1567,7 +1919,6 @@ elements: | '#multiple': true '#file_extensions': txt '#format_items': ul - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format_token.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format_token.yml index f72c8e33c2..c50422fa7b 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format_token.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_format_token.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -27,7 +26,6 @@ elements: | - 1 - 2 - 3 - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_height.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_height.yml index e5c9be2fa9..8a5be1f335 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_height.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_height.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -63,18 +62,11 @@ elements: | '#feet__min': 3 '#feet__max': 10 '#default_value': 120 - height_select_min_max: - '#type': webform_height - '#title': height_select_min_max - '#height_type': select - '#feet__min': 3 - '#feet__max': 10 - '#default_value': 120 height_number_step: '#type': webform_height '#title': height_number_step '#height_type': select - '#inches__step': .5 + '#inches__step': 0.5 '#default_value': 60.5 height_number_empty: '#type': webform_height @@ -92,7 +84,6 @@ elements: | '#title': height_select_empty_required '#height_type': select '#required': true - css: '' javascript: '' settings: @@ -275,9 +266,12 @@ handlers: debug: id: debug label: Debug + notes: '' handler_id: debug status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_help.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_help.yml index eb266fe5e4..a25d185e04 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_help.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_help.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -124,16 +123,15 @@ elements: | '#title': help_before_details '#help': '{This is an example of help}' '#help_display': element_before - 'help_before_details': + help_before_details: '#markup': '{This is markup}' help_after_details: '#type': details '#title': help_after_details '#help': '{This is an example of help}' '#help_display': element_after - 'help_after_details': + help_after_details: '#markup': '{This is markup}' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_help_display.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_help_display.yml index 58a9435068..2b9f77c1ae 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_help_display.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_help_display.yml @@ -1,4 +1,3 @@ -uuid: 28d4e7be-efdb-4a88-bc0d-16ed5e8a1767 langcode: en status: open dependencies: @@ -292,6 +291,32 @@ elements: | '#help_display': element_after webform_email_multiple_hr: '#type': webform_horizontal_rule + webform_height_help: + '#markup': 'Height (feet/inches) (webform_height)' + '#prefix': '<h3>' + '#suffix': '</h3>' + webform_height_title_before: + '#type': webform_height + '#title': 'Height (feet/inches) (title_before)' + '#help': 'This is help.' + '#help_display': title_before + webform_height_title_after: + '#type': webform_height + '#title': 'Height (feet/inches) (title_after)' + '#help': 'This is help.' + '#help_display': title_after + webform_height_element_before: + '#type': webform_height + '#title': 'Height (feet/inches) (element_before)' + '#help': 'This is help.' + '#help_display': element_before + webform_height_element_after: + '#type': webform_height + '#title': 'Height (feet/inches) (element_after)' + '#help': 'This is help.' + '#help_display': element_after + webform_height_hr: + '#type': webform_horizontal_rule webform_mapping_help: '#markup': 'Mapping (webform_mapping)' '#prefix': '<h3>' @@ -494,6 +519,66 @@ elements: | '#help_display': element_after webform_rating_hr: '#type': webform_horizontal_rule + webform_same_help: + '#markup': 'Billing address is the same as the shipping address (webform_same)' + '#prefix': '<h3>' + '#suffix': '</h3>' + webform_same_title_before: + '#type': webform_same + '#title': 'Billing address is the same as the shipping address (title_before)' + '#help': 'This is help.' + '#help_display': title_before + webform_same_title_after: + '#type': webform_same + '#title': 'Billing address is the same as the shipping address (title_after)' + '#help': 'This is help.' + '#help_display': title_after + webform_same_element_before: + '#type': webform_same + '#title': 'Billing address is the same as the shipping address (element_before)' + '#help': 'This is help.' + '#help_display': element_before + webform_same_element_after: + '#type': webform_same + '#title': 'Billing address is the same as the shipping address (element_after)' + '#help': 'This is help.' + '#help_display': element_after + webform_same_hr: + '#type': webform_horizontal_rule + webform_scale_help: + '#markup': 'Scale (webform_scale)' + '#prefix': '<h3>' + '#suffix': '</h3>' + webform_scale_title_before: + '#type': webform_scale + '#title': 'Scale (title_before)' + '#min': 1 + '#max': 5 + '#help': 'This is help.' + '#help_display': title_before + webform_scale_title_after: + '#type': webform_scale + '#title': 'Scale (title_after)' + '#min': 1 + '#max': 5 + '#help': 'This is help.' + '#help_display': title_after + webform_scale_element_before: + '#type': webform_scale + '#title': 'Scale (element_before)' + '#min': 1 + '#max': 5 + '#help': 'This is help.' + '#help_display': element_before + webform_scale_element_after: + '#type': webform_scale + '#title': 'Scale (element_after)' + '#min': 1 + '#max': 5 + '#help': 'This is help.' + '#help_display': element_after + webform_scale_hr: + '#type': webform_horizontal_rule search_help: '#markup': 'Search (search)' '#prefix': '<h3>' @@ -644,32 +729,6 @@ elements: | '#help_display': element_after text_format_hr: '#type': webform_horizontal_rule - webform_toggle_help: - '#markup': 'Toggle (webform_toggle)' - '#prefix': '<h3>' - '#suffix': '</h3>' - webform_toggle_title_before: - '#type': webform_toggle - '#title': 'Toggle (title_before)' - '#help': 'This is help.' - '#help_display': title_before - webform_toggle_title_after: - '#type': webform_toggle - '#title': 'Toggle (title_after)' - '#help': 'This is help.' - '#help_display': title_after - webform_toggle_element_before: - '#type': webform_toggle - '#title': 'Toggle (element_before)' - '#help': 'This is help.' - '#help_display': element_before - webform_toggle_element_after: - '#type': webform_toggle - '#title': 'Toggle (element_after)' - '#help': 'This is help.' - '#help_display': element_after - webform_toggle_hr: - '#type': webform_horizontal_rule url_help: '#markup': 'URL (url)' '#prefix': '<h3>' @@ -838,90 +897,6 @@ elements: | '#type': details '#title': 'Options elements' '#open': true - webform_buttons_help: - '#markup': 'Buttons (webform_buttons)' - '#prefix': '<h3>' - '#suffix': '</h3>' - webform_buttons_title_before: - '#type': webform_buttons - '#title': 'Buttons (title_before)' - '#options': - one: One - two: Two - three: Three - '#help': 'This is help.' - '#help_display': title_before - webform_buttons_title_after: - '#type': webform_buttons - '#title': 'Buttons (title_after)' - '#options': - one: One - two: Two - three: Three - '#help': 'This is help.' - '#help_display': title_after - webform_buttons_element_before: - '#type': webform_buttons - '#title': 'Buttons (element_before)' - '#options': - one: One - two: Two - three: Three - '#help': 'This is help.' - '#help_display': element_before - webform_buttons_element_after: - '#type': webform_buttons - '#title': 'Buttons (element_after)' - '#options': - one: One - two: Two - three: Three - '#help': 'This is help.' - '#help_display': element_after - webform_buttons_hr: - '#type': webform_horizontal_rule - webform_buttons_other_help: - '#markup': 'Buttons other (webform_buttons_other)' - '#prefix': '<h3>' - '#suffix': '</h3>' - webform_buttons_other_title_before: - '#type': webform_buttons_other - '#title': 'Buttons other (title_before)' - '#options': - one: One - two: Two - three: Three - '#help': 'This is help.' - '#help_display': title_before - webform_buttons_other_title_after: - '#type': webform_buttons_other - '#title': 'Buttons other (title_after)' - '#options': - one: One - two: Two - three: Three - '#help': 'This is help.' - '#help_display': title_after - webform_buttons_other_element_before: - '#type': webform_buttons_other - '#title': 'Buttons other (element_before)' - '#options': - one: One - two: Two - three: Three - '#help': 'This is help.' - '#help_display': element_before - webform_buttons_other_element_after: - '#type': webform_buttons_other - '#title': 'Buttons other (element_after)' - '#options': - one: One - two: Two - three: Three - '#help': 'This is help.' - '#help_display': element_after - webform_buttons_other_hr: - '#type': webform_horizontal_rule checkboxes_help: '#markup': 'Checkboxes (checkboxes)' '#prefix': '<h3>' @@ -1330,6 +1305,132 @@ elements: | '#help_display': element_after webform_select_other_hr: '#type': webform_horizontal_rule + tableselect_help: + '#markup': 'Table select (tableselect)' + '#prefix': '<h3>' + '#suffix': '</h3>' + tableselect_title_before: + '#type': tableselect + '#title': 'Table select (title_before)' + '#options': + one: One + two: Two + three: Three + '#help': 'This is help.' + '#help_display': title_before + tableselect_title_after: + '#type': tableselect + '#title': 'Table select (title_after)' + '#options': + one: One + two: Two + three: Three + '#help': 'This is help.' + '#help_display': title_after + tableselect_element_before: + '#type': tableselect + '#title': 'Table select (element_before)' + '#options': + one: One + two: Two + three: Three + '#help': 'This is help.' + '#help_display': element_before + tableselect_element_after: + '#type': tableselect + '#title': 'Table select (element_after)' + '#options': + one: One + two: Two + three: Three + '#help': 'This is help.' + '#help_display': element_after + tableselect_hr: + '#type': webform_horizontal_rule + webform_tableselect_sort_help: + '#markup': 'Tableselect sort (webform_tableselect_sort)' + '#prefix': '<h3>' + '#suffix': '</h3>' + webform_tableselect_sort_title_before: + '#type': webform_tableselect_sort + '#title': 'Tableselect sort (title_before)' + '#options': + one: One + two: Two + three: Three + '#help': 'This is help.' + '#help_display': title_before + webform_tableselect_sort_title_after: + '#type': webform_tableselect_sort + '#title': 'Tableselect sort (title_after)' + '#options': + one: One + two: Two + three: Three + '#help': 'This is help.' + '#help_display': title_after + webform_tableselect_sort_element_before: + '#type': webform_tableselect_sort + '#title': 'Tableselect sort (element_before)' + '#options': + one: One + two: Two + three: Three + '#help': 'This is help.' + '#help_display': element_before + webform_tableselect_sort_element_after: + '#type': webform_tableselect_sort + '#title': 'Tableselect sort (element_after)' + '#options': + one: One + two: Two + three: Three + '#help': 'This is help.' + '#help_display': element_after + webform_tableselect_sort_hr: + '#type': webform_horizontal_rule + webform_table_sort_help: + '#markup': 'Table sort (webform_table_sort)' + '#prefix': '<h3>' + '#suffix': '</h3>' + webform_table_sort_title_before: + '#type': webform_table_sort + '#title': 'Table sort (title_before)' + '#options': + one: One + two: Two + three: Three + '#help': 'This is help.' + '#help_display': title_before + webform_table_sort_title_after: + '#type': webform_table_sort + '#title': 'Table sort (title_after)' + '#options': + one: One + two: Two + three: Three + '#help': 'This is help.' + '#help_display': title_after + webform_table_sort_element_before: + '#type': webform_table_sort + '#title': 'Table sort (element_before)' + '#options': + one: One + two: Two + three: Three + '#help': 'This is help.' + '#help_display': element_before + webform_table_sort_element_after: + '#type': webform_table_sort + '#title': 'Table sort (element_after)' + '#options': + one: One + two: Two + three: Three + '#help': 'This is help.' + '#help_display': element_after + webform_table_sort_hr: + '#type': webform_horizontal_rule date_time_elements: '#type': details '#title': 'Date/time elements' @@ -1574,6 +1675,80 @@ elements: | '#help_display': element_after webform_section_hr: '#type': webform_horizontal_rule + webform_table_help: + '#markup': webform_table + '#prefix': '<h3>' + '#suffix': '</h3>' + webform_table_title_before: + '#type': table + '#header': + - 'Header 1' + - 'Header 2' + '#rows': + - + - 'Row 1 - Col 1' + - 'Row 1 - Col 2' + - + - 'Row 2 - Col 1' + - 'Row 2 - Col 2' + - + - 'Row 3 - Col 1' + - 'Row 3 - Col 2' + '#help': 'This is help. (title_before)' + '#help_display': title_before + webform_table_title_after: + '#type': table + '#header': + - 'Header 1' + - 'Header 2' + '#rows': + - + - 'Row 1 - Col 1' + - 'Row 1 - Col 2' + - + - 'Row 2 - Col 1' + - 'Row 2 - Col 2' + - + - 'Row 3 - Col 1' + - 'Row 3 - Col 2' + '#help': 'This is help. (title_after)' + '#help_display': title_after + webform_table_element_before: + '#type': table + '#header': + - 'Header 1' + - 'Header 2' + '#rows': + - + - 'Row 1 - Col 1' + - 'Row 1 - Col 2' + - + - 'Row 2 - Col 1' + - 'Row 2 - Col 2' + - + - 'Row 3 - Col 1' + - 'Row 3 - Col 2' + '#help': 'This is help. (element_before)' + '#help_display': element_before + webform_table_element_after: + '#type': table + '#header': + - 'Header 1' + - 'Header 2' + '#rows': + - + - 'Row 1 - Col 1' + - 'Row 1 - Col 2' + - + - 'Row 2 - Col 1' + - 'Row 2 - Col 2' + - + - 'Row 3 - Col 1' + - 'Row 3 - Col 2' + '#help': 'This is help. (element_after)' + '#help_display': element_after + webform_table_hr: + '#type': webform_horizontal_rule entity_reference_elements: '#type': details '#title': 'Entity reference elements' @@ -1910,7 +2085,6 @@ elements: | '#help_display': element_after machine_name_hr: '#type': webform_horizontal_rule - css: '' javascript: '' settings: @@ -2091,5 +2265,3 @@ access: permissions: { } handlers: { } variants: { } -_core: - default_config_hash: n-o0dubYyFAYHV9OGOrntyVrFt0L6owQM3jhd_cjuIc diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_horizontal_rule.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_horizontal_rule.yml index 0d4ab2f80a..b2a81f0a6f 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_horizontal_rule.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_horizontal_rule.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -102,7 +101,6 @@ elements: | '#attributes': class: - webform-horizontal-rule--glyph - css: '' javascript: '' settings: @@ -290,5 +288,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_html_editor.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_html_editor.yml index 345b98b654..c17f49bb43 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_html_editor.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_html_editor.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -42,7 +41,6 @@ elements: | '#required': true '#default_value': 'Hello <b>World!!!</b>' '#format': false - css: '' javascript: '' settings: @@ -230,5 +228,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_html_escape.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_html_escape.yml index d9bda18c32..ee840de175 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_html_escape.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_html_escape.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -57,6 +56,8 @@ elements: | '#type': captcha '#title': 'CAPTCHA | <script>alert(''This markup is not escaped properly!!!'') </script>' '#captcha_admin_mode': true + '#captcha_info': + form_id: '' '#captcha_type': image_captcha/Image webform_codemirror: '#type': webform_codemirror @@ -78,6 +79,13 @@ elements: | webform_email_multiple: '#type': webform_email_multiple '#title': 'Email multiple | <script>alert(''This markup is not escaped properly!!!'') </script>' + webform_height: + '#type': webform_height + '#title': 'Height (feet/inches) | <script>alert(''This markup is not escaped properly!!!'') </script>' + webform_height_multiple: + '#type': webform_height + '#title': 'Height (feet/inches) multiple | <script>alert(''This markup is not escaped properly!!!'') </script>' + '#multiple': true number: '#type': number '#title': 'Number | <script>alert(''This markup is not escaped properly!!!'') </script>' @@ -107,6 +115,14 @@ elements: | webform_rating: '#type': webform_rating '#title': 'Rating | <script>alert(''This markup is not escaped properly!!!'') </script>' + webform_same: + '#type': webform_same + '#title': 'Billing address is the same as the shipping address | <script>alert(''This markup is not escaped properly!!!'') </script>' + webform_scale: + '#type': webform_scale + '#title': 'Scale | <script>alert(''This markup is not escaped properly!!!'') </script>' + '#min': 1 + '#max': 5 search: '#type': search '#title': 'Search | <script>alert(''This markup is not escaped properly!!!'') </script>' @@ -165,11 +181,15 @@ elements: | '#message_type': warning '#message_message': 'This is a <strong>warning</strong> message.' '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/77245">Issue #77245: A place for JavaScript status messages</a>' + webform_more: + '#type': webform_more + '#title': 'More | <script>alert(''This markup is not escaped properly!!!'') </script>' + '#more': 'This is more content' file_attachment_elements: '#type': details '#title': 'File attachment elements | <script>alert(''This markup is not escaped properly!!!'') </script>' '#open': true - 'webform_entity_print_attachment:pdf': + webform_entity_print_attachment_pdf: '#type': webform_entity_print_attachment '#title': 'Attachment PDF | <script>alert(''This markup is not escaped properly!!!'') </script>' webform_attachment_token: @@ -225,20 +245,6 @@ elements: | '#type': details '#title': 'Options elements | <script>alert(''This markup is not escaped properly!!!'') </script>' '#open': true - webform_buttons: - '#type': webform_buttons - '#title': 'Buttons | <script>alert(''This markup is not escaped properly!!!'') </script>' - '#options': - one: One - two: Two - three: Three - webform_buttons_other: - '#type': webform_buttons_other - '#title': 'Buttons other | <script>alert(''This markup is not escaped properly!!!'') </script>' - '#options': - one: One - two: Two - three: Three checkboxes: '#type': checkboxes '#title': 'Checkboxes | <script>alert(''This markup is not escaped properly!!!'') </script>' @@ -392,6 +398,21 @@ elements: | webform_section: '#type': webform_section '#title': 'Section | <script>alert(''This markup is not escaped properly!!!'') </script>' + webform_table: + '#type': table + '#header': + - 'Header 1' + - 'Header 2' + '#rows': + - + - 'Row 1 - Col 1' + - 'Row 1 - Col 2' + - + - 'Row 2 - Col 1' + - 'Row 2 - Col 2' + - + - 'Row 3 - Col 1' + - 'Row 3 - Col 2' date_time_elements: '#type': details '#title': 'Date/time elements | <script>alert(''This markup is not escaped properly!!!'') </script>' @@ -525,7 +546,6 @@ elements: | table: '#type': table '#title': 'Table | <script>alert(''This markup is not escaped properly!!!'') </script>' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_html_markup.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_html_markup.yml index 48252041cd..34fd12ed83 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_html_markup.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_html_markup.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -57,6 +56,8 @@ elements: | '#type': captcha '#title': '<u>CAPTCHA</u>' '#captcha_admin_mode': true + '#captcha_info': + form_id: '' '#captcha_type': image_captcha/Image webform_codemirror: '#type': webform_codemirror @@ -78,6 +79,13 @@ elements: | webform_email_multiple: '#type': webform_email_multiple '#title': '<u>Email multiple</u>' + webform_height: + '#type': webform_height + '#title': '<u>Height (feet/inches)</u>' + webform_height_multiple: + '#type': webform_height + '#title': '<u>Height (feet/inches) multiple</u>' + '#multiple': true number: '#type': number '#title': '<u>Number</u>' @@ -107,6 +115,14 @@ elements: | webform_rating: '#type': webform_rating '#title': '<u>Rating</u>' + webform_same: + '#type': webform_same + '#title': '<u>Billing address is the same as the shipping address</u>' + webform_scale: + '#type': webform_scale + '#title': '<u>Scale</u>' + '#min': 1 + '#max': 5 search: '#type': search '#title': '<u>Search</u>' @@ -165,11 +181,15 @@ elements: | '#message_type': warning '#message_message': 'This is a <strong>warning</strong> message.' '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/77245">Issue #77245: A place for JavaScript status messages</a>' + webform_more: + '#type': webform_more + '#title': '<u>More</u>' + '#more': 'This is more content' file_attachment_elements: '#type': details '#title': '<u>File attachment elements</u>' '#open': true - 'webform_entity_print_attachment:pdf': + webform_entity_print_attachment_pdf: '#type': webform_entity_print_attachment '#title': '<u>Attachment PDF</u>' webform_attachment_token: @@ -225,20 +245,6 @@ elements: | '#type': details '#title': '<u>Options elements</u>' '#open': true - webform_buttons: - '#type': webform_buttons - '#title': '<u>Buttons</u>' - '#options': - one: One - two: Two - three: Three - webform_buttons_other: - '#type': webform_buttons_other - '#title': '<u>Buttons other</u>' - '#options': - one: One - two: Two - three: Three checkboxes: '#type': checkboxes '#title': '<u>Checkboxes</u>' @@ -392,6 +398,24 @@ elements: | webform_section: '#type': webform_section '#title': '<u>Section</u>' + webform_table: + '#type': table + '#header': + - 'Header 1' + - 'Header 2' + '#rows': + - + - 'Row 1 - Col 1' + - 'Row 1 - Col 2' + - + - 'Row 2 - Col 1' + - 'Row 2 - Col 2' + - + - 'Row 3 - Col 1' + - 'Row 3 - Col 2' + webform_table_row: + '#type': webform_table_row + '#title': '<u>Table row</u>' date_time_elements: '#type': details '#title': '<u>Date/time elements</u>' @@ -525,7 +549,6 @@ elements: | table: '#type': table '#title': '<u>Table</u>' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_ignored_properties.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_ignored_properties.yml index 55ed4f1c83..825493dd64 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_ignored_properties.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_ignored_properties.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -20,29 +19,29 @@ elements: | '#type': textfield '#title': textfield '#tree': '#tree' - '#array_parents': { } + '#array_parents': { } '#weight': 0 '#after_build': - - 'webform_test_ignored_element_callback' + - webform_test_ignored_element_callback '#element_validate': - - 'webform_test_ignored_element_callback' + - webform_test_ignored_element_callback '#post_render': - - 'webform_test_ignored_element_callback' + - webform_test_ignored_element_callback '#pre_render': - - 'webform_test_ignored_element_callback' + - webform_test_ignored_element_callback '#process': - - 'webform_test_ignored_element_callback' + - webform_test_ignored_element_callback '#submit': - - 'webform_test_ignored_element_callback' + - webform_test_ignored_element_callback '#validate': - - 'webform_test_ignored_element_callback' + - webform_test_ignored_element_callback '#value_callback': - - 'webform_test_ignored_element_callback' + - webform_test_ignored_element_callback actions: '#type': actions '#title': actions '#pre_render': - - 'webform_test_ignored_element_callback' + - webform_test_ignored_element_callback select_other: '#title': select_other '#type': webform_select_other @@ -51,16 +50,16 @@ elements: | Two: Two Three: Three '#other__element_validate': - - 'webform_test_ignored_element_callback' + - webform_test_ignored_element_callback '#other__pre_render': - - 'webform_test_ignored_element_callback' + - webform_test_ignored_element_callback name: '#title': name '#type': webform_name '#first__element_validate': - - 'webform_test_ignored_element_callback' + - webform_test_ignored_element_callback '#first__pre_render': - - 'webform_test_ignored_element_callback' + - webform_test_ignored_element_callback custom_composite: '#type': webform_custom_composite '#title': custom_composite @@ -69,8 +68,7 @@ elements: | '#type': textfield '#title': custom_composite_textfield '#pre_render': - - 'webform_test_ignored_element_callback' - + - webform_test_ignored_element_callback css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_image_file.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_image_file.yml index 25966561cf..644807fc16 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_image_file.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_image_file.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -23,7 +22,6 @@ elements: | '#type': webform_image_file '#title': 'webform_image_file_advanced (max: 20x20)' '#max_resolution': 20x20 - css: '' javascript: '' settings: @@ -211,5 +209,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_image_file_attach.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_image_file_attach.yml index 8d40b88d13..6e32b3ffa3 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_image_file_attach.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_image_file_attach.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,7 +20,6 @@ elements: | '#title': webform_image_file_attachment '#file_extensions': gif '#attachment_image_style': thumbnail - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_image_resolution.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_image_resolution.yml index 4380e88bc7..340a3fa941 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_image_resolution.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_image_resolution.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -26,7 +25,6 @@ elements: | '#height_title': '{height_title}' '#width_title': '{width_title}' '#default_value': 300x400 - css: '' javascript: '' settings: @@ -214,5 +212,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_input_mask.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_input_mask.yml index ab2776fc6d..25ca4e127d 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_input_mask.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_input_mask.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -22,6 +21,18 @@ elements: | '#input_mask': '''alias'': ''currency''' '#default_value': '$ 1.00' '#required': true + currency_negative: + '#type': textfield + '#title': currency_negative + '#input_mask': '''alias'': ''currency_negative''' + '#default_value': '-$ 1.00' + '#required': true + currency_positive_negative: + '#type': textfield + '#title': currency_positive_negative + '#input_mask': '''alias'': ''currency_positive_negative''' + '#default_value': '$ 1.00' + '#required': true datetime: '#type': textfield '#title': datetime @@ -82,7 +93,6 @@ elements: | '#type': textfield '#title': module '#input_mask': '999' - css: '' javascript: '' settings: @@ -270,5 +280,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_invalid.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_invalid.yml index 8441fc48e5..dfad27b2e3 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_invalid.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_invalid.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_likert.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_likert.yml index 85a25b30f0..f14085641c 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_likert.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_likert.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -80,7 +79,24 @@ elements: | - 'Option 1' - 'Option 2' - 'Option 3' - + likert_trigger_required: + '#type': checkbox + '#title': likert_trigger_required + likert_states_required: + '#type': webform_likert + '#title': likert_states_required + '#states': + required: + ':input[name="likert_trigger_required"]': + checked: true + '#questions': + q1: 'Question 1' + q2: 'Question 2' + q3: 'Question 3' + '#answers': + 1: 'Option 1' + 2: 'Option 2' + 3: 'Option 3' css: '' javascript: '' settings: @@ -268,5 +284,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_loc_places.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_loc_places.yml index 4464f52258..6a2810df5e 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_loc_places.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_loc_places.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -70,7 +69,6 @@ elements: | '#geolocation': true '#hidden': true '#geocomplete': true - css: '' javascript: '' settings: @@ -258,5 +256,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file.yml index 72c67d43fb..836ac25592 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -69,7 +68,6 @@ elements: | '#type': managed_file '#title': managed_file_extensions '#file_extensions': 'txt, text' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_dis.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_dis.yml index d070e13201..5bc2a4cf28 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_dis.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_dis.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -20,7 +19,6 @@ elements: | '#type': managed_file '#title': managed_file '#file_extensions': txt - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_help.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_help.yml index e7b7ab8760..c3efc01b42 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_help.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_help.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -65,7 +64,6 @@ elements: | '#type': managed_file '#title': managed_file_help_none '#file_help': none - css: '' javascript: '' settings: @@ -253,5 +251,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_limit.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_limit.yml index a4fe1747ca..9a2404ab39 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_limit.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_limit.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -35,7 +34,6 @@ elements: | managed_file: '#type': managed_file '#title': managed_file - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_name.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_name.yml index 5c5b72a5b5..d12f631b78 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_name.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_name.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -31,8 +30,7 @@ elements: | file_truncate: '#type': managed_file '#title': 'File truncate (255)' - '#file_name': 'file_truncate_123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890' - + '#file_name': file_truncate_123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 css: '' javascript: '' settings: @@ -220,5 +218,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_prev.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_prev.yml index 186308d928..127947c63d 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_prev.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_managed_file_prev.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -60,7 +59,6 @@ elements: | '#file_preview': url '#file_extensions': txt '#multiple': true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_mapping.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_mapping.yml index 8128cdc135..1abaad0d2d 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_mapping.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_mapping.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -131,7 +130,6 @@ elements: | two: Two three: Three '#destination__type': webform_email_multiple - css: '' javascript: '' settings: @@ -319,5 +317,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_markup.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_markup.yml index 5e2c564a6f..b3e3d8c798 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_markup.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_markup.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -34,7 +33,6 @@ elements: | '#type': webform_markup '#markup': '<p>Alter this markup.</p>' '#display_on': both - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_media_file.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_media_file.yml index 6ef02c860c..c76a7536e3 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_media_file.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_media_file.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -72,7 +71,6 @@ elements: | '#type': webform_video_file '#title': 'video_file (mp4)' '#file_extensions': mp4 - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_message.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_message.yml index 9965637d2b..55d59d3c59 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_message.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_message.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -92,7 +91,6 @@ elements: | '#message_close': true '#message_id': webform_test_message_custom '#message_storage': custom - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_more.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_more.yml index de915855a9..48d61b4503 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_more.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_more.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -65,7 +64,6 @@ elements: | '#more': '{This is an example of more}' '#description': '{This is a description}' '#description_display': tooltip - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple.yml index 06b4e201a0..76a1ce7913 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -279,7 +278,6 @@ elements: | '#attributes': class: - custom-element - css: '' javascript: '' settings: @@ -467,5 +465,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_date.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_date.yml index cc9f5dd901..6154d75164 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_date.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_date.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -40,7 +39,6 @@ elements: | '#type': datelist '#title': datelist_basic '#multiple': true - css: '' javascript: '' settings: @@ -228,5 +226,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_property.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_property.yml index c60b51a6a8..c4618176ee 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_property.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_property.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -51,7 +50,6 @@ elements: | '#title': webform_element_multiple_custom_access '#default_value': 5 '#access': false - css: '' javascript: '' settings: @@ -239,5 +237,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_text.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_text.yml index 6bfb6b107e..475d69d4c3 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_text.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_text.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -83,7 +82,6 @@ elements: | '#type': number '#title': number_basic '#multiple': true - css: '' javascript: '' settings: @@ -271,5 +269,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_options.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_options.yml index e219d54fd5..37d90b9db7 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_options.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_options.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -75,8 +74,7 @@ elements: | '#type': webform_element_options '#title': webform_element_options_custom_type_multiple '#custom__type': webform_multiple - '#default_value': { } - + '#default_value': { } css: '' javascript: '' settings: @@ -264,5 +262,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_other.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_other.yml index 565f9e0c6a..990a1764bb 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_other.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_other.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -157,7 +156,6 @@ elements: | Two: Two Three: Three '#wrapper_type': container - css: '' javascript: '' settings: @@ -345,5 +343,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_prepopulate.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_prepopulate.yml index db2cdba359..9174fe5c2b 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_prepopulate.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_prepopulate.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -48,7 +47,6 @@ elements: | '#type': managed_file '#title': managed_file_prepopulate_02 '#prepopulate': true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_private.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_private.yml index 62999eafd4..1e3a8115d0 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_private.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_private.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -24,7 +23,6 @@ elements: | '#type': textfield '#title': private '#private': true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_radios.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_radios.yml index 013d47c111..0620a0a9be 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_radios.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_radios.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -118,8 +117,8 @@ elements: | '#options_display': buttons_horizontal '#options_description_display': description '#options': - one: 'One' - two: 'Two' + one: One + two: Two three: 'Three -- This is a description' radios_buttons_vertical: '#type': radios @@ -154,7 +153,7 @@ elements: | '#type': radios '#title': radios_buttons_wrapping '#options': - one: 'OneOneOneOneOneOneOne' + one: OneOneOneOneOneOneOne two: Two three: Three four: Four @@ -176,17 +175,17 @@ elements: | '#options__properties': two: '#wrapper_attributes': - 'data-custom': 'custom wrapper data' + data-custom: 'custom wrapper data' style: 'border: red 1px solid' class: - one-custom-wrapper-class '#label_attributes': - 'data-custom': 'custom label data' + data-custom: 'custom label data' style: 'border: blue 1px solid' class: - one-custom-label-class '#attributes': - 'data-custom': 'custom input data' + data-custom: 'custom input data' style: 'border: yellow 1px solid' class: - one-custom-class @@ -212,11 +211,11 @@ elements: | '#disabled': true radios_other_options_properties: '#type': webform_radios_other - '#title': radios_other_options_properties + '#title': radios_other_options_properties '#options': - one: 'One' - two: 'Two' - three: 'Three' + one: One + two: Two + three: Three '#options__properties': one: '#disabled': true @@ -224,7 +223,20 @@ elements: | '#disabled': true three: '#disabled': true - + radios_options_grouped: + '#type': radios + '#title': radios_options_properties + '#options_description_display': description + '#options': + one: 'One -- This is a description' + two: 'Two -- This is a description' + three: 'Three -- This is a description' + four: 'Four -- This is a description' + '#options__properties': + one: + '#prefix': '<div><strong>Group 1</strong></div>' + three: + '#prefix': '<div><strong>Group 2</strong></div>' css: '' javascript: '' settings: @@ -412,5 +424,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_range.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_range.yml index 321f6c62da..09f989b418 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_range.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_range.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -71,7 +70,6 @@ elements: | '#output': right '#output__field_prefix': $ '#output__field_suffix': '.00' - css: '' javascript: '' settings: @@ -259,5 +257,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_rating.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_rating.yml index 4c5cfafb7c..f45be46e50 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_rating.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_rating.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -34,7 +33,6 @@ elements: | '#type': webform_rating '#title': rating_required '#required': true - css: '' javascript: '' settings: @@ -222,5 +220,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_readonly.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_readonly.yml index 7a48045ac8..fe5c15852c 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_readonly.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_readonly.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -24,7 +23,6 @@ elements: | '#type': textarea '#title': textarea '#readonly': true - css: '' javascript: '' settings: @@ -212,5 +210,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_same.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_same.yml index fd54d813fa..fab80d87a2 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_same.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_same.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -60,7 +59,7 @@ elements: | '#title': '''webform_name_destination'' same as ''webform_name_source''' '#source': webform_name_source '#destination': webform_name_destination - '#destination_state': 'visible-slide' + '#destination_state': visible-slide '#default_value': true webform_name_destination: '#type': webform_name @@ -89,7 +88,6 @@ elements: | '#title': textfield_multiple_destination '#multiple': true '#required': true - css: '' javascript: '' settings: @@ -277,5 +275,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_scale.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_scale.yml index 04a92d535f..1e0322b2e8 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_scale.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_scale.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -19,6 +18,10 @@ elements: | scale: '#type': webform_scale '#title': scale + scale_required: + '#type': webform_scale + '#title': scale_required + '#required': true scale_text: '#type': webform_scale '#title': scale_text @@ -56,7 +59,6 @@ elements: | '#scale_type': flexbox '#min_text': '1 = disagree' '#max_text': 'agree = 5' - css: '' javascript: '' settings: @@ -244,5 +246,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_section.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_section.yml index 508469ed26..c61662b6c5 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_section.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_section.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -35,7 +34,34 @@ elements: | '#title_tag': h5 '#title_attributes': style: 'color: red' - + webform_section_description_display_default: + '#type': webform_section + '#title': webform_section_description_display_default + '#description': 'Display default description.' + webform_section_description_display_default_textfield: + '#type': textfield + '#title': webform_section_description_display_default_textfield + webform_section_description_display_before: + '#type': webform_section + '#title': webform_section_description_display_before + '#description': 'Display before description.' + '#description_display': before + webform_section_description_display_before_textfield: + '#type': textfield + '#title': webform_section_description_display_before_textfield + webform_section_description_display_after: + '#type': webform_section + '#title': webform_section_description_display_after + '#description': 'Display after description.' + '#description_display': after + webform_section_description_display_after_textfield: + '#type': textfield + '#title': webform_section_description_display_after_textfield + webform_section_description_display_invisible: + '#type': webform_section + '#title': webform_section_description_display_invisible + '#description': 'Display invisible description.' + '#description_display': invisible css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_select.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_select.yml index 8183dda8c6..079874db39 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_select.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_select.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -69,8 +68,7 @@ elements: | four: Four five: Five '#attributes': - 'data-webform-select-options-disabled': 'one,two,four,five' - + data-webform-select-options-disabled: 'one,two,four,five' select_select2_examples: '#type': details '#title': 'Select select2' @@ -373,7 +371,6 @@ elements: | three: Three four: Four five: Five - css: '' javascript: '' settings: @@ -561,5 +558,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_signature.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_signature.yml index 79db46a949..8079404a84 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_signature.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_signature.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -42,7 +41,6 @@ elements: | '#type': webform_signature '#title': signature_readonly '#readonly': true - css: '' javascript: '' settings: @@ -230,5 +228,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_states.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_states.yml index c364553d05..04e6f941dc 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_states.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_states.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -124,7 +123,6 @@ elements: | custom_selector: value: pattern: '[a-z0-9]+' - css: '' javascript: '' settings: @@ -312,5 +310,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_submission_views.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_submission_views.yml index 49a488e445..6cdcd9699f 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_submission_views.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_submission_views.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -47,7 +46,6 @@ elements: | - entity.webform.results_submissions node_routes: - entity.node.webform.results_submissions - css: '' javascript: '' settings: @@ -235,5 +233,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_submission_views_r.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_submission_views_r.yml index dfdc64fd05..f3ec8a1798 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_submission_views_r.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_submission_views_r.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -41,7 +40,6 @@ elements: | - entity.webform.results_submissions node_routes: - entity.node.webform.results_submissions - css: '' javascript: '' settings: @@ -229,5 +227,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_submitted_value.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_submitted_value.yml index f12fd33495..26d2450469 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_submitted_value.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_submitted_value.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -55,7 +54,6 @@ elements: | - one - two - three - css: '' javascript: '' settings: @@ -243,5 +241,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_table.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_table.yml index eac2dc5b06..34effab0be 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_table.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_table.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -193,7 +192,6 @@ elements: | table_advanced_04_textfield: '#type': textfield '#title': 'textfield (4)' - css: '' javascript: '' settings: @@ -381,5 +379,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_table_select.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_table_select.yml new file mode 100644 index 0000000000..5b7688c86d --- /dev/null +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_table_select.yml @@ -0,0 +1,261 @@ +langcode: en +status: open +dependencies: + enforced: + module: + - webform_test +open: null +close: null +weight: 0 +uid: null +template: false +archive: false +id: test_element_table_select +title: 'Test: Element: Table select' +description: 'Test table select required.' +category: 'Test: Element' +elements: | + tableselect_checkboxes_required: + '#type': tableselect + '#title': tableselect_checkboxes_required + '#required': true + '#options': + one: One + two: Two + three: Three + four: Four + five: Five + tableselect_radios_required: + '#type': tableselect + '#title': tableselect_radios_required + '#multiple': false + '#required': true + '#options': + one: One + two: Two + three: Three + four: Four + five: Five + trigger: + '#type': checkbox + '#title': trigger + target_tableselect_checkboxes_required: + '#type': tableselect + '#title': target_tableselect_checkboxes_required + '#required': true + '#states': + visible: + ':input[name="trigger"]': + checked: true + '#options': + one: One + two: Two + three: Three + four: Four + five: Five + target_tableselect_radios_required: + '#type': tableselect + '#title': target_tableselect_radios_required + '#multiple': false + '#required': true + '#states': + visible: + ':input[name="trigger"]': + checked: true + '#options': + one: One + two: Two + three: Three + four: Four + five: Five +css: '' +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_exception_message: '' + form_open_message: '' + form_close_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_reset: false + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_unsaved: false + form_disable_back: false + form_submit_back: false + form_autofocus: false + form_details_toggle: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_log: 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: { } + submission_exception_message: '' + submission_locked_message: '' + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + 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: false + wizard_progress_states: false + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '' + wizard_track: '' + wizard_prev_button_label: '' + wizard_next_button_label: '' + wizard_toggle: false + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + preview: 1 + 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: message + confirmation_title: '' + confirmation_message: '' + confirmation_url: '' + confirmation_attributes: { } + confirmation_back: true + confirmation_back_label: '' + 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: + debug: + id: debug + label: Debug + notes: '' + handler_id: debug + status: true + conditions: { } + weight: 0 + settings: + format: yaml + submission: false +variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_table_select_sort.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_table_select_sort.yml index 1c56be5d2f..acbcb406de 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_table_select_sort.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_table_select_sort.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -157,7 +156,6 @@ elements: | '#default_value': five: five three: three - css: '' javascript: '' settings: @@ -345,5 +343,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_telephone.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_telephone.yml index 2c70c88267..9a07be86e3 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_telephone.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_telephone.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -45,7 +44,6 @@ elements: | '#international': true '#international_preferred_countries': - ZW - css: '' javascript: '' settings: @@ -233,5 +231,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_term_reference.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_term_reference.yml index 947ef2b153..66b55fb5fd 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_term_reference.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_term_reference.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -121,7 +120,6 @@ elements: | '#breadcrumb_delimiter': ' » ' '#format': breadcrumb '#format_items': ul - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_terms_of_service.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_terms_of_service.yml index 80a44de630..921c6a9d70 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_terms_of_service.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_terms_of_service.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -34,7 +33,6 @@ elements: | '#terms_type': slideout '#terms_title': terms_of_service_slideout '#terms_content': 'These are the terms of service.' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_text_format.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_text_format.yml index 302223b7ce..8e77275246 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_text_format.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_text_format.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -31,7 +30,6 @@ elements: | '#title': text_format_description_more '#description': 'This is a description' '#more': 'This is more' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_time.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_time.yml index 1458c15805..05f0511fef 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_time.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_time.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -68,7 +67,6 @@ elements: | '#title': time_timepicker_placeholder '#timepicker': true '#placeholder': '{time}' - css: '' javascript: '' settings: @@ -256,5 +254,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_title_display.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_title_display.yml index d43f4510e7..7f0b1bc4e9 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_title_display.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_title_display.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -243,6 +242,28 @@ elements: | '#title_display': none webform_email_multiple_hr: '#type': webform_horizontal_rule + webform_height_title: + '#markup': 'Height (feet/inches) (webform_height)' + '#prefix': '<h3>' + '#suffix': '</h3>' + webform_height_before: + '#type': webform_height + '#title': 'Height (feet/inches) (before)' + '#title_display': before + webform_height_after: + '#type': webform_height + '#title': 'Height (feet/inches) (after)' + '#title_display': after + webform_height_inline: + '#type': webform_height + '#title': 'Height (feet/inches) (inline)' + '#title_display': inline + webform_height_none: + '#type': webform_height + '#title': 'Height (feet/inches) (none)' + '#title_display': none + webform_height_hr: + '#type': webform_horizontal_rule webform_mapping_title: '#markup': 'Mapping (webform_mapping)' '#prefix': '<h3>' @@ -435,6 +456,36 @@ elements: | '#title_display': none webform_same_hr: '#type': webform_horizontal_rule + webform_scale_title: + '#markup': 'Scale (webform_scale)' + '#prefix': '<h3>' + '#suffix': '</h3>' + webform_scale_before: + '#type': webform_scale + '#title': 'Scale (before)' + '#min': 1 + '#max': 5 + '#title_display': before + webform_scale_after: + '#type': webform_scale + '#title': 'Scale (after)' + '#min': 1 + '#max': 5 + '#title_display': after + webform_scale_inline: + '#type': webform_scale + '#title': 'Scale (inline)' + '#min': 1 + '#max': 5 + '#title_display': inline + webform_scale_none: + '#type': webform_scale + '#title': 'Scale (none)' + '#min': 1 + '#max': 5 + '#title_display': none + webform_scale_hr: + '#type': webform_horizontal_rule search_title: '#markup': 'Search (search)' '#prefix': '<h3>' @@ -501,28 +552,6 @@ elements: | '#title_display': none tel_hr: '#type': webform_horizontal_rule - webform_toggle_title: - '#markup': 'Toggle (webform_toggle)' - '#prefix': '<h3>' - '#suffix': '</h3>' - webform_toggle_before: - '#type': webform_toggle - '#title': 'Toggle (before)' - '#title_display': before - webform_toggle_after: - '#type': webform_toggle - '#title': 'Toggle (after)' - '#title_display': after - webform_toggle_inline: - '#type': webform_toggle - '#title': 'Toggle (inline)' - '#title_display': inline - webform_toggle_none: - '#type': webform_toggle - '#title': 'Toggle (none)' - '#title_display': none - webform_toggle_hr: - '#type': webform_horizontal_rule url_title: '#markup': 'URL (url)' '#prefix': '<h3>' @@ -668,7 +697,7 @@ elements: | two: Two three: Three '#options_display': side_by_side - '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/994360">Issue #994360: #states cannot disable/enable radios and checkboxes</a><br /><a href="https://www.drupal.org/node/2836364">Issue #2836364: Wrapper attributes are not supported by composite elements, this includes radios and checkboxes</a>' + '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/994360">Issue #994360: #states cannot disable/enable radios and checkboxes</a><br /><a href="https://www.drupal.org/node/2836364">Issue #2836364: Wrapper attributes are not supported by composite elements, this includes radios, checkboxes, and buttons.</a>' '#title_display': after checkboxes_inline: '#type': checkboxes @@ -678,7 +707,7 @@ elements: | two: Two three: Three '#options_display': side_by_side - '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/994360">Issue #994360: #states cannot disable/enable radios and checkboxes</a><br /><a href="https://www.drupal.org/node/2836364">Issue #2836364: Wrapper attributes are not supported by composite elements, this includes radios and checkboxes.</a>' + '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/994360">Issue #994360: #states cannot disable/enable radios and checkboxes</a><br /><a href="https://www.drupal.org/node/2836364">Issue #2836364: Wrapper attributes are not supported by composite elements, this includes radios, checkboxes, and buttons.</a>' '#title_display': inline checkboxes_none: '#type': checkboxes @@ -688,7 +717,7 @@ elements: | two: Two three: Three '#options_display': side_by_side - '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/994360">Issue #994360: #states cannot disable/enable radios and checkboxes</a><br /><a href="https://www.drupal.org/node/2836364">Issue #2836364: Wrapper attributes are not supported by composite elements, this includes radios and checkboxes.</a>' + '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/994360">Issue #994360: #states cannot disable/enable radios and checkboxes</a><br /><a href="https://www.drupal.org/node/2836364">Issue #2836364: Wrapper attributes are not supported by composite elements, this includes radios, checkboxes, and buttons.</a>' '#title_display': none checkboxes_hr: '#type': webform_horizontal_rule @@ -995,6 +1024,120 @@ elements: | '#title_display': none webform_select_other_hr: '#type': webform_horizontal_rule + tableselect_title: + '#markup': 'Table select (tableselect)' + '#prefix': '<h3>' + '#suffix': '</h3>' + tableselect_before: + '#type': tableselect + '#title': 'Table select (before)' + '#options': + one: One + two: Two + three: Three + '#title_display': before + tableselect_after: + '#type': tableselect + '#title': 'Table select (after)' + '#options': + one: One + two: Two + three: Three + '#title_display': after + tableselect_inline: + '#type': tableselect + '#title': 'Table select (inline)' + '#options': + one: One + two: Two + three: Three + '#title_display': inline + tableselect_none: + '#type': tableselect + '#title': 'Table select (none)' + '#options': + one: One + two: Two + three: Three + '#title_display': none + tableselect_hr: + '#type': webform_horizontal_rule + webform_tableselect_sort_title: + '#markup': 'Tableselect sort (webform_tableselect_sort)' + '#prefix': '<h3>' + '#suffix': '</h3>' + webform_tableselect_sort_before: + '#type': webform_tableselect_sort + '#title': 'Tableselect sort (before)' + '#options': + one: One + two: Two + three: Three + '#title_display': before + webform_tableselect_sort_after: + '#type': webform_tableselect_sort + '#title': 'Tableselect sort (after)' + '#options': + one: One + two: Two + three: Three + '#title_display': after + webform_tableselect_sort_inline: + '#type': webform_tableselect_sort + '#title': 'Tableselect sort (inline)' + '#options': + one: One + two: Two + three: Three + '#title_display': inline + webform_tableselect_sort_none: + '#type': webform_tableselect_sort + '#title': 'Tableselect sort (none)' + '#options': + one: One + two: Two + three: Three + '#title_display': none + webform_tableselect_sort_hr: + '#type': webform_horizontal_rule + webform_table_sort_title: + '#markup': 'Table sort (webform_table_sort)' + '#prefix': '<h3>' + '#suffix': '</h3>' + webform_table_sort_before: + '#type': webform_table_sort + '#title': 'Table sort (before)' + '#options': + one: One + two: Two + three: Three + '#title_display': before + webform_table_sort_after: + '#type': webform_table_sort + '#title': 'Table sort (after)' + '#options': + one: One + two: Two + three: Three + '#title_display': after + webform_table_sort_inline: + '#type': webform_table_sort + '#title': 'Table sort (inline)' + '#options': + one: One + two: Two + three: Three + '#title_display': inline + webform_table_sort_none: + '#type': webform_table_sort + '#title': 'Table sort (none)' + '#options': + one: One + two: Two + three: Three + '#title_display': none + webform_table_sort_hr: + '#type': webform_horizontal_rule computed_elements: '#type': details '#title': 'Computed Elements' @@ -1514,7 +1657,6 @@ elements: | '#title_display': none machine_name_hr: '#type': webform_horizontal_rule - css: '' javascript: '' settings: @@ -1702,5 +1844,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_users_roles.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_users_roles.yml index d5190bfbed..9e570b9a7f 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_users_roles.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_users_roles.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -33,7 +32,6 @@ elements: | '#include_anonymous': false '#default_value': authenticated: authenticated - css: '' javascript: '' settings: @@ -221,5 +219,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_minlength.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_minlength.yml index f70290c2c7..a135f8d1a8 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_minlength.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_minlength.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -27,7 +26,6 @@ elements: | '#minlength': 5 '#required': true '#default_value': value - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_multiple.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_multiple.yml index beb5d7bc78..bfc1766fc6 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_multiple.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_multiple.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -79,7 +78,6 @@ elements: | '#title': webform_element_multiple_managed_file_two '#select2': true '#multiple': 2 - css: '' javascript: '' settings: @@ -267,5 +265,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_pattern.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_pattern.yml index 883253556c..d3718fa83e 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_pattern.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_pattern.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -38,7 +37,6 @@ elements: | '#title': pattern_unicode '#pattern': \u2E8F '#description': 'Enter unicode CJK characters ''⺏''' - css: '' javascript: '' settings: @@ -226,5 +224,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_required.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_required.yml index 8ed92f2517..f9ef3b769e 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_required.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_required.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -35,7 +34,6 @@ elements: | three: Three '#required': true '#required_error': 'This is a custom required message' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_unique.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_unique.yml index ccdf88fbfc..143d75e4a8 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_unique.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_validate_unique.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -56,7 +55,6 @@ elements: | '#options': 1: one 2: two - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_vertical_tabs.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_vertical_tabs.yml index a3a2158a21..1b3a8e55ff 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_vertical_tabs.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_vertical_tabs.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -43,7 +42,7 @@ elements: | '#type': vertical_tabs '#title': 'My Vertical Tabs' '#title_display': before - '#require': TRUE + '#require': true '#description': 'This is a description' '#help': 'This is a help' '#more': 'This is a more' @@ -91,7 +90,6 @@ elements: | textfield_03: '#type': textfield '#title': textfield_03 - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_view.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_view.yml index ac0f3fe536..3c05cdc694 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_view.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_view.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -25,7 +24,6 @@ elements: | '#display_id': default '#arguments': - '[webform:id]' - css: '' javascript: '' settings: @@ -213,5 +211,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_example_elements.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_example_elements.yml index 9763ec42d6..9283a9e50d 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_example_elements.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_example_elements.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -57,6 +56,8 @@ elements: | '#type': captcha '#title': CAPTCHA '#captcha_admin_mode': true + '#captcha_info': + form_id: '' '#captcha_type': image_captcha/Image webform_codemirror: '#type': webform_codemirror @@ -78,6 +79,13 @@ elements: | webform_email_multiple: '#type': webform_email_multiple '#title': 'Email multiple' + webform_height: + '#type': webform_height + '#title': 'Height (feet/inches)' + webform_height_multiple: + '#type': webform_height + '#title': 'Height (feet/inches) multiple' + '#multiple': true number: '#type': number '#title': Number @@ -107,6 +115,14 @@ elements: | webform_rating: '#type': webform_rating '#title': Rating + webform_same: + '#type': webform_same + '#title': 'Billing address is the same as the shipping address' + webform_scale: + '#type': webform_scale + '#title': Scale + '#min': 1 + '#max': 5 search: '#type': search '#title': Search @@ -165,11 +181,15 @@ elements: | '#message_type': warning '#message_message': 'This is a <strong>warning</strong> message.' '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/77245">Issue #77245: A place for JavaScript status messages</a>' + webform_more: + '#type': webform_more + '#title': More + '#more': 'This is more content' file_attachment_elements: '#type': details '#title': 'File attachment elements' '#open': true - 'webform_entity_print_attachment:pdf': + webform_entity_print_attachment_pdf: '#type': webform_entity_print_attachment '#title': 'Attachment PDF' webform_attachment_token: @@ -233,7 +253,7 @@ elements: | two: Two three: Three '#options_display': side_by_side - '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/994360">Issue #994360: #states cannot disable/enable radios and checkboxes</a><br /><a href="https://www.drupal.org/node/2836364">Issue #2836364: Wrapper attributes are not supported by composite elements, this includes radios and checkboxess.</a>' + '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/994360">Issue #994360: #states cannot disable/enable radios and checkboxes</a><br /><a href="https://www.drupal.org/node/2836364">Issue #2836364: Wrapper attributes are not supported by composite elements, this includes radios, checkboxes, and buttons.</a>' webform_checkboxes_other: '#type': webform_checkboxes_other '#title': 'Checkboxes other' @@ -279,7 +299,7 @@ elements: | two: Two three: Three '#options_display': side_by_side - '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/2731991">Issue #2731991: Setting required on radios marks all options required</a><br /><a href="https://www.drupal.org/node/994360">Issue #994360: #states cannot disable/enable radios and checkboxes</a><br /><a href="https://www.drupal.org/node/2836364">Issue #2836364: Wrapper attributes are not supported by composite elements, this includes radios and checkboxes.</a>' + '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/2731991">Issue #2731991: Setting required on radios marks all options required</a><br /><a href="https://www.drupal.org/node/994360">Issue #994360: #states cannot disable/enable radios and checkboxes</a><br /><a href="https://www.drupal.org/node/2836364">Issue #2836364: Wrapper attributes are not supported by composite elements, this includes radios, checkboxes, and buttons.</a>' webform_radios_other: '#type': webform_radios_other '#title': 'Radios other' @@ -378,6 +398,24 @@ elements: | webform_section: '#type': webform_section '#title': Section + webform_table: + '#type': table + '#header': + - 'Header 1' + - 'Header 2' + '#rows': + - + - 'Row 1 - Col 1' + - 'Row 1 - Col 2' + - + - 'Row 2 - Col 1' + - 'Row 2 - Col 2' + - + - 'Row 3 - Col 1' + - 'Row 3 - Col 2' + webform_table_row: + '#type': webform_table_row + '#title': 'Table row' date_time_elements: '#type': details '#title': 'Date/time elements' @@ -511,7 +549,6 @@ elements: | table: '#type': table '#title': Table - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_example_elements_composite.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_example_elements_composite.yml index da7ad15625..17236a0537 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_example_elements_composite.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_example_elements_composite.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -171,7 +170,6 @@ elements: | '#type': text_format '#title': 'Text format' '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/997826">Issue #997826: #states doesn''t work correctly with type text_format</a><br /><a href="https://www.drupal.org/node/2625128">Issue #2625128: Text format selection stays visible when using editor and a hidden webform state</a><br /><a href="https://www.drupal.org/node/1954968">Issue #1954968: Required CKEditor fields always fail HTML5 validation</a>' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_exporter_entity_reference.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_exporter_entity_reference.yml index c72de2a700..24ea2c2fe7 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_exporter_entity_reference.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_exporter_entity_reference.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -34,7 +33,6 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_exporter_options.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_exporter_options.yml index 5455ce0aeb..de0c51c5f6 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_exporter_options.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_exporter_options.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -44,7 +43,6 @@ elements: | one: One two: Two three: Three - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_access_denied.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_access_denied.yml index d1b4c20c73..38864a0760 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_access_denied.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_access_denied.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -19,7 +18,6 @@ elements: | textfield: '#type': textfield '#title': textfield - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_api.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_api.yml index 24b167c208..3ed8401a8f 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_api.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_api.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -119,7 +118,6 @@ elements: | '#options': 1: Administrator 0: Anonymous - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_archived.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_archived.yml index 9f94baa693..132d882ce6 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_archived.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_archived.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -18,7 +17,6 @@ category: 'Test: Webform' elements: | description: '#markup': 'This webform is archived.' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_assets.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_assets.yml index 6ea54edd06..6dee88a4bd 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_assets.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_assets.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -19,7 +18,6 @@ elements: | test: '#type': textfield '#title': 'Text field' - css: | .webform-submission-form { background-color: #cccccc; diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_autofill.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_autofill.yml index b4a7408b16..659433da76 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_autofill.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_autofill.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -22,7 +21,6 @@ elements: | textfield_excluded: '#type': textfield '#title': textfield_excluded - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_autofocus.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_autofocus.yml index 2be20e3f43..24de079675 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_autofocus.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_autofocus.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -19,7 +18,6 @@ elements: | test: '#type': textfield '#title': 'First input' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_closed.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_closed.yml index f15a72bf69..01457518a1 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_closed.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_closed.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: closed dependencies: @@ -18,7 +17,6 @@ category: 'Test: Webform' elements: | description: '#markup': 'This message should not be displayed' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_confidential.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_confidential.yml index bae5c76cce..a5221993c5 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_confidential.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_confidential.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -19,7 +18,6 @@ elements: | name: '#type': textfield '#title': Name - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_details_toggle.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_details_toggle.yml index 871560df0e..6e90823e5b 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_details_toggle.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_details_toggle.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -26,7 +25,6 @@ elements: | '#title': 'Details 02' details_02: '#markup': 'Detail 02 Markup' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_disable_autocomplete.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_disable_autocomplete.yml index f4559cc25b..98415fb960 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_disable_autocomplete.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_disable_autocomplete.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -21,7 +20,6 @@ elements: | test: '#type': email '#title': 'Test autocompletion is disabled.' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_disable_back.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_disable_back.yml index 20e27f003e..f24d095614 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_disable_back.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_disable_back.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -346,7 +345,6 @@ elements: | element_100: '#type': textfield '#title': 'Element #100' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_disable_inline_errors.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_disable_inline_errors.yml index 22cacdd6ed..d66bc8dd89 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_disable_inline_errors.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_disable_inline_errors.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -20,7 +19,6 @@ elements: | '#type': textfield '#title': textfield '#required': true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_draft_anonymous.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_draft_anonymous.yml index dc59725b6e..53e61c8794 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_draft_anonymous.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_draft_anonymous.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -23,7 +22,6 @@ elements: | comment: '#type': textarea '#title': Comment - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_draft_authenticated.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_draft_authenticated.yml index f1c03fcd35..5ffa77fb9c 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_draft_authenticated.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_draft_authenticated.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -23,7 +22,6 @@ elements: | comment: '#type': textarea '#title': Comment - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_draft_multiple.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_draft_multiple.yml index 4ff797e2e3..bac504ee12 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_draft_multiple.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_draft_multiple.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -23,7 +22,6 @@ elements: | comment: '#type': textarea '#title': Comment - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_inline_errors.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_inline_errors.yml index 032a111145..1c697c7bfb 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_inline_errors.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_inline_errors.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -127,7 +126,6 @@ elements: | 1: 'Option 1' 2: 'Option 2' 3: 'Option 3' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit.yml index 36abfb1c6f..0fd8da4008 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -36,10 +35,10 @@ elements: | remaining:webform:source_entity: [webform_submission:remaining:webform:source_entity]<br/> limit:user:source_entity: [webform_submission:limit:user:source_entity]<br/> remaining:user:source_entity: [webform_submission:remaining:user:source_entity]<br/> + name: '#type': textfield '#title': Name - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit_total_unique.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit_total_unique.yml index c3dfaba1b4..7ee691e7f4 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit_total_unique.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit_total_unique.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -19,7 +18,6 @@ elements: | name: '#type': textfield '#title': Name - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit_user_unique.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit_user_unique.yml index 92f793e157..4be550f70c 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit_user_unique.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit_user_unique.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -19,7 +18,6 @@ elements: | name: '#type': textfield '#title': Name - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit_wait.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit_wait.yml index 35190979f0..1d99c3baf0 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit_wait.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_limit_wait.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -19,7 +18,6 @@ elements: | name: '#type': textfield '#title': Name - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_long_100.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_long_100.yml index d7303691a1..1c5259b1b0 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_long_100.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_long_100.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -316,7 +315,6 @@ elements: | element_100: '#type': textfield '#title': 'Element #100' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_long_200.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_long_200.yml index 54a134d45a..6e481aaa2d 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_long_200.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_long_200.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -616,7 +615,6 @@ elements: | element_200: '#type': textfield '#title': 'Element #200' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_long_300.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_long_300.yml index 6f75cdf909..485c60e256 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_long_300.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_long_300.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -916,7 +915,6 @@ elements: | element_300: '#type': textfield '#title': 'Element #300' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_novalidate.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_novalidate.yml index ba550bdbee..225826b00a 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_novalidate.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_novalidate.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -23,7 +22,6 @@ elements: | '#title': 'Test required element with a custom error message.' '#required': true '#required_error': 'A custom error message' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_opening.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_opening.yml index ae9c879117..6acbc94ae0 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_opening.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_opening.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: scheduled dependencies: @@ -18,7 +17,6 @@ category: 'Test: Webform' elements: | description: '#markup': 'This message should not be displayed' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_prepopulate.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_prepopulate.yml index 1753ca7304..1dbc9cc8e9 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_prepopulate.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_prepopulate.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -39,7 +38,6 @@ elements: | type: _none prepopulate_name: '#markup': '<a href="?source_entity_type=user&source_entity_id=1&name=John+Smith&colors[]=red&colors[]=white&users[]=1">Prepopulate elements and source entity using query string parameter ?source_entity_type=user&source_entity_id=1&name=John+Smith&colors[]=red&colors[]=white&users[]=1</a>' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_preview.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_preview.yml index 695fa2f07f..857befa9a9 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_preview.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_preview.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -52,7 +51,6 @@ elements: | '#format_attributes': class: - format-attributes-class - css: | .format-attributes-class { border: 1px dashed #ccc; diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_properties.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_properties.yml index 1a11fd8729..738af29fae 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_properties.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_properties.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -31,7 +30,6 @@ elements: | q: '#type': search '#title': 'Search Google' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_remote_addr.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_remote_addr.yml index a64996791d..a628ff9941 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_remote_addr.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_remote_addr.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -19,7 +18,6 @@ elements: | name: '#type': textfield '#title': Name - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_required.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_required.yml index fb51c54e6e..ccc217c615 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_required.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_required.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -20,7 +19,6 @@ elements: | '#type': textfield '#title': textfield '#required': true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_reset.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_reset.yml index a7c78ead19..5797b9ac96 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_reset.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_reset.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -20,7 +19,6 @@ elements: | '#type': textfield '#title': 'Text field' '#required': true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_results_disabled.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_results_disabled.yml index c89d0ce1fd..50a7c578b5 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_results_disabled.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_results_disabled.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -18,7 +17,6 @@ category: 'Test: Form' elements: | description: '#markup': 'This webform will not save any submissions.' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_submit_back.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_submit_back.yml index b9d45e2be4..935e9e4011 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_submit_back.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_submit_back.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -30,7 +29,6 @@ elements: | '#title': 'Element 2' '#type': textfield '#default_value': '{element_2}' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_submit_once.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_submit_once.yml index 8da87cebc1..4a11c0f8b4 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_submit_once.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_submit_once.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -27,7 +26,6 @@ elements: | wizard_3: '#type': webform_wizard_page '#title': 'Wizard page #3' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_submit_text.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_submit_text.yml index b9b84a93c9..e0f53bcd80 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_submit_text.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_submit_text.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -20,7 +19,6 @@ elements: | '#type': webform_actions '#title': 'Submit button(s)' '#submit__label': 'Custom submit text' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_template.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_template.yml index 09c9d79ca7..749ab23b8f 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_template.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_template.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: closed dependencies: @@ -18,7 +17,6 @@ category: 'Test: Webform' elements: | description: '#markup': 'This webform is a template' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_unsaved.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_unsaved.yml index 0233a41f81..d619fb8f34 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_unsaved.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_unsaved.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -24,7 +23,6 @@ elements: | text_format: '#type': text_format '#title': text_format - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_unsaved_wizard.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_unsaved_wizard.yml index c4f532379c..908833be94 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_unsaved_wizard.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_unsaved_wizard.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -25,10 +24,9 @@ elements: | page_02: '#type': webform_wizard_page '#title': page_2 - testfield_1: + testfield_2: '#type': textfield '#title': textfield_2 - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_validate.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_validate.yml index 27009b3af4..46c8665289 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_validate.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_validate.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -19,7 +18,6 @@ elements: | custom: '#title': 'Custom Field' '#type': textfield - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_access.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_access.yml index 0e88a76d59..df9c04ea46 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_access.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_access.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -57,7 +56,6 @@ elements: | '#type': textfield '#title': textfield_private '#default_value': '{textfield_private}' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_advanced.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_advanced.yml index 35e07914b8..0e6e3fe261 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_advanced.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_advanced.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -61,7 +60,6 @@ elements: | '#type': textarea '#required': true '#default_value': 'Here is some feedback' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_basic.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_basic.yml index b340323f0d..aacd91c617 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_basic.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_basic.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -30,7 +29,6 @@ elements: | '#title': 'Element 2' '#type': textfield '#default_value': '{element_2}' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_conditional.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_conditional.yml index 7194be5fb0..91c6def06f 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_conditional.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_conditional.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -99,7 +98,6 @@ elements: | unchecked: true page_5_markup: '#markup': 'This is page 5.' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_custom.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_custom.yml index 23958eeb6e..3077224eff 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_custom.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_custom.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -62,7 +61,6 @@ elements: | '#type': webform_actions '#title': 'Submit button(s)' '#submit__label': Apply - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_links.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_links.yml index 88fc1e70f1..949b36e954 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_links.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_links.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -30,7 +29,6 @@ elements: | '#title': 'Element 2' '#type': textfield '#default_value': '{element_2}' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_100.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_100.yml index c14aa43592..b15a1a4e3e 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_100.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_100.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -346,7 +345,6 @@ elements: | element_100: '#type': textfield '#title': 'Element #100' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_200.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_200.yml index 633fd78ae8..c7c0df10ef 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_200.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_200.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -676,7 +675,6 @@ elements: | element_200: '#type': textfield '#title': 'Element #200' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_300.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_300.yml index 556abc3d37..3c33e86de3 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_300.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_long_300.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -1006,7 +1005,6 @@ elements: | element_300: '#type': textfield '#title': 'Element #300' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_validate.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_validate.yml index 99b1602df1..b6b7c279e3 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_validate.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_validate.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -59,7 +58,6 @@ elements: | wizard_3: '#type': webform_wizard_page '#title': 'Wizard page #3' - css: '' javascript: '' settings: @@ -247,5 +245,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_validate_comp.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_validate_comp.yml index 3e27786342..acc2e5ec5e 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_validate_comp.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_form_wizard_validate_comp.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -107,7 +106,6 @@ elements: | wizard_3: '#type': webform_wizard_page '#title': 'Wizard page #3' - css: '' javascript: '' settings: @@ -295,5 +293,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_action.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_action.yml index 56fb61bd8d..03d9b17f0b 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_action.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_action.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -48,7 +47,6 @@ elements: | '#attributes': readonly: readonly style: 'background-color: #eee' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email.yml index 742e295857..f152ad66c1 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -41,7 +40,6 @@ elements: | '#type': textarea '#required': true '#default_value': '{message}' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_advanced.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_advanced.yml index fe542ddeb3..92abea0b86 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_advanced.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_advanced.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -56,7 +55,6 @@ elements: | '#title': Notes '#private': true '#default_value': 'These notes are private.' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_mapping.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_mapping.yml index 344eeb9608..dfdcaccc1b 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_mapping.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_mapping.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -31,7 +30,6 @@ elements: | '#title': radios_other '#options': sex '#description': 'Check and enter ''Other'' to trigger an email.' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_roles.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_roles.yml index 958772f753..2791180c62 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_roles.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_roles.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -23,7 +22,6 @@ elements: | authenticated: 'Authenticated (authenticated)' administrator: 'Administrator (administrator)' other: Other - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_states.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_states.yml index a7d42ca928..9b1913b233 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_states.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_states.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -18,7 +17,6 @@ category: 'Test: Handler' elements: | message: '#markup': 'Click ''Save Draft'' and ''Submit'' to send emails triggered by submissions state.' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_twig.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_twig.yml index 5787b5655b..7ed79befbb 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_twig.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_email_twig.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -41,7 +40,6 @@ elements: | '#type': textarea '#required': true '#default_value': '{message}' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_settings.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_settings.yml index dda3fc7bab..489867959a 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_settings.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_handler_settings.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -61,7 +60,6 @@ elements: | '#type': textfield '#title': 'Draft loaded message' '#default_value': '{Custom draft loaded message}' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_libraries_optional.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_libraries_optional.yml index fe804bab5b..761eda3cd2 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_libraries_optional.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_libraries_optional.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -85,7 +84,6 @@ elements: | signature: '#type': webform_signature '#title': Signature - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_rendering.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_rendering.yml index 6cd187b911..db9b928af3 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_rendering.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_rendering.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -50,7 +49,6 @@ elements: | '#default_value': value: '<p><em>{default_value}</em></p>' format: basic_html - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_autocomplete.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_autocomplete.yml index 8059f661ff..5fb3a88416 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_autocomplete.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_autocomplete.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -160,7 +159,6 @@ elements: | kitten_3: text: 'Cute Kitten 3' src: 'http://placekitten.com/130/200' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_disabled.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_disabled.yml index c2c1c0015c..246cacecbf 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_disabled.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_disabled.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -66,7 +65,7 @@ elements: | required: ':input[name="trigger"]': checked: true - 'webform_entity_print_attachment:pdf': + webform_entity_print_attachment_pdf: '#type': webform_entity_print_attachment '#title': 'Attachment PDF' '#default_value': Loremipsum @@ -287,7 +286,7 @@ elements: | date: '#type': date '#title': Date - '#default_value': '2022-01-23T21:13:17-0500' + '#default_value': '2040-04-05T12:19:45-0500' '#states': disabled: ':input[name="trigger"]': @@ -299,7 +298,7 @@ elements: | '#type': datetime '#title': Date/time '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/2419131">Issue #2419131: #states attribute does not work on #type datetime</a>' - '#default_value': '2018-11-16T11:10:07-0500' + '#default_value': '2020-10-10T04:12:25-0400' '#states': disabled: ':input[name="trigger"]': @@ -310,7 +309,7 @@ elements: | datelist: '#type': datelist '#title': 'Date list' - '#default_value': '2011-05-20T14:49:30-0400' + '#default_value': '2013-04-30T18:19:05-0400' '#states': disabled: ':input[name="trigger"]': @@ -369,7 +368,7 @@ elements: | '#selection_settings': include_anonymous: true '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/2826451">Issue #2826451: TermSelection returning HTML characters in select list</a>' - '#default_value': 10 + '#default_value': 9 '#states': disabled: ':input[name="trigger"]': @@ -445,6 +444,17 @@ elements: | required: ':input[name="trigger"]': checked: true + webform_height: + '#type': webform_height + '#title': 'Height (feet/inches)' + '#default_value': 59 + '#states': + disabled: + ':input[name="trigger"]': + checked: true + required: + ':input[name="trigger"]': + checked: true webform_horizontal_rule: '#type': webform_horizontal_rule '#attributes': @@ -888,11 +898,11 @@ elements: | webform_term_checkboxes: '#type': webform_term_checkboxes '#title': 'Term checkboxes' - '#vocabulary': second + '#vocabulary': tags '#default_value': - - 161 - - 101 - - 177 + - Loremipsum + - Oratione + - Dixisset '#states': disabled: ':input[name="trigger"]': @@ -903,8 +913,8 @@ elements: | webform_term_select: '#type': webform_term_select '#title': 'Term select' - '#vocabulary': second - '#default_value': 161 + '#vocabulary': tags + '#default_value': Loremipsum '#states': disabled: ':input[name="trigger"]': @@ -996,16 +1006,6 @@ elements: | required: ':input[name="trigger"]': checked: true - webform_variant: - '#type': webform_variant - '#title': 'Variant' - '#states': - disabled: - ':input[name="trigger"]': - checked: true - required: - ':input[name="trigger"]': - checked: true webform_video_file: '#type': webform_video_file '#title': 'Video file' @@ -1016,7 +1016,6 @@ elements: | required: ':input[name="trigger"]': checked: true - css: '' javascript: '' settings: @@ -1204,5 +1203,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_invisible.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_invisible.yml index c51faa1926..67ca393b28 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_invisible.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_invisible.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -86,7 +85,7 @@ elements: | invisible: ':input[name="trigger"]': checked: true - 'webform_entity_print_attachment:pdf': + webform_entity_print_attachment_pdf: '#type': webform_entity_print_attachment '#title': 'Attachment PDF' '#default_value': Loremipsum @@ -259,7 +258,7 @@ elements: | date: '#type': date '#title': Date - '#default_value': '2013-03-16T13:06:41-0400' + '#default_value': '2022-11-06T09:35:54-0500' '#states': invisible: ':input[name="trigger"]': @@ -268,7 +267,7 @@ elements: | '#type': datetime '#title': Date/time '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/2419131">Issue #2419131: #states attribute does not work on #type datetime</a>' - '#default_value': '2028-03-18T15:58:00-0400' + '#default_value': '2035-11-08T21:25:29-0500' '#states': invisible: ':input[name="trigger"]': @@ -276,7 +275,7 @@ elements: | datelist: '#type': datelist '#title': 'Date list' - '#default_value': '2031-12-15T00:45:18-0500' + '#default_value': '2020-01-15T09:55:30-0500' '#states': invisible: ':input[name="trigger"]': @@ -381,6 +380,14 @@ elements: | invisible: ':input[name="trigger"]': checked: true + webform_height: + '#type': webform_height + '#title': 'Height (feet/inches)' + '#default_value': 47 + '#states': + invisible: + ':input[name="trigger"]': + checked: true webform_horizontal_rule: '#type': webform_horizontal_rule '#attributes': @@ -734,11 +741,11 @@ elements: | webform_term_checkboxes: '#type': webform_term_checkboxes '#title': 'Term checkboxes' - '#vocabulary': second + '#vocabulary': tags '#default_value': - - 161 - - 101 - - 177 + - Loremipsum + - Oratione + - Dixisset '#states': invisible: ':input[name="trigger"]': @@ -746,8 +753,8 @@ elements: | webform_term_select: '#type': webform_term_select '#title': 'Term select' - '#vocabulary': second - '#default_value': 161 + '#vocabulary': tags + '#default_value': Loremipsum '#states': invisible: ':input[name="trigger"]': @@ -815,13 +822,6 @@ elements: | invisible: ':input[name="trigger"]': checked: true - webform_variant: - '#type': webform_variant - '#title': 'Variant' - '#states': - invisible: - ':input[name="trigger"]': - checked: true webform_video_file: '#type': webform_video_file '#title': 'Video file' @@ -829,7 +829,6 @@ elements: | invisible: ':input[name="trigger"]': checked: true - css: '' javascript: '' settings: @@ -1017,5 +1016,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_required.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_required.yml index b07b1c89a7..5a9bac88c4 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_required.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_required.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -147,7 +146,6 @@ elements: | two: Two three: Three '#required': true - css: '' javascript: '' settings: @@ -335,5 +333,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_visible.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_visible.yml index 5dfd4d1b31..48d3662418 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_visible.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_client_visible.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -107,7 +106,7 @@ elements: | required: ':input[name="trigger"]': checked: true - 'webform_entity_print_attachment:pdf': + webform_entity_print_attachment_pdf: '#type': webform_entity_print_attachment '#title': 'Attachment PDF' '#default_value': Loremipsum @@ -328,7 +327,7 @@ elements: | date: '#type': date '#title': Date - '#default_value': '2037-02-02T21:33:13-0500' + '#default_value': '2015-12-16T06:43:56-0500' '#states': visible: ':input[name="trigger"]': @@ -340,7 +339,7 @@ elements: | '#type': datetime '#title': Date/time '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/2419131">Issue #2419131: #states attribute does not work on #type datetime</a>' - '#default_value': '2032-02-12T16:45:54-0500' + '#default_value': '2040-10-30T22:38:28-0500' '#states': visible: ':input[name="trigger"]': @@ -351,7 +350,7 @@ elements: | datelist: '#type': datelist '#title': 'Date list' - '#default_value': '2020-02-27T14:56:48-0500' + '#default_value': '2023-04-06T13:22:31-0400' '#states': visible: ':input[name="trigger"]': @@ -410,7 +409,7 @@ elements: | '#selection_settings': include_anonymous: true '#description': '<b>Known Issues:</b><br /><a href="https://www.drupal.org/node/2826451">Issue #2826451: TermSelection returning HTML characters in select list</a>' - '#default_value': 10 + '#default_value': 1 '#states': visible: ':input[name="trigger"]': @@ -486,6 +485,17 @@ elements: | required: ':input[name="trigger"]': checked: true + webform_height: + '#type': webform_height + '#title': 'Height (feet/inches)' + '#default_value': 37 + '#states': + visible: + ':input[name="trigger"]': + checked: true + required: + ':input[name="trigger"]': + checked: true webform_horizontal_rule: '#type': webform_horizontal_rule '#attributes': @@ -929,11 +939,11 @@ elements: | webform_term_checkboxes: '#type': webform_term_checkboxes '#title': 'Term checkboxes' - '#vocabulary': second + '#vocabulary': tags '#default_value': - - 161 - - 101 - - 177 + - Loremipsum + - Oratione + - Dixisset '#states': visible: ':input[name="trigger"]': @@ -944,8 +954,8 @@ elements: | webform_term_select: '#type': webform_term_select '#title': 'Term select' - '#vocabulary': second - '#default_value': 161 + '#vocabulary': tags + '#default_value': Loremipsum '#states': visible: ':input[name="trigger"]': @@ -1037,16 +1047,6 @@ elements: | required: ':input[name="trigger"]': checked: true - webform_variant: - '#type': webform_variant - '#title': 'Variant' - '#states': - visible: - ':input[name="trigger"]': - checked: true - required: - ':input[name="trigger"]': - checked: true webform_video_file: '#type': webform_video_file '#title': 'Video file' @@ -1057,7 +1057,6 @@ elements: | required: ':input[name="trigger"]': checked: true - css: '' javascript: '' settings: @@ -1245,5 +1244,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_crosspage.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_crosspage.yml index dc88e20abb..ec9c1199f4 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_crosspage.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_crosspage.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -46,7 +45,6 @@ elements: | checked: true ':input[name="trigger_2"]': checked: true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_disabled.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_disabled.yml index 76a26a75db..df5254a23b 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_disabled.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_disabled.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -60,7 +59,6 @@ elements: | disabled: ':input[name="disabled"]': checked: true - css: '' javascript: '' settings: @@ -248,5 +246,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_clear.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_clear.yml index 6961de174e..3cd8a74a19 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_clear.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_clear.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -103,7 +102,6 @@ elements: | '#type': textfield '#title': dependent_details_textfield '#default_value': '{dependent_details_textfield}' - css: '' javascript: '' settings: @@ -291,5 +289,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_comp.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_comp.yml index 633a57fb1f..f9c57c8c33 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_comp.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_comp.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -77,7 +76,6 @@ elements: | '#first__title': webform_name_nested_first '#last__required': true '#last__title': webform_name_nested_last - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_containers.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_containers.yml index a5f9cef42b..48cf5ad6ab 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_containers.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_containers.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -74,7 +73,6 @@ elements: | checked: true ':input[name="visible_slide_textfield"]': filled: true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_custom.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_custom.yml index 5c3c906a89..3c4d4ed07b 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_custom.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_custom.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -150,7 +149,6 @@ elements: | visible-slide: ':input[name="trigger_visible_slide"]': checked: true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_file.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_file.yml index af8cf8a75d..97be7de50a 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_file.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_file.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -26,7 +25,6 @@ elements: | required: ':input[name="files[trigger_file]"]': filled: true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_hidden.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_hidden.yml index 5cc36f3a4c..1e5f013013 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_hidden.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_hidden.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -139,7 +138,6 @@ elements: | invisible: ':input[name="trigger_checkbox"]': checked: true - css: '' javascript: '' settings: @@ -327,5 +325,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_likert.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_likert.yml index 8ea039b63f..b0cabed396 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_likert.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_likert.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -23,7 +22,7 @@ elements: | dependent_likert: '#type': webform_likert '#title': dependent_likert - '#required': true, + '#required': 'true,' '#questions': q1: q1 q2: q2 @@ -34,7 +33,6 @@ elements: | visible: ':input[name="trigger_likert"]': checked: true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_multiple.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_multiple.yml index 3761fc597c..7417dcaea5 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_multiple.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_multiple.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -28,7 +27,6 @@ elements: | required: ':input[name="trigger_required"]': checked: true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_nested.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_nested.yml index 5d645fdd82..e77c84e769 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_nested.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_nested.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -59,7 +58,6 @@ elements: | checked: true ':input[name="b"]': checked: true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_preview.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_preview.yml index 14143032cb..b7516ea887 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_preview.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_preview.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -53,7 +52,6 @@ elements: | '#type': textfield '#title': nested_textfield '#default_value': '{value}' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_required.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_required.yml index 5ec1ce259d..3e40e4dcb7 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_required.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_required.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -334,7 +333,6 @@ elements: | visible: ':input[name="currency_trigger"]': checked: true - address_trigger_details: '#type': details '#title': address_trigger @@ -448,7 +446,6 @@ elements: | required: ':input[name="composite_sub_elements_required_trigger"]': value: b - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_save.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_save.yml index 4f7365315b..f61047073f 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_save.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_save.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -71,7 +70,6 @@ elements: | '#type': textfield '#title': dependent_details_textfield '#default_value': '{dependent_details_textfield}' - css: '' javascript: '' settings: @@ -259,5 +257,7 @@ handlers: status: true conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_wizard.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_wizard.yml index a3bbc2e359..ed7fd63a58 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_wizard.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_server_wizard.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -234,7 +233,6 @@ elements: | '#default_value': '{default_value}' '#required': '{default_value}' '#description': '<b>Required:</b> page_01_trigger_checkbox:checked' - css: '' javascript: '' settings: @@ -422,5 +420,7 @@ handlers: status: true conditions: { } weight: 1 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_to_text.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_to_text.yml index 21217bbbad..177d156622 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_to_text.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_to_text.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -48,10 +47,10 @@ elements: | required: - ':input[name="some_trigger"]': unchecked: false - - 'or' + - or - ':input[name="some_value"]': value: 1 - - 'or' + - or - ':input[name="some_number"]': value: greater_equal: 1 @@ -65,11 +64,10 @@ elements: | - - ':input[name="some_value"]': value: 1 - - 'or' + - or - ':input[name="some_number"]': value: between: '1:10' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_triggers.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_triggers.yml index fea61d99cd..0ceaaee813 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_triggers.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_states_triggers.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -131,7 +130,6 @@ elements: | visible: 'details[data-webform-key="collapsed_trigger"]': collapsed: true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_submission_label.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_submission_label.yml index 604a442466..b7cdfcebbe 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_submission_label.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_submission_label.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -20,7 +19,6 @@ elements: | '#type': textfield '#title': Name '#required': true - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_submission_log.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_submission_log.yml index 4f29572265..2fd098585d 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_submission_log.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_submission_log.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -19,7 +18,6 @@ elements: | value: '#type': textfield '#title': 'Enter a value' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_submission_views.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_submission_views.yml index b92c84dc99..d3d18c1257 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_submission_views.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_submission_views.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -19,7 +18,6 @@ elements: | textfield: '#type': textfield '#title': textfield - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_token.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_token.yml index 1aa178810f..4f1c00ed08 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_token.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_token.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -35,7 +34,7 @@ elements: | Close long: [webform:close:long] Element title: [webform:element:webform_tokens:title] Element description: [webform:element:webform_tokens:description] - + webform_submission_tokens: '#type': webform_codemirror '#mode': text @@ -68,7 +67,7 @@ elements: | URL: [webform_submission:url] URL Edit Webform: [webform_submission:url:edit-form] UUID: [webform_submission:uuid] - + webform_submission_source_entity_tokens: '#type': webform_codemirror '#mode': text @@ -97,7 +96,7 @@ elements: | Summary: [webform_submission:source-entity:summary] Title: [webform_submission:source-entity:title] URL: [webform_submission:source-entity:url] - + webform_submission_node_tokens: '#type': webform_codemirror '#mode': text @@ -126,7 +125,6 @@ elements: | Summary: [webform_submission:node:summary] Title: [webform_submission:node:title] URL: [webform_submission:node:url] - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_token_operations.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_token_operations.yml index b087ba4c02..07cd561f91 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_token_operations.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_token_operations.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_token_submission_value.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_token_submission_value.yml index 7d02817481..01c3ebcebd 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_token_submission_value.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_token_submission_value.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -142,7 +141,6 @@ elements: | '#type': textfield '#title': script '#default_value': '<script>alert(''hi'');</script>' - css: '' javascript: '' settings: diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant.yml index 00f6c61b32..b5bb577c5d 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -20,7 +19,6 @@ elements: | '#type': webform_variant '#title': test_offcanvas_width '#variant': test_offcanvas_width - css: '' javascript: '' settings: @@ -208,5 +206,7 @@ handlers: status: false conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: { } diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant_multiple.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant_multiple.yml index 26c68e9770..26c3419826 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant_multiple.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant_multiple.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -34,7 +33,6 @@ elements: | '#wrapper_attributes': style: 'display: inline-block; margin: 0; padding: 0 20px; font-size: 100px; ' '#markup': '{0}' - css: '' javascript: '' settings: @@ -222,7 +220,9 @@ handlers: status: false conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: a: id: override diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant_override.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant_override.yml index 8ad0aeb0aa..905ba30994 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant_override.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant_override.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -24,7 +23,6 @@ elements: | textfield: '#type': textfield '#title': textfield - css: '' javascript: '' settings: @@ -212,7 +210,9 @@ handlers: status: false conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: settings: id: override @@ -241,7 +241,7 @@ variants: elements: | textfield: '#placeholder': 'This is a placeholder' - + handlers: { } debug: true handlers: @@ -287,6 +287,6 @@ variants: elements: | '#method': get '#action': 'https://drupal.org' - + handlers: { } debug: true diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant_randomize.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant_randomize.yml index 4332bfe28e..75e7597c1f 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant_randomize.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_variant_randomize.yml @@ -1,4 +1,3 @@ -uuid: null langcode: en status: open dependencies: @@ -26,7 +25,6 @@ elements: | '#attributes': style: 'display: inline-block; margin: 0; padding: 0 20px; font-size: 100px;' '#markup': '{X}' - css: '' javascript: '' settings: @@ -214,7 +212,9 @@ handlers: status: false conditions: { } weight: 0 - settings: { } + settings: + format: yaml + submission: false variants: a: id: override diff --git a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_description_tooltip.inc b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_description_tooltip.inc index 3b4146e2a7..c11643e6ac 100644 --- a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_description_tooltip.inc +++ b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_description_tooltip.inc @@ -42,7 +42,8 @@ function webform_test_test_element_description_tooltip() { $element['#description'] = (string) t("This is a description for the '@type' element.", ['@type' => $element_type]); $element['#description_display'] = 'tooltip'; - $data[$category_id][$element_type] = $element; + $element_key = str_replace(':', '_', $element_type); + $data[$category_id][$element_key] = $element; } // Move other elements last. diff --git a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_disabled.inc b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_disabled.inc index b6af22d399..1d103ef71e 100644 --- a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_disabled.inc +++ b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_disabled.inc @@ -29,7 +29,8 @@ function webform_test_test_element_disabled() { // Set disabled. $element['#disabled'] = TRUE; - $data[$element_type] = $element; + $element_key = str_replace(':', '_', $element_type); + $data[$element_key] = $element; } return $data; diff --git a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_format.inc b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_format.inc index 7075ee76b0..486a18869a 100644 --- a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_format.inc +++ b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_format.inc @@ -113,7 +113,9 @@ function webform_test_test_element_format(WebformInterface $webform, $composite '#open' => TRUE, ]; } - $data[$category_id][$element_type] = [ + + $element_key = str_replace(':', '_', $element_type); + $data[$category_id][$element_key] = [ '#type' => 'details', '#title' => $element['#title'], ]; @@ -124,7 +126,8 @@ function webform_test_test_element_format(WebformInterface $webform, $composite } foreach ($items_formats as $items_format_name => $items_format_title) { - $format_element_type = implode('_', array_filter([$element_type, $item_format_name, $items_format_name])); + $format_element_type = implode('_', array_filter([$element_key, $item_format_name, $items_format_name])); + $format_element_type = str_replace(':', '_', $format_element_type); $format_element_title = $element['#title'] . ' (' . implode(' - ', array_filter([$item_format_title, $items_format_title])) . ')'; $format_element = $element; @@ -135,7 +138,7 @@ function webform_test_test_element_format(WebformInterface $webform, $composite if ($items_format_name) { $format_element['#format_items'] = $items_format_name; } - $data[$category_id][$element_type][$format_element_type] = $format_element; + $data[$category_id][$element_key][$format_element_type] = $format_element; } } } diff --git a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_help_display.inc b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_help_display.inc index b458155edc..7f81d96411 100644 --- a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_help_display.inc +++ b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_help_display.inc @@ -57,7 +57,8 @@ function webform_test_test_element_help_display() { 'element_after' => 'element_after', ]; - $data[$category_id][$element_type . '_help'] = [ + $element_key = str_replace(':', '_', $element_type); + $data[$category_id][$element_key . '_help'] = [ '#markup' => (isset($element['#title'])) ? $element['#title'] . ' (' . $element_type . ')' : $element_type, '#prefix' => '<h3>', '#suffix' => '</h3>', @@ -72,9 +73,9 @@ function webform_test_test_element_help_display() { else { $example_element['#help'] .= ' (' . $help_display . ')'; } - $data[$category_id][$element_type . '_' . $help_display] = $example_element; + $data[$category_id][$element_key . '_' . $help_display] = $example_element; } - $data[$category_id][$element_type . '_hr'] = ['#type' => 'webform_horizontal_rule']; + $data[$category_id][$element_key . '_hr'] = ['#type' => 'webform_horizontal_rule']; } diff --git a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_title_display.inc b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_title_display.inc index 211ebeb495..0b28b4c364 100644 --- a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_title_display.inc +++ b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_element_title_display.inc @@ -93,7 +93,8 @@ function webform_test_test_element_title_display() { unset($title_displays['inline']); } - $data[$category_id][$element_type . '_title'] = [ + $element_key = str_replace(':', '_', $element_type); + $data[$category_id][$element_key . '_title'] = [ '#markup' => $element['#title'] . ' (' . $element_type . ')', '#prefix' => '<h3>', '#suffix' => '</h3>', @@ -102,9 +103,9 @@ function webform_test_test_element_title_display() { $example_element = $element; $example_element['#title'] .= ' (' . $title_display . ')'; $example_element['#title_display'] = $title_display; - $data[$category_id][$element_type . '_' . $title_display] = $example_element; + $data[$category_id][$element_key . '_' . $title_display] = $example_element; } - $data[$category_id][$element_type . '_hr'] = ['#type' => 'webform_horizontal_rule']; + $data[$category_id][$element_key . '_hr'] = ['#type' => 'webform_horizontal_rule']; } diff --git a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_example_elements.inc b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_example_elements.inc index ef243b8c00..e9ac0011cc 100644 --- a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_example_elements.inc +++ b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_example_elements.inc @@ -43,7 +43,8 @@ function webform_test_test_example_elements() { '#open' => TRUE, ]; } - $data[$category_id][$element_type] = $element; + $element_key = str_replace(':', '_', $element_type); + $data[$category_id][$element_key] = $element; // Multiple value composite. if ($webform_element->supportsMultipleValues() && !$webform_element->hasMultipleValues($element)) { @@ -57,7 +58,7 @@ function webform_test_test_example_elements() { if ($property === 'multiple' && $webform_element->hasProperty('select2')) { $multiple_element['#select2'] = TRUE; } - $data[$category_id][$element_type . '_' . $property] = $multiple_element; + $data[$category_id][$element_key . '_' . $property] = $multiple_element; } } } diff --git a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_example_elements_composite.inc b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_example_elements_composite.inc index 5ddb25a517..3f3fd3299e 100644 --- a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_example_elements_composite.inc +++ b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_example_elements_composite.inc @@ -38,8 +38,10 @@ function webform_test_test_example_elements_composite() { '#open' => TRUE, ]; + $element_key = str_replace(':', '_', $element_type); + // Single value composite. - $data[$element_type . '_example'][$element_type] = $element; + $data[$element_key . '_example'][$element_key] = $element; // Multiple value composite. if ($webform_element->supportsMultipleValues()) { @@ -48,7 +50,7 @@ function webform_test_test_example_elements_composite() { if ((!in_array($element_type, ['webform_contact']) && $webform_element->hasProperty('multiple__header'))) { $element['#multiple__header'] = TRUE; } - $data[$element_type . '_example'][$element_type . '_multiple'] = $element; + $data[$element_key . '_example'][$element_key . '_multiple'] = $element; } } return $data; diff --git a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_states.inc b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_states.inc index 76b79c7e1a..ed2d201974 100644 --- a/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_states.inc +++ b/web/modules/webform/tests/modules/webform_test/includes/webform_test.test_states.inc @@ -75,7 +75,9 @@ function _webform_test_states($type, array $default_properties = []) { $element += $default_properties; $group = ($webform_element->isContainer($element)) ? 'containers' : 'elements'; - $data[$group][$element_type] = $element; + + $element_key = str_replace(':', '_', $element_type); + $data[$group][$element_key] = $element; } return $data['containers'] + $data['elements']; diff --git a/web/modules/webform/tests/modules/webform_test/webform_test.info.yml b/web/modules/webform/tests/modules/webform_test/webform_test.info.yml index 443369e524..25e5865c73 100644 --- a/web/modules/webform/tests/modules/webform_test/webform_test.info.yml +++ b/web/modules/webform/tests/modules/webform_test/webform_test.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test/webform_test.module b/web/modules/webform/tests/modules/webform_test/webform_test.module index d908b423b5..9f0f4628da 100644 --- a/web/modules/webform/tests/modules/webform_test/webform_test.module +++ b/web/modules/webform/tests/modules/webform_test/webform_test.module @@ -146,6 +146,7 @@ function _webform_test_get_element_preview($type, array $options = []) { static $skipped = [ 'webform_example_element', 'webform_example_composite', + 'webform_test_offcanvas_width_element', ]; // Skip certain elements that should never be included in test forms. @@ -166,6 +167,12 @@ function _webform_test_get_element_preview($type, array $options = []) { return FALSE; } + // Skip custom options. + // @see \Drupal\webform_options_custom\Entity\WebformOptionsCustom::getPreview + if (isset($element['#type']) && $element['#type'] === 'webform_options_custom') { + return FALSE; + } + // Add known issues to #description. if ($options['issues']) { $issues = _webform_test_issues(); diff --git a/web/modules/webform/tests/modules/webform_test_ajax/webform_test_ajax.info.yml b/web/modules/webform/tests/modules/webform_test_ajax/webform_test_ajax.info.yml index 02b7062d39..83b694736b 100644 --- a/web/modules/webform/tests/modules/webform_test_ajax/webform_test_ajax.info.yml +++ b/web/modules/webform/tests/modules/webform_test_ajax/webform_test_ajax.info.yml @@ -7,7 +7,7 @@ dependencies: - 'drupal:block' - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_alter_hooks/webform_test_alter_hooks.info.yml b/web/modules/webform/tests/modules/webform_test_alter_hooks/webform_test_alter_hooks.info.yml index 58ef8847cc..f8275450bd 100644 --- a/web/modules/webform/tests/modules/webform_test_alter_hooks/webform_test_alter_hooks.info.yml +++ b/web/modules/webform/tests/modules/webform_test_alter_hooks/webform_test_alter_hooks.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_block_context/webform_test_block_context.info.yml b/web/modules/webform/tests/modules/webform_test_block_context/webform_test_block_context.info.yml index 19650a6eb5..2179671b18 100644 --- a/web/modules/webform/tests/modules/webform_test_block_context/webform_test_block_context.info.yml +++ b/web/modules/webform/tests/modules/webform_test_block_context/webform_test_block_context.info.yml @@ -7,7 +7,7 @@ dependencies: - 'drupal:block' - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_block_custom/webform_test_block_custom.info.yml b/web/modules/webform/tests/modules/webform_test_block_custom/webform_test_block_custom.info.yml index f3eb976f05..2856bb74d6 100644 --- a/web/modules/webform/tests/modules/webform_test_block_custom/webform_test_block_custom.info.yml +++ b/web/modules/webform/tests/modules/webform_test_block_custom/webform_test_block_custom.info.yml @@ -8,7 +8,7 @@ dependencies: - 'drupal:block_content' - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_block_submission_limit/webform_test_block_submission_limit.info.yml b/web/modules/webform/tests/modules/webform_test_block_submission_limit/webform_test_block_submission_limit.info.yml index 270bdeb65f..99ee4a7562 100644 --- a/web/modules/webform/tests/modules/webform_test_block_submission_limit/webform_test_block_submission_limit.info.yml +++ b/web/modules/webform/tests/modules/webform_test_block_submission_limit/webform_test_block_submission_limit.info.yml @@ -7,7 +7,7 @@ dependencies: - 'drupal:block' - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_config_performance/webform_test_config_performance.info.yml b/web/modules/webform/tests/modules/webform_test_config_performance/webform_test_config_performance.info.yml index 5f3445f8a7..c94d4fdb0c 100644 --- a/web/modules/webform/tests/modules/webform_test_config_performance/webform_test_config_performance.info.yml +++ b/web/modules/webform/tests/modules/webform_test_config_performance/webform_test_config_performance.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_editorial/webform_test_editorial.info.yml b/web/modules/webform/tests/modules/webform_test_editorial/webform_test_editorial.info.yml index 013b5485c1..881ab90456 100644 --- a/web/modules/webform/tests/modules/webform_test_editorial/webform_test_editorial.info.yml +++ b/web/modules/webform/tests/modules/webform_test_editorial/webform_test_editorial.info.yml @@ -7,7 +7,7 @@ configure: webform_test_editorial.index dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_element/webform_test_element.info.yml b/web/modules/webform/tests/modules/webform_test_element/webform_test_element.info.yml index b40c57b072..4c48a1a64c 100644 --- a/web/modules/webform/tests/modules/webform_test_element/webform_test_element.info.yml +++ b/web/modules/webform/tests/modules/webform_test_element/webform_test_element.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_element_input_masks/webform_test_element_input_masks.info.yml b/web/modules/webform/tests/modules/webform_test_element_input_masks/webform_test_element_input_masks.info.yml index 1c7216a1d4..09d7b60f59 100644 --- a/web/modules/webform/tests/modules/webform_test_element_input_masks/webform_test_element_input_masks.info.yml +++ b/web/modules/webform/tests/modules/webform_test_element_input_masks/webform_test_element_input_masks.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_entity_reference_views/webform_test_entity_reference_views.info.yml b/web/modules/webform/tests/modules/webform_test_entity_reference_views/webform_test_entity_reference_views.info.yml index 9054be4f74..1ce13e1aa4 100644 --- a/web/modules/webform/tests/modules/webform_test_entity_reference_views/webform_test_entity_reference_views.info.yml +++ b/web/modules/webform/tests/modules/webform_test_entity_reference_views/webform_test_entity_reference_views.info.yml @@ -9,7 +9,7 @@ dependencies: - 'drupal:views' - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_exporter/webform_test_exporter.info.yml b/web/modules/webform/tests/modules/webform_test_exporter/webform_test_exporter.info.yml index a4add6e0c9..3a41b49f8c 100644 --- a/web/modules/webform/tests/modules/webform_test_exporter/webform_test_exporter.info.yml +++ b/web/modules/webform/tests/modules/webform_test_exporter/webform_test_exporter.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_handler/webform_test_handler.info.yml b/web/modules/webform/tests/modules/webform_test_handler/webform_test_handler.info.yml index 99e13afc5b..19c69ec357 100644 --- a/web/modules/webform/tests/modules/webform_test_handler/webform_test_handler.info.yml +++ b/web/modules/webform/tests/modules/webform_test_handler/webform_test_handler.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_handler_invoke_alter/webform_test_handler_invoke_alter.info.yml b/web/modules/webform/tests/modules/webform_test_handler_invoke_alter/webform_test_handler_invoke_alter.info.yml index 11d0bc560e..eb89cefdb0 100644 --- a/web/modules/webform/tests/modules/webform_test_handler_invoke_alter/webform_test_handler_invoke_alter.info.yml +++ b/web/modules/webform/tests/modules/webform_test_handler_invoke_alter/webform_test_handler_invoke_alter.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_handler_remote_post/webform_test_handler_remote_post.info.yml b/web/modules/webform/tests/modules/webform_test_handler_remote_post/webform_test_handler_remote_post.info.yml index e352becd8d..ca2cdbf057 100644 --- a/web/modules/webform/tests/modules/webform_test_handler_remote_post/webform_test_handler_remote_post.info.yml +++ b/web/modules/webform/tests/modules/webform_test_handler_remote_post/webform_test_handler_remote_post.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_markup/webform_test_markup.info.yml b/web/modules/webform/tests/modules/webform_test_markup/webform_test_markup.info.yml index beba7803b4..0fc65c43c1 100644 --- a/web/modules/webform/tests/modules/webform_test_markup/webform_test_markup.info.yml +++ b/web/modules/webform/tests/modules/webform_test_markup/webform_test_markup.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_message_custom/webform_test_message_custom.info.yml b/web/modules/webform/tests/modules/webform_test_message_custom/webform_test_message_custom.info.yml index e56843741f..60c5023ecf 100644 --- a/web/modules/webform/tests/modules/webform_test_message_custom/webform_test_message_custom.info.yml +++ b/web/modules/webform/tests/modules/webform_test_message_custom/webform_test_message_custom.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_options/webform_test_options.info.yml b/web/modules/webform/tests/modules/webform_test_options/webform_test_options.info.yml index 4ed57f8c2e..c67dba30e9 100644 --- a/web/modules/webform/tests/modules/webform_test_options/webform_test_options.info.yml +++ b/web/modules/webform/tests/modules/webform_test_options/webform_test_options.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_paragraphs/webform_test_paragraphs.info.yml b/web/modules/webform/tests/modules/webform_test_paragraphs/webform_test_paragraphs.info.yml index 327f2d38b5..6077d39698 100644 --- a/web/modules/webform/tests/modules/webform_test_paragraphs/webform_test_paragraphs.info.yml +++ b/web/modules/webform/tests/modules/webform_test_paragraphs/webform_test_paragraphs.info.yml @@ -7,7 +7,7 @@ dependencies: - 'paragraphs:paragraphs' - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_rest/webform_test_rest.info.yml b/web/modules/webform/tests/modules/webform_test_rest/webform_test_rest.info.yml index 51e388d3f7..2bf9b40a6e 100644 --- a/web/modules/webform/tests/modules/webform_test_rest/webform_test_rest.info.yml +++ b/web/modules/webform/tests/modules/webform_test_rest/webform_test_rest.info.yml @@ -9,7 +9,7 @@ dependencies: - 'drupal:serialization' - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_states/webform_test_states.info.yml b/web/modules/webform/tests/modules/webform_test_states/webform_test_states.info.yml index 4e9c6deeed..86087b1b30 100644 --- a/web/modules/webform/tests/modules/webform_test_states/webform_test_states.info.yml +++ b/web/modules/webform/tests/modules/webform_test_states/webform_test_states.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_submissions/webform_test_submissions.info.yml b/web/modules/webform/tests/modules/webform_test_submissions/webform_test_submissions.info.yml index 4f57dfa459..d95ce2edfb 100644 --- a/web/modules/webform/tests/modules/webform_test_submissions/webform_test_submissions.info.yml +++ b/web/modules/webform/tests/modules/webform_test_submissions/webform_test_submissions.info.yml @@ -7,7 +7,7 @@ dependencies: - 'drupal:node' - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_third_party_settings/webform_test_third_party_settings.info.yml b/web/modules/webform/tests/modules/webform_test_third_party_settings/webform_test_third_party_settings.info.yml index 995bbafff4..4a95a72d5a 100644 --- a/web/modules/webform/tests/modules/webform_test_third_party_settings/webform_test_third_party_settings.info.yml +++ b/web/modules/webform/tests/modules/webform_test_third_party_settings/webform_test_third_party_settings.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_translation/config/install/webform.webform.test_translation.yml b/web/modules/webform/tests/modules/webform_test_translation/config/install/webform.webform.test_translation.yml index 027cfad455..91551411d1 100644 --- a/web/modules/webform/tests/modules/webform_test_translation/config/install/webform.webform.test_translation.yml +++ b/web/modules/webform/tests/modules/webform_test_translation/config/install/webform.webform.test_translation.yml @@ -80,6 +80,19 @@ elements: | '#type': webform_computed_token '#title': 'Computed (token)' '#value': 'Site name: [site:name]' + autocomplete_options: + '#type': autocomplete + '#title': 'Autocomplete (options)' + '#format_items': comma + '#autocomplete_items': test_translation + autocomplete_custom: + '#type': autocomplete + '#title': 'Autocomplete (custom)' + '#format_items': comma + '#autocomplete_items': + - Seven + - Eight + - Nine actions: '#type': webform_actions '#title': 'Submit button(s)' diff --git a/web/modules/webform/tests/modules/webform_test_translation/webform_test_translation.info.yml b/web/modules/webform/tests/modules/webform_test_translation/webform_test_translation.info.yml index 815d2004e6..ebda1e56dc 100644 --- a/web/modules/webform/tests/modules/webform_test_translation/webform_test_translation.info.yml +++ b/web/modules/webform/tests/modules/webform_test_translation/webform_test_translation.info.yml @@ -10,7 +10,7 @@ dependencies: - 'webform:webform' - 'webform:webform_image_select' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_translation_lingotek/webform_test_translation_lingotek.info.yml b/web/modules/webform/tests/modules/webform_test_translation_lingotek/webform_test_translation_lingotek.info.yml index da9576dac5..42dbf387e6 100644 --- a/web/modules/webform/tests/modules/webform_test_translation_lingotek/webform_test_translation_lingotek.info.yml +++ b/web/modules/webform/tests/modules/webform_test_translation_lingotek/webform_test_translation_lingotek.info.yml @@ -10,7 +10,7 @@ dependencies: - 'lingotek:lingotek' - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_validate/webform_test_validate.info.yml b/web/modules/webform/tests/modules/webform_test_validate/webform_test_validate.info.yml index e671413ac3..495ce940f4 100644 --- a/web/modules/webform/tests/modules/webform_test_validate/webform_test_validate.info.yml +++ b/web/modules/webform/tests/modules/webform_test_validate/webform_test_validate.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_variant/webform_test_variant.info.yml b/web/modules/webform/tests/modules/webform_test_variant/webform_test_variant.info.yml index ab516a338c..845cec1c32 100644 --- a/web/modules/webform/tests/modules/webform_test_variant/webform_test_variant.info.yml +++ b/web/modules/webform/tests/modules/webform_test_variant/webform_test_variant.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_views/webform_test_views.info.yml b/web/modules/webform/tests/modules/webform_test_views/webform_test_views.info.yml index b94c103b2e..3521dee35b 100644 --- a/web/modules/webform/tests/modules/webform_test_views/webform_test_views.info.yml +++ b/web/modules/webform/tests/modules/webform_test_views/webform_test_views.info.yml @@ -9,7 +9,7 @@ dependencies: - 'drupal:views' - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/modules/webform_test_wizard_custom/webform_test_wizard_custom.info.yml b/web/modules/webform/tests/modules/webform_test_wizard_custom/webform_test_wizard_custom.info.yml index 033bbe7b26..3ac3a7b308 100644 --- a/web/modules/webform/tests/modules/webform_test_wizard_custom/webform_test_wizard_custom.info.yml +++ b/web/modules/webform/tests/modules/webform_test_wizard_custom/webform_test_wizard_custom.info.yml @@ -6,7 +6,7 @@ core_version_requirement: ^8.8 || ^9 dependencies: - 'webform:webform' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/tests/src/Functional/Cache/WebformCacheTest.php b/web/modules/webform/tests/src/Functional/Cache/WebformCacheTest.php new file mode 100644 index 0000000000..8cd84472cb --- /dev/null +++ b/web/modules/webform/tests/src/Functional/Cache/WebformCacheTest.php @@ -0,0 +1,113 @@ +<?php + +namespace Drupal\Tests\webform\Functional\Cache; + +use Drupal\Tests\webform\Functional\WebformBrowserTestBase; +use Drupal\webform\Entity\Webform; +use Drupal\webform\Entity\WebformSubmission; + +/** + * Tests for #cache properties. + * + * @group webform + */ +class WebformCacheTest extends WebformBrowserTestBase { + + /** + * Test cache. + */ + public function testCache() { + /** @var \Drupal\Core\Entity\EntityFormBuilder $entity_form_builder */ + $entity_form_builder = \Drupal::service('entity.form_builder'); + + $account = $this->createUser(); + + /** @var \Drupal\webform\WebformInterface $webform */ + $webform = Webform::load('contact'); + /** @var \Drupal\webform\WebformSubmissionInterface $webform_submission */ + $webform_submission = WebformSubmission::create(['webform_id' => 'contact']); + + /**************************************************************************/ + + $form = $entity_form_builder->getForm($webform_submission, 'add'); + + // Check that the form includes 'user.roles:authenticated' because the + // '[current-user:mail]' token. + $this->assertEqual($form['#cache'], [ + 'contexts' => [ + 'user.roles:authenticated', + ], + 'tags' => [ + 'config:core.entity_form_display.webform_submission.contact.add', + 'config:webform.settings', + 'config:webform.webform.contact', + 'webform:contact', + ], + 'max-age' => -1, + ]); + + // Check that the name element does not have #cache because the + // '[current-user:mail]' is set via + // \Drupal\webform\WebformSubmissionForm::setEntity + $this->assertFalse(isset($form['elements']['email']['#cache'])); + $this->assertEqual($form['elements']['email']['#default_value'], ''); + + // Login and check the #cache property. + $this->drupalLogin($account); + $webform_submission->setOwnerId($account); + \Drupal::currentUser()->setAccount($account); + + // Must create a new submission with new data which is set via + // WebformSubmissionForm::setEntity. + // @see \Drupal\webform\WebformSubmissionForm::setEntity + $webform_submission = WebformSubmission::create(['webform_id' => 'contact']); + + $form = $entity_form_builder->getForm($webform_submission, 'add'); + + // Check that the form includes 'user.roles:authenticated' because the + // '[current-user:mail]' token. + $this->assertEqual($form['#cache'], [ + 'contexts' => [ + 'user', + 'user.roles:authenticated', + ], + 'tags' => [ + 'config:core.entity_form_display.webform_submission.contact.add', + 'config:webform.settings', + 'config:webform.webform.contact', + 'user:2', + 'webform:contact', + ], + 'max-age' => -1, + ]); + $this->assertFalse(isset($form['elements']['email']['#cache'])); + $this->assertEqual($form['elements']['email']['#default_value'], $account->getEmail()); + + // Add the '[current-user:mail]' to the name elements' description. + $element = $webform->getElementDecoded('email') + + ['#description' => '[current-user:mail]']; + $webform + ->setElementProperties('email', $element) + ->save(); + + $form = $entity_form_builder->getForm($webform_submission, 'add'); + + // Check that the 'email' element does have '#cache' property because the + // '#description' is using the '[current-user:mail]' token. + $this->assertEqual($form['elements']['email']['#cache'], [ + 'contexts' => [ + 'user', + ], + 'tags' => [ + 'config:webform.settings', + 'config:webform.webform.contact', + 'user:2', + 'webform:contact', + ], + 'max-age' => -1, + ]); + $this->assertEqual($form['elements']['email']['#default_value'], $account->getEmail()); + $this->assertEqual($form['elements']['email']['#description']['#markup'], $account->getEmail()); + } + +} diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementCounterTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementCounterTest.php index 00f99a89c2..88a00755fb 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementCounterTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementCounterTest.php @@ -23,13 +23,13 @@ public function testCounter() { // Check counters. $this->drupalGet('/webform/test_element_counter'); - $this->assertRaw('<input data-counter-type="character" data-counter-minimum="5" data-counter-minimum-message="%d character(s) entered. This is custom text" class="js-webform-counter webform-counter form-text" data-drupal-selector="edit-counter-characters-min-message" type="text" id="edit-counter-characters-min-message" name="counter_characters_min_message" value="" size="60" maxlength="255" />'); + $this->assertRaw('<input data-counter-type="character" data-counter-minimum="5" data-counter-minimum-message="%d character(s) entered. This is custom text" class="js-webform-counter webform-counter form-text" minlength="5" data-drupal-selector="edit-counter-characters-min-message" type="text" id="edit-counter-characters-min-message" name="counter_characters_min_message" value="" size="60" maxlength="255" />'); $this->assertRaw('<input data-counter-type="character" data-counter-maximum="10" data-counter-maximum-message="%d character(s) remaining. This is custom text" class="js-webform-counter webform-counter form-text" data-drupal-selector="edit-counter-characters-max-message" type="text" id="edit-counter-characters-max-message" name="counter_characters_max_message" value="" size="60" maxlength="10" />'); $this->assertRaw('<textarea data-counter-type="word" data-counter-minimum="5" data-counter-minimum-message="%d word(s) entered. This is custom text" class="js-webform-counter webform-counter form-textarea" data-drupal-selector="edit-counter-words-min-message" id="edit-counter-words-min-message" name="counter_words_min_message" rows="5" cols="60"></textarea>'); $this->assertRaw('<textarea data-counter-type="word" data-counter-maximum="10" data-counter-maximum-message="%d character(s) remaining. This is custom text" class="js-webform-counter webform-counter form-textarea" data-drupal-selector="edit-counter-words-max-message" id="edit-counter-words-max-message" name="counter_words_max_message" rows="5" cols="60"></textarea>'); // Check counter for XSS. - $this->assertRaw('<input data-counter-type="character" data-counter-minimum="5" data-counter-minimum-message="alert('XSS');<em>%d</em> character(s) entered." data-counter-maximum="10" data-counter-maximum-message="alert('XSS');<em>%d</em> character(s) remaining." class="js-webform-counter webform-counter form-text" data-drupal-selector="edit-counter-characters-xss" type="text" id="edit-counter-characters-xss" name="counter_characters_xss" value="" size="60" maxlength="10" />'); + $this->assertRaw('<input data-counter-type="character" data-counter-minimum="5" data-counter-minimum-message="alert('XSS');<em>%d</em> character(s) entered." data-counter-maximum="10" data-counter-maximum-message="alert('XSS');<em>%d</em> character(s) remaining." class="js-webform-counter webform-counter form-text" minlength="5" data-drupal-selector="edit-counter-characters-xss" type="text" id="edit-counter-characters-xss" name="counter_characters_xss" value="" size="60" maxlength="10" />'); // Check counter min/max validation error (min: 5 / max: 10). $edit = [ diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementFormatTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementFormatTest.php index f5f0d8c69b..059d347b1c 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementFormatTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementFormatTest.php @@ -50,7 +50,6 @@ public function testFormat() { $body = $this->getMessageBody($submission, 'email_html'); $elements = [ 'Checkbox (Value)' => 'Yes', - 'Radios (Description)' => 'This is the <strong>first</strong> description', 'Color (Color swatch)' => '<font color="#ffffcc">█</font> #ffffcc', 'Email (Link)' => '<a href="mailto:example@example.com">example@example.com</a>', 'Email confirm (Link)' => '<a href="mailto:example@example.com">example@example.com</a>', @@ -89,7 +88,6 @@ public function testFormat() { $body = $this->getMessageBody($submission, 'email_text'); $elements = [ 'Checkbox (Value): Yes', - 'Radios (Description)' => 'This is the *first* description', 'Color (Color swatch): #ffffcc', 'Email (Link): example@example.com', 'Email multiple (Link): example@example.com, test@test.com, random@random.com', @@ -183,7 +181,7 @@ public function testFormat() { 'Checkboxes (And)' => 'One, Two, and Three', 'Checkboxes (Ordered list)' => '<ol><li>One</li><li>Two</li><li>Three</li></ol>', 'Checkboxes (Unordered list)' => '<ul><li>One</li><li>Two</li><li>Three</li></ul>', - 'Checkboxes (Checklist)' => '<span style="font-size: 1.4em; line-height: 1em">☑</span> One<br /><span style="font-size: 1.4em; line-height: 1em">☑</span> Two<br /><span style="font-size: 1.4em; line-height: 1em">☑</span> Three<br />', + 'Checkboxes (Checklist (☑/☐))' => '<span style="font-size: 1.4em; line-height: 1em">☑</span> One<br /><span style="font-size: 1.4em; line-height: 1em">☑</span> Two<br /><span style="font-size: 1.4em; line-height: 1em">☑</span> Three<br />', ]; foreach ($elements as $label => $value) { $this->assertStringContainsString('<b>' . $label . '</b><br />' . $value, $body, new FormattableMarkup('Found @label: @value', [ @@ -217,7 +215,7 @@ public function testFormat() { - One - Two - Three', - 'Checkboxes (Checklist): + 'Checkboxes (Checklist (☑/☐)): ☑ One ☑ Two ☑ Three', diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementInputMaskTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementInputMaskTest.php index 274fe6e521..d3598d1720 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementInputMaskTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementInputMaskTest.php @@ -34,6 +34,8 @@ public function testInputMask() { // Check default values. $this->postSubmission($webform); $this->assertRaw("currency: '$ 1.00' +currency_negative: '-$ 1.00' +currency_positive_negative: '$ 1.00' datetime: '' decimal: '' email: '' @@ -57,6 +59,8 @@ public function testInputMask() { 'decimal' => '9.9', 'ip' => '255.255.255.255', 'currency' => '$ 9.99', + 'currency_negative' => '-$ 9.99', + 'currency_positive_negative' => '-$ 9.99', 'percentage' => '99 %', 'phone' => '(999) 999-9999', 'license_plate' => '9-AAA-999', @@ -70,6 +74,8 @@ public function testInputMask() { ]; $this->postSubmission($webform, $edit); $this->assertRaw("currency: '$ 9.99' +currency_negative: '-$ 9.99' +currency_positive_negative: '-$ 9.99' datetime: '2007-06-09''T''17:46:21' decimal: '9.9' email: example@example.com @@ -89,6 +95,8 @@ public function testInputMask() { // Check pattern validation error messages. $edit = [ 'currency' => '$ 9.9_', + 'currency_negative' => '-$ 9.9_', + 'currency_positive_negative' => '-$ 9.9_', 'decimal' => '9._', 'ip' => '255.255.255.__', 'mac' => '99-99-99-99-99-_)', diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementLikertTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementLikertTest.php index df56c8ec45..0c107bab9b 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementLikertTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementLikertTest.php @@ -34,7 +34,7 @@ public function testLikertElement() { // Check advanced likert element with N/A. $this->assertPattern('#<tr>\s+<th><span class="visually-hidden">Questions</span></th>\s+<th>Option 1</th>\s+<th>Option 2</th>\s+<th>Option 3</th>\s+<th>Not applicable</th>\s+</tr>#'); $this->assertRaw('<td><div class="js-form-item form-item js-form-type-radio form-item-likert-advanced-q1 js-form-item-likert-advanced-q1">'); - $this->assertRaw('<input aria-labelledby="edit-likert-advanced-table-q1-likert-question" data-drupal-selector="edit-likert-advanced-q1" type="radio" id="edit-likert-advanced-q1--4" name="likert_advanced[q1]" value="N/A" class="form-radio" />'); + $this->assertRaw('<input aria-labelledby="edit-likert-advanced-table-q1-likert-question" required="required" aria-required="true" data-drupal-selector="edit-likert-advanced-q1" type="radio" id="edit-likert-advanced-q1--4" name="likert_advanced[q1]" value="N/A" class="form-radio" />'); $this->assertRaw('<label for="edit-likert-advanced-q1--4" class="option"><span class="webform-likert-label visually-hidden">Not applicable</span></label>'); // Check likert with description. diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementOtherTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementOtherTest.php index a102f6e406..be4d48afa2 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementOtherTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementOtherTest.php @@ -40,7 +40,7 @@ public function testBuildingOtherElements() { $this->assertRaw('<select data-webform-required-error="This is a custom required error message." data-drupal-selector="edit-select-other-advanced-select" id="edit-select-other-advanced-select" name="select_other_advanced[select]" class="form-select required" required="required" aria-required="true">'); $this->assertRaw('<option value="_other_" selected="selected">Is there another option you wish to enter?</option>'); $this->assertRaw('<label for="edit-select-other-advanced-other">Other</label>'); - $this->assertRaw('<input data-webform-required-error="This is a custom required error message." data-counter-type="character" data-counter-minimum="4" data-counter-maximum="10" class="js-webform-counter webform-counter form-text" data-drupal-selector="edit-select-other-advanced-other" aria-describedby="edit-select-other-advanced-other--description" type="text" id="edit-select-other-advanced-other" name="select_other_advanced[other]" value="Four" size="20" maxlength="10" placeholder="What is this other option" />'); + $this->assertRaw('<input data-webform-required-error="This is a custom required error message." data-counter-type="character" data-counter-minimum="4" data-counter-maximum="10" class="js-webform-counter webform-counter form-text" minlength="4" data-drupal-selector="edit-select-other-advanced-other" aria-describedby="edit-select-other-advanced-other--description" type="text" id="edit-select-other-advanced-other" name="select_other_advanced[other]" value="Four" size="20" maxlength="10" placeholder="What is this other option" />'); $this->assertRaw('<div id="edit-select-other-advanced-other--description" class="webform-element-description">Other select description</div>'); // Check multiple select_other. diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementPluginPropertiesTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementPluginPropertiesTest.php index f8956415c3..8518c2d907 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementPluginPropertiesTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementPluginPropertiesTest.php @@ -4371,6 +4371,7 @@ protected function getExpectedElementDefaultProperties() { title_attributes: { } title_display: '' title_tag: h2 + description_display: '' webform_select_other: access: true access_create_permissions: { } diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementScaleTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementScaleTest.php index d9709df96d..fa6c9eca9a 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementScaleTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementScaleTest.php @@ -34,10 +34,12 @@ public function testRating() { // Check processing. $edit = [ 'scale' => 1, + 'scale_required' => 1, 'scale_text' => 2, ]; $this->drupalPostForm('/webform/test_element_scale', $edit, 'Submit'); $this->assertRaw("scale: '1' +scale_required: '1' scale_text: '2' scale_text_above: null scale_small: null diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementSectionTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementSectionTest.php index e4360ccaa7..fe71408838 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementSectionTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementSectionTest.php @@ -35,6 +35,18 @@ public function testSection() { // Check section title_display: invisible. $this->assertRaw('<h2 class="visually-hidden webform-section-title">webform_section_title_invisible</h2>'); + // Check section description_display: default. + $this->assertPattern('/Display default description.+name="webform_section_description_display_default_textfield"/ms'); + + // Check section description_display: before. + $this->assertPattern('/Display before description.+name="webform_section_description_display_before_textfield"/ms'); + + // Check section description_display: after. + $this->assertPattern('/name="webform_section_description_display_after_textfield".+Display after description/ms'); + + // Check section description_display: invisible. + $this->assertRaw('<div class="description"><div id="edit-webform-section-description-display-invisible--description" class="webform-element-description visually-hidden">Display invisible description.</div>'); + // Check change default title tag. \Drupal::configFactory()->getEditable('webform.settings') ->set('element.default_section_title_tag', 'address') diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementTermsOfServiceTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementTermsOfServiceTest.php index c814cf11ed..3687047785 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementTermsOfServiceTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementTermsOfServiceTest.php @@ -44,7 +44,7 @@ public function testTermsOfService() { // Check validation. $this->drupalPostForm('/webform/test_element_terms_of_service', [], 'Preview'); - $this->assertRaw('I agree to the {terms of service}. (default) field is required.'); + $this->assertRaw('I agree to the terms of service. (default) field is required.'); // Check preview. $edit = [ diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementValidateMinlengthTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementValidateMinlengthTest.php index 8d4cb823c0..4e06b42b58 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementValidateMinlengthTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementValidateMinlengthTest.php @@ -22,8 +22,19 @@ class WebformElementValidateMinlengthTest extends WebformElementBrowserTestBase * Tests element validate minlength. */ public function testValidateMinlength() { + $webform = Webform::load('test_element_validate_minlength'); + /* Render */ + + $this->drupalGet('/webform/test_element_validate_minlength'); + + // Check minlength attribute. + $this->assertCssSelect('#edit-minlength-textfield[minlength="5"]'); + $this->assertCssSelect('#edit-minlength-textfield-required[minlength="5"]'); + + /* Validate */ + // Check minlength validation. $this->postSubmission($webform, ['minlength_textfield' => 'X']); $this->assertRaw('<em class="placeholder">minlength_textfield</em> cannot be less than <em class="placeholder">5</em> characters but is currently <em class="placeholder">1</em> characters long.'); diff --git a/web/modules/webform/tests/src/Functional/Handler/WebformHandlerEmailAdvancedTest.php b/web/modules/webform/tests/src/Functional/Handler/WebformHandlerEmailAdvancedTest.php index 13481bc328..f035f5e46e 100644 --- a/web/modules/webform/tests/src/Functional/Handler/WebformHandlerEmailAdvancedTest.php +++ b/web/modules/webform/tests/src/Functional/Handler/WebformHandlerEmailAdvancedTest.php @@ -60,13 +60,14 @@ public function testAdvancedEmailHandler() { $this->assertEqual($sent_email['params']['custom_parameter'], 'test'); $this->assertArrayNotHasKey('parameters', $sent_email['params']); - $email_handler = $webform->getHandler('email'); - $configuration = $email_handler->getConfiguration(); - $configuration['settings']['reply_to'] = ''; - $configuration['settings']['return_path'] = ''; - $configuration['settings']['sender_mail'] = ''; - $configuration['settings']['sender_name'] = ''; - $email_handler->setConfiguration($configuration); + $webform + ->getHandler('email') + ->setSettings([ + 'reply_to' => '', + 'return_path' => '', + 'sender_mail' => '', + 'sender_name' => '', + ]); $webform->save(); // Check no custom reply to and return path. @@ -168,9 +169,7 @@ public function testAdvancedEmailHandler() { $email_handler = $webform->getHandler('email'); // Exclude file attachment. - $configuration = $email_handler->getConfiguration(); - $configuration['settings']['exclude_attachments'] = TRUE; - $email_handler->setConfiguration($configuration); + $email_handler->setSetting('exclude_attachments', TRUE); $webform->save(); // Check excluding attachments. @@ -180,9 +179,7 @@ public function testAdvancedEmailHandler() { $this->assertArrayHasKey('filecontent', $sent_email['params']['attachments'][0]); // Exclude file element. - $configuration = $email_handler->getConfiguration(); - $configuration['settings']['excluded_elements'] = ['file' => 'file']; - $email_handler->setConfiguration($configuration); + $email_handler->setSetting('excluded_elements', ['file' => 'file']); $webform->save(); // Check excluding files. @@ -197,10 +194,10 @@ public function testAdvancedEmailHandler() { $this->assertStringNotContainsString('<b>Optional</b><br />{Empty}<br /><br />', $sent_email['params']['body']); // Include empty. - $configuration = $email_handler->getConfiguration(); - $configuration['settings']['exclude_empty'] = FALSE; - $configuration['settings']['exclude_empty_checkbox'] = FALSE; - $email_handler->setConfiguration($configuration); + $email_handler->setSettings([ + 'exclude_empty' => FALSE, + 'exclude_empty_checkbox' => FALSE + ]); $webform->save(); // Check empty included. @@ -218,10 +215,8 @@ public function testAdvancedEmailHandler() { $this->assertStringContainsString('<b>Notes</b><br />These notes are private.<br /><br />', $sent_email['params']['body']); // Disable ignore_access. - $email_handler = $webform->getHandler('email'); - $configuration = $email_handler->getConfiguration(); - $configuration['settings']['ignore_access'] = FALSE; - $email_handler->setConfiguration($configuration); + $webform->getHandler('email') + ->setSetting('ignore_access', FALSE); $webform->save(); // Check that private is excluded from email because 'ignore_access' is FALSE. diff --git a/web/modules/webform/tests/src/Functional/Handler/WebformHandlerRemotePostTest.php b/web/modules/webform/tests/src/Functional/Handler/WebformHandlerRemotePostTest.php index c240d08f1e..b9828df0e5 100644 --- a/web/modules/webform/tests/src/Functional/Handler/WebformHandlerRemotePostTest.php +++ b/web/modules/webform/tests/src/Functional/Handler/WebformHandlerRemotePostTest.php @@ -133,12 +133,10 @@ public function testRemotePostHandler() { $this->assertNoRaw('Unable to process this submission. Please contact the site administrator.'); // Check excluded data. - $handler = $webform->getHandler('remote_post'); - $configuration = $handler->getConfiguration(); - $configuration['settings']['excluded_data'] = [ - 'last_name' => 'last_name', - ]; - $handler->setConfiguration($configuration); + $webform->getHandler('remote_post') + ->setSetting('excluded_data', [ + 'last_name' => 'last_name', + ]); $webform->save(); $sid = $this->postSubmission($webform); $this->assertRaw('first_name: John'); @@ -159,9 +157,7 @@ public function testRemotePostHandler() { // Check default custom response message. $handler = $webform->getHandler('remote_post'); - $configuration = $handler->getConfiguration(); - $configuration['settings']['message'] = 'This is a custom response message'; - $handler->setConfiguration($configuration); + $handler->setSetting('message', 'This is a custom response message'); $webform->save(); $this->postSubmission($webform, ['response_type' => '500']); $this->assertRaw('Failed to process completed request.'); @@ -206,9 +202,7 @@ public function testRemotePostHandler() { // Set remote post error URL to homepage. $handler = $webform->getHandler('remote_post'); - $configuration = $handler->getConfiguration(); - $configuration['settings']['error_url'] = $webform->toUrl('canonical', ['query' => ['error' => '1']])->toString(); - $handler->setConfiguration($configuration); + $handler->setSetting('error_url', $webform->toUrl('canonical', ['query' => ['error' => '1']])->toString()); $webform->save(); // Check 404 Not Found with custom error uri. @@ -314,6 +308,20 @@ public function testRemotePostHandler() { /** @var \Drupal\webform\WebformInterface $webform */ $webform = Webform::load('test_handler_remote_post_cast'); + $this->postSubmission($webform); + $this->assertRaw("form_params: + boolean_true: true + integer: 100 + float: 100.01 + checkbox: false + number: '' + number_multiple: { } + custom_composite: + - + textfield: '' + number: !!float 0 + checkbox: false"); + $edit = [ 'checkbox' => TRUE, 'number' => '10', diff --git a/web/modules/webform/tests/src/Functional/Token/WebformTokenSuffixesTest.php b/web/modules/webform/tests/src/Functional/Token/WebformTokenSuffixesTest.php index 1eb39b94ef..215f11e9c1 100644 --- a/web/modules/webform/tests/src/Functional/Token/WebformTokenSuffixesTest.php +++ b/web/modules/webform/tests/src/Functional/Token/WebformTokenSuffixesTest.php @@ -64,6 +64,22 @@ public function testTokenSuffixes() { 'message' => 'Basic token with decoded HTML markup', 'options' => [], ], + // :urlencode. + [ + 'site_name' => 'Two words', + 'text' => '[site:name:urlencode]', + 'expected' => 'Two+words', + 'message' => 'Basic token with url encode', + 'options' => [], + ], + // :rawurlencode. + [ + 'site_name' => 'Two words', + 'text' => '[site:name:rawurlencode]', + 'expected' => 'Two%20words', + 'message' => 'Basic token with raw url encode', + 'options' => [], + ], // :xmlencode. [ 'site_name' => '<b>Testing</b>', diff --git a/web/modules/webform/tests/src/Functional/WebformEditorTest.php b/web/modules/webform/tests/src/Functional/WebformEditorTest.php index 98ee003a83..3f648174e5 100644 --- a/web/modules/webform/tests/src/Functional/WebformEditorTest.php +++ b/web/modules/webform/tests/src/Functional/WebformEditorTest.php @@ -20,7 +20,7 @@ class WebformEditorTest extends WebformBrowserTestBase { * * @var array */ - public static $modules = ['file', 'webform']; + public static $modules = ['file', 'filter', 'webform', 'webform_ui']; /** * The file usage service. @@ -35,6 +35,9 @@ class WebformEditorTest extends WebformBrowserTestBase { protected function setUp() { parent::setUp(); + // Create filters. + $this->createFilters(); + $this->fileUsage = $this->container->get('file.usage'); } @@ -57,6 +60,7 @@ public function testWebformSettingsFiles() { $this->assertTrue($images[0]->isTemporary()); $this->assertTrue($images[1]->isTemporary()); $this->assertTrue($images[2]->isTemporary()); + $this->assertTrue($images[3]->isTemporary()); // Upload the first image. $edit = [ @@ -69,6 +73,7 @@ public function testWebformSettingsFiles() { $this->assertFalse($images[0]->isTemporary()); $this->assertTrue($images[1]->isTemporary()); $this->assertTrue($images[2]->isTemporary()); + $this->assertTrue($images[3]->isTemporary()); // Check create first image file usage. $this->assertIdentical(['editor' => ['webform' => ['contact' => '1']]], $this->fileUsage->listUsage($images[0]), 'The file has 1 usage.'); @@ -84,6 +89,7 @@ public function testWebformSettingsFiles() { $this->assertFalse($images[0]->isTemporary()); $this->assertFalse($images[1]->isTemporary()); $this->assertTrue($images[2]->isTemporary()); + $this->assertTrue($images[3]->isTemporary()); // Check first and second image file usage. $this->assertIdentical(['editor' => ['webform' => ['contact' => '1']]], $this->fileUsage->listUsage($images[0]), 'The file has 1 usage.'); @@ -100,22 +106,29 @@ public function testWebformSettingsFiles() { $this->assertTrue($images[0]->isTemporary()); $this->assertFalse($images[1]->isTemporary()); $this->assertTrue($images[2]->isTemporary()); + $this->assertTrue($images[3]->isTemporary()); // Check first and second image file usage. $this->assertIdentical([], $this->fileUsage->listUsage($images[0]), 'The file has 0 usage.'); $this->assertIdentical(['editor' => ['webform' => ['contact' => '1']]], $this->fileUsage->listUsage($images[1]), 'The file has 1 usage.'); - // Set all files back to temporary. + // Check that processed text's image is parsed. $edit = [ - 'description[value]' => '', + 'key' => 'test', + 'properties[text][value]' => '<img data-entity-type="file" data-entity-uuid="' . $images[3]->uuid() . '"/>', ]; - $this->drupalPostForm('/admin/structure/webform/manage/contact/settings', $edit, 'Save'); + $this->drupalPostForm('/admin/structure/webform/manage/contact/element/add/processed_text', $edit, 'Save'); $this->reloadImages($images); - // Check that first and second image are temporary. - $this->assertTrue($images[0]->isTemporary()); - $this->assertTrue($images[1]->isTemporary()); - $this->assertTrue($images[2]->isTemporary()); + // Check that fourth is not temporary. + $this->assertFalse($images[3]->isTemporary()); + + // Delete the processed text. + $this->drupalPostForm('admin/structure/webform/manage/contact/element/test/delete', [], 'Delete'); + $this->reloadImages($images); + + // Check that fourth image is temporary. + $this->assertTrue($images[3]->isTemporary()); // Stop marking unused files as temporary. \Drupal::configFactory()->getEditable('webform.settings') diff --git a/web/modules/webform/tests/src/Functional/WebformSubmissionTokenOperationsTest.php b/web/modules/webform/tests/src/Functional/WebformSubmissionTokenOperationsTest.php index 461f8c3938..824fe6fb8b 100644 --- a/web/modules/webform/tests/src/Functional/WebformSubmissionTokenOperationsTest.php +++ b/web/modules/webform/tests/src/Functional/WebformSubmissionTokenOperationsTest.php @@ -62,6 +62,9 @@ public function testTokenOperationsTest() { $this->assertRaw('Submission information'); $this->assertRaw('<label>textfield</label>'); + // Check that the 'Delete submission' link has token appended to it. + $this->assertLinkByHref($webform_submission->getTokenUrl('delete')->setAbsolute(FALSE)->toString()); + // Check token view access denied. $webform->setSetting('token_view', FALSE)->save(); $this->drupalLogin($normal_user); @@ -70,6 +73,7 @@ public function testTokenOperationsTest() { $this->assertNoRaw('Submission information'); $this->assertNoRaw('<label>textfield</label>'); + /**************************************************************************/ /* Update */ /**************************************************************************/ diff --git a/web/modules/webform/tests/src/FunctionalJavascript/States/WebformStatesRequiredJavaScriptTest.php b/web/modules/webform/tests/src/FunctionalJavascript/States/WebformStatesRequiredJavaScriptTest.php index 0c7a16acab..29e2f2d467 100644 --- a/web/modules/webform/tests/src/FunctionalJavascript/States/WebformStatesRequiredJavaScriptTest.php +++ b/web/modules/webform/tests/src/FunctionalJavascript/States/WebformStatesRequiredJavaScriptTest.php @@ -31,10 +31,8 @@ class WebformStatesRequiredJavaScriptTest extends WebformWebDriverTestBase { * Tests webform (custom) #states required logic. */ public function testRequiredState() { - // @todo Fix random test failure that can't be reproduced locally. - // My best guess is a different version of the clientside_validation.module - // is being enabled via DrupalCI. - $this->assert(TRUE); + // @todo Fix broken test on Drupal.org that working as expected locally. + $this->assertTrue(TRUE); return; $session = $this->getSession(); diff --git a/web/modules/webform/tests/src/Unit/Cache/WebformBubbleableMetadataTest.php b/web/modules/webform/tests/src/Unit/Cache/WebformBubbleableMetadataTest.php new file mode 100644 index 0000000000..32611cf8f4 --- /dev/null +++ b/web/modules/webform/tests/src/Unit/Cache/WebformBubbleableMetadataTest.php @@ -0,0 +1,85 @@ +<?php + +namespace Drupal\Tests\webform\Unit\Cache; + +use Drupal\Core\Cache\Cache; +use Drupal\Tests\UnitTestCase; +use Drupal\webform\Cache\WebformBubbleableMetadata; +use Symfony\Component\DependencyInjection\ContainerBuilder; + +/** + * Tests webform bubbleable metadata. + * + * @coversDefaultClass \Drupal\webform\Cache\WebformBubbleableMetadata + * @group Cache + */ +class WebformBubbleableMetadataTest extends UnitTestCase { + + /** + * Tests appendTo renderable array. + * + * @param \Drupal\webform\Cache\WebformBubbleableMetadata $bubbleable_metadata + * Bubbleable metadata. + * @param array $build + * A render array. + * @param array $expected + * The expected render array. + * @covers ::appendTo + * + * @dataProvider providerTestAppendTo + * + * @see \Drupal\Tests\Core\Cache\CacheableMetadataTest + */ + public function testAppendTo(WebformBubbleableMetadata $bubbleable_metadata, array $build, array $expected) { + // Mock CacheContextsManager::assertValidTokens + // @see \Drupal\Core\Cache\Cache::mergeContexts + $cache_contexts_manager = $this->getMockBuilder('Drupal\Core\Cache\Context\CacheContextsManager') + ->disableOriginalConstructor() + ->getMock(); + $cache_contexts_manager->method('assertValidTokens')->willReturn(TRUE); + $container = new ContainerBuilder(); + $container->set('cache_contexts_manager', $cache_contexts_manager); + \Drupal::setContainer($container); + + /**************************************************************************/ + + $bubbleable_metadata->appendTo($build); + $this->assertEquals($expected, $build); + } + + /** + * Provides test data for testAppendTo(). + * + * @return array + */ + public function providerTestAppendTo() { + return [ + [ + (new WebformBubbleableMetadata())->setCacheContexts(['bar']), + [], + ['#cache' => ['contexts' => ['bar'], 'tags' => [], 'max-age' => Cache::PERMANENT], '#attached' => []], + ], + [ + (new WebformBubbleableMetadata())->setCacheContexts(['bar']), + ['#cache' => ['contexts' => ['bar']]], + ['#cache' => ['contexts' => ['bar'], 'tags' => [], 'max-age' => Cache::PERMANENT], '#attached' => []], + ], + [ + (new WebformBubbleableMetadata())->setCacheContexts(['bar', 'foo']), + ['#cache' => ['contexts' => ['bar']]], + ['#cache' => ['contexts' => ['bar', 'foo'], 'tags' => [], 'max-age' => Cache::PERMANENT], '#attached' => []], + ], + [ + (new WebformBubbleableMetadata())->setCacheMaxAge(99), + [], + ['#cache' => ['contexts' => [], 'tags' => [], 'max-age' => 99], '#attached' => []], + ], + [ + (new WebformBubbleableMetadata())->setCacheContexts(['bar']), + ['#cache' => ['max-age' => 99]], + ['#cache' => ['contexts' => ['bar'], 'tags' => [], 'max-age' => 99], '#attached' => []], + ], + ]; + } + +} diff --git a/web/modules/webform/tests/themes/webform_test_bartik/webform_test_bartik.info.yml b/web/modules/webform/tests/themes/webform_test_bartik/webform_test_bartik.info.yml index e474d97fcf..c65e2d4cfc 100644 --- a/web/modules/webform/tests/themes/webform_test_bartik/webform_test_bartik.info.yml +++ b/web/modules/webform/tests/themes/webform_test_bartik/webform_test_bartik.info.yml @@ -5,7 +5,7 @@ name: 'Webform Bartik test' description: 'Support theme for webform Bartik integration testing.' package: 'Webform Testing' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/webform.info.yml b/web/modules/webform/webform.info.yml index 3a5d3d6a74..78eda227c3 100644 --- a/web/modules/webform/webform.info.yml +++ b/web/modules/webform/webform.info.yml @@ -8,7 +8,7 @@ dependencies: - 'drupal:field' - 'drupal:user' -# Information added by Drupal.org packaging script on 2021-05-05 -version: '6.0.3' +# Information added by Drupal.org packaging script on 2021-08-25 +version: '6.0.5' project: 'webform' -datestamp: 1620250261 +datestamp: 1629903950 diff --git a/web/modules/webform/webform.libraries.yml b/web/modules/webform/webform.libraries.yml index db04f2273a..da9f7ed477 100644 --- a/web/modules/webform/webform.libraries.yml +++ b/web/modules/webform/webform.libraries.yml @@ -1023,15 +1023,15 @@ libraries.choices: libraries.codemirror.text: remote: https://github.com/codemirror/codemirror - version: &webform_codemirror_version '5.53.2' + version: &webform_codemirror_version '5.61.1' license: &webform_codemirror_license name: MIT url: http://codemirror.net/LICENSE gpl-compatible: true directory: &webform_codemirror_directory codemirror cdn: &webform_codemirror_cdn - /libraries/codemirror/lib/: https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.53.2/ - /libraries/codemirror/: https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.53.2/ + /libraries/codemirror/lib/: https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.61.1/ + /libraries/codemirror/: https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.61.1/ css: component: /libraries/codemirror/lib/codemirror.css: {} @@ -1129,14 +1129,14 @@ libraries.algolia.places: libraries.jquery.inputmask: remote: https://github.com/RobinHerbots/jquery.inputmask - version: '5.0.5' + version: '5.0.6' license: name: MIT url: http://opensource.org/licenses/mit-license.php gpl-compatible: true directory: jquery.inputmask cdn: - /libraries/jquery.inputmask/: https://cdn.jsdelivr.net/gh/RobinHerbots/Inputmask@5.0.5/ + /libraries/jquery.inputmask/: https://cdn.jsdelivr.net/gh/RobinHerbots/Inputmask@5.0.6/ js: /libraries/jquery.inputmask/dist/jquery.inputmask.min.js: { minified: true } dependencies: @@ -1233,14 +1233,14 @@ libraries.jquery.textcounter: libraries.jquery.timepicker: remote: https://github.com/jonthornton/jquery-timepicker - version: '1.13.14' + version: '1.13.18' license: name: MIT url: http://opensource.org/licenses/mit-license.php gpl-compatible: true directory: jquery.timepicker cdn: - /libraries/jquery.timepicker/: https://cdn.jsdelivr.net/gh/jonthornton/jquery-timepicker@1.13.14/ + /libraries/jquery.timepicker/: https://cdn.jsdelivr.net/gh/jonthornton/jquery-timepicker@1.13.18/ css: component: /libraries/jquery.timepicker/jquery.timepicker.min.css: { minified: true } diff --git a/web/modules/webform/webform.module b/web/modules/webform/webform.module index 1c3aad37bb..2a1577d737 100644 --- a/web/modules/webform/webform.module +++ b/web/modules/webform/webform.module @@ -259,23 +259,33 @@ function webform_menu_local_tasks_alter(&$data, $route_name, RefinableCacheableD } // Allow webform query string parameters to be transferred - // from canonical to test URL. + // from a canonical URL to a test URL. + // + // Please note: This behavior is only applicable when a user can + // test a webform. $route_names = [ - 'entity.webform.canonical', 'entity.webform.test_form', - 'entity.node.canonical', 'entity.node.webform.test_form', + 'entity.webform.test_form' => 'entity.webform.canonical', + 'entity.node.webform.test_form' => 'entity.node.canonical', ]; - if (in_array($route_name, $route_names)) { - if ($query = \Drupal::request()->query->all()) { - foreach ($route_names as $route_name) { - if (isset($data['tabs'][0][$route_name])) { - $url =& $data['tabs'][0][$route_name]['#link']['url']; - $url->setOption('query', $query); + if (in_array($route_name, $route_names) || array_key_exists($route_name, $route_names)) { + $query = \Drupal::request()->query->all(); + $has_test_tab = FALSE; + foreach ($route_names as $test_route_name => $view_route_name) { + if (isset($data['tabs'][0][$test_route_name]) + && isset($data['tabs'][0][$test_route_name])) { + $has_test_tab = TRUE; + if ($query) { + $data['tabs'][0][$test_route_name]['#link']['url'] + ->setOption('query', $query); + $data['tabs'][0][$view_route_name]['#link']['url'] + ->setOption('query', $query); } } } - // Query string to cache context webform canonical and test routes. - $cacheability->addCacheContexts(['url.query_args']); + if ($has_test_tab) { + $cacheability->addCacheContexts(['url.query_args']); + } } } @@ -303,6 +313,7 @@ function webform_token_info_alter(&$data) { '<ul>' . '<li>' . t('<code>:clear</code> removes the token when it is not replaced.') . '</li>' . '<li>' . t('<code>:urlencode</code> URL encodes returned value.') . '</li>' . + '<li>' . t('<code>:rawurlencode</code> Raw URL encodes returned value with only hex digits.') . '</li>' . '<li>' . t('<code>:xmlencode</code> XML encodes returned value.') . '</li>' . '<li>' . t('<code>:htmldecode</code> decodes HTML entities in returned value.') . '<br/><b>' . t('This suffix has security implications.') . '</b><br/>' . t('Use <code>:htmldecode</code> with <code>:striptags</code>.') . '</li>' . '<li>' . t('<code>:striptags</code> removes all HTML tags from returned value.') . '</li>' . -- GitLab