From 5051c979c28923785aab1a66c0128e3431540fd8 Mon Sep 17 00:00:00 2001 From: Michael Lee <lee.5151@osu.edu> Date: Wed, 3 Nov 2021 13:36:16 -0400 Subject: [PATCH] update webform 6.0.5 => 6.1.0 --- composer.lock | 14 +- vendor/composer/installed.json | 16 +- vendor/composer/installed.php | 10 +- web/modules/webform/README.md | 7 +- web/modules/webform/composer.libraries.json | 78 ------- .../system.action.webform_archive_action.yml | 10 + .../system.action.webform_close_action.yml | 10 + .../system.action.webform_delete_action.yml | 10 + .../system.action.webform_open_action.yml | 10 + ....webform_submission_make_sticky_action.yml | 2 +- ...system.action.webform_unarchive_action.yml | 10 + .../config/install/webform.settings.yml | 43 ++-- .../install/webform.webform.contact.yml | 5 +- ...bform.webform_options.likert_agreement.yml | 10 +- ...form.webform_options.likert_comparison.yml | 10 +- .../webform.webform_options.sex_icao.yml | 2 +- .../config/schema/webform.action.schema.yml | 16 ++ .../schema/webform.entity.webform.schema.yml | 9 + .../schema/webform.plugin.handler.schema.yml | 3 + .../config/schema/webform.settings.schema.yml | 21 ++ web/modules/webform/css/webform.admin.css | 17 +- .../webform/css/webform.element.message.css | 25 +-- .../css/webform.element.message.info.css | 21 ++ .../webform/css/webform.element.options.css | 1 + .../webform/css/webform.theme.claro.css | 6 - web/modules/webform/css/webform.theme.gin.css | 34 +++ .../webform/css/webform.theme.seven.css | 11 +- web/modules/webform/drush/webform.drush.inc | 1 + .../includes/webform.install.update.inc | 130 ++++++++--- .../webform/includes/webform.libraries.inc | 4 +- .../webform/includes/webform.theme.inc | 25 ++- .../includes/webform.theme.template.inc | 1 + .../webform/includes/webform.translation.inc | 2 +- web/modules/webform/js/webform.admin.js | 10 +- ....ui.dialog.js => webform.drupal.dialog.js} | 16 +- .../webform/js/webform.element.help.js | 26 ++- .../webform/js/webform.wizard.track.js | 4 +- .../webform_access/webform_access.info.yml | 6 +- ...webform.webform.test_attachment_access.yml | 3 + .../webform.webform.test_attachment_email.yml | 3 + ...bform.webform.test_attachment_sanitize.yml | 3 + ...webform.webform.test_attachment_states.yml | 3 + .../webform.webform.test_attachment_token.yml | 3 + .../webform.webform.test_attachment_twig.yml | 3 + .../webform.webform.test_attachment_url.yml | 3 + .../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 +- .../webform_cards/src/WebformCardsManager.php | 12 +- .../src/WebformCardsManagerInterface.php | 11 + .../webform.webform.test_cards_access.yml | 3 + .../webform.webform.test_cards_ajax.yml | 3 + ...ebform.webform.test_cards_auto_forward.yml | 3 + ...m.webform.test_cards_auto_forward_hide.yml | 5 +- .../webform.webform.test_cards_draft.yml | 3 + .../webform.webform.test_cards_javascript.yml | 3 + .../webform.webform.test_cards_long_100.yml | 3 + .../webform.webform.test_cards_progress.yml | 3 + ...orm.webform.test_cards_progress_custom.yml | 3 + ...form.webform.test_cards_progress_links.yml | 3 + .../webform.webform.test_cards_states.yml | 3 + .../webform.webform.test_cards_titles.yml | 3 + .../webform.webform.test_cards_toggle.yml | 3 + ...m.webform.test_cards_validation_errors.yml | 3 + .../webform_cards_test.info.yml | 6 +- .../webform_cards/webform_cards.info.yml | 6 +- .../webform_cards/webform_cards.module | 111 +++++++--- .../js/webform_clientside_validation.ife.js | 4 +- ...orm.webform.test_clientside_validation.yml | 5 +- ...bform.test_clientside_validation_state.yml | 6 +- ...ebform_clientside_validation_test.info.yml | 6 +- .../webform_clientside_validation.info.yml | 6 +- .../webform.webform.demo_application.yml | 5 + ...rm.webform.demo_application_evaluation.yml | 7 +- ...bform_demo_application_evaluation.info.yml | 6 +- ...ebform_demo_application_evaluation.install | 1 + ...ebform.webform.demo_event_registration.yml | 3 + .../webform_demo_event_registration.info.yml | 6 +- .../webform_demo_event_registration.install | 1 + .../webform.webform.webform_group_contact.yml | 3 + .../webform_demo_group.info.yml | 6 +- .../webform.webform.demo_region_contact.yml | 3 + .../webform_demo_region_contact.info.yml | 6 +- .../webform_demo_region_contact.install | 1 + .../webform_devel/webform_devel.info.yml | 6 +- .../webform.webform.test_entity_print.yml | 6 +- ...bform.webform.test_entity_print_custom.yml | 3 + .../webform_entity_print_test.info.yml | 6 +- .../webform_entity_print.info.yml | 6 +- ...m.webform.test_entity_print_attachment.yml | 3 + ...form_entity_print_attachment_test.info.yml | 6 +- .../webform_entity_print_attachment.info.yml | 6 +- ...form.webform.webform_example_composite.yml | 3 + .../webform_example_composite.info.yml | 6 +- .../webform_example_composite.module | 2 +- ...rm.webform.webform_example_custom_form.yml | 3 + .../webform_example_custom_form.info.yml | 6 +- ...ebform.webform.webform_example_element.yml | 3 + .../webform_example_element.info.yml | 6 +- ...ebform_example_element_properties.info.yml | 6 +- ...ebform.webform.webform_example_handler.yml | 3 + .../webform_example_handler.info.yml | 6 +- .../webform.webform.example_remote_post.yml | 4 + .../webform_example_remote_post.info.yml | 6 +- ...ebform.webform_example_variant_ab_test.yml | 7 +- ...bform.webform_example_variant_segments.yml | 3 + .../webform_example_variant.info.yml | 6 +- ...form.webform.example_computed_elements.yml | 3 + ...webform.example_computed_elements_ajax.yml | 11 +- ...webform.webform.example_element_states.yml | 3 + ...webform.webform.example_flexbox_layout.yml | 3 + .../webform.webform.example_input_masks.yml | 3 + .../webform.webform.example_style_guide.yml | 27 ++- .../webform.webform.example_wizard.yml | 3 + .../webform.webform.example_cards.yml | 3 + .../webform_examples.info.yml | 6 +- ...webform.example_accessibility_advanced.yml | 3 + ...rm.webform.example_accessibility_basic.yml | 3 + ...bform.example_accessibility_containers.yml | 3 + ...m.webform.example_accessibility_labels.yml | 3 + ...m.webform.example_accessibility_wizard.yml | 3 + .../webform_examples_accessibility.info.yml | 6 +- .../src/WebformGroupManagerInterface.php | 8 +- ...bform.webform.test_element_group_roles.yml | 3 + ...form.webform.test_group_element_access.yml | 3 + .../webform_group_test.info.yml | 6 +- .../webform_group/webform_group.info.yml | 6 +- .../webform_group/webform_group.module | 4 +- .../webform.webform.test_element_icheck.yml | 3 + ...orm.webform.test_element_icheck_styles.yml | 3 + .../webform_icheck_test.info.yml | 6 +- .../webform_icheck/webform_icheck.info.yml | 6 +- ...form.webform.test_element_image_select.yml | 3 + .../webform.webform.test_element_images.yml | 3 + .../webform_image_select_test.info.yml | 6 +- .../webform_image_select.info.yml | 6 +- .../webform.webform.test_element_buttons.yml | 3 + .../webform_jqueryui_buttons_test.info.yml | 6 +- .../webform_jqueryui_buttons.info.yml | 6 +- ...m.webform.test_element_loc_geocomplete.yml | 3 + ...webform_location_geocomplete_test.info.yml | 6 +- .../webform_location_geocomplete.info.yml | 6 +- ...m.webform.webform_node_test_multiple_a.yml | 3 + ...m.webform.webform_node_test_multiple_b.yml | 3 + .../webform_node_test_multiple.info.yml | 6 +- .../webform_node_test_multiple.install | 1 + ....webform.webform_node_test_translation.yml | 3 + .../webform_node_test_translation.info.yml | 6 +- .../Access/WebformNodeAccessClosedTest.php | 66 ++++++ .../src/Functional/WebformNodeResultsTest.php | 1 + .../webform_node/webform_node.info.yml | 6 +- ...webform.webform.example_options_custom.yml | 3 + .../js/webform_options_custom.element.js | 1 - .../src/Element/WebformOptionsCustom.php | 2 +- ...ebform.test_element_options_custom_ent.yml | 3 + ...ebform_options_custom_entity_test.info.yml | 6 +- ...bform.test_element_options_custom_html.yml | 3 + ...bform.test_element_options_custom_imap.yml | 3 + ...ebform.test_element_options_custom_svg.yml | 3 + ...bform.test_element_options_custom_twig.yml | 3 + .../webform_options_custom_test.info.yml | 6 +- .../webform_options_custom.info.yml | 6 +- .../OptionsLimitWebformHandler.php | 6 +- ...orm.webform.test_handler_boolean_limit.yml | 3 + ...orm.webform.test_handler_options_limit.yml | 5 +- ...webform.test_handler_options_limit_ent.yml | 3 + ...ebform.test_handler_options_limit_user.yml | 3 + .../webform_options_limit_test.info.yml | 6 +- .../webform_options_limit.info.yml | 6 +- ...m.webform.test_handler_scheduled_email.yml | 3 + .../webform_scheduled_email_test.info.yml | 6 +- ...bform.test_handler_scheduled_translate.yml | 3 + ..._scheduled_email_test_translation.info.yml | 6 +- .../webform_scheduled_email.info.yml | 6 +- .../webform_share/webform_share.info.yml | 6 +- .../webform_share/webform_share.module | 2 +- .../WebformShortcutsFunctionalTest.php | 4 +- .../webform_shortcuts.info.yml | 6 +- ...ebformSubmissionExportImportUploadForm.php | 10 +- .../WebformSubmissionExportImportImporter.php | 6 +- ....webform.test_submission_export_import.yml | 3 + ...orm_submission_export_import_test.info.yml | 6 +- .../webform_submission_export_import.info.yml | 6 +- .../webform_submission_log.info.yml | 6 +- .../webform.webform.template_contact.yml | 3 + ...m.webform.template_employee_evaluation.yml | 3 + .../webform.webform.template_feedback.yml | 3 + .../webform.webform.template_issue.yml | 3 + ...bform.webform.template_job_application.yml | 3 + ...rm.webform.template_job_seeker_profile.yml | 5 +- ...m.webform.template_medical_appointment.yml | 9 +- .../webform.webform.template_registration.yml | 3 + ...rm.webform.template_session_evaluation.yml | 3 + .../webform.webform.template_subscribe.yml | 3 + .../webform.webform.template_user_profile.yml | 3 + .../webform_templates.info.yml | 6 +- .../webform.webform.test_element_toggles.yml | 3 + .../webform_toggles_test.info.yml | 6 +- .../webform_toggles/webform_toggles.info.yml | 6 +- .../PathProcessor/WebformUiPathProcessor.php | 2 +- .../WebformUiElementPropertiesTest.php | 11 +- .../src/Functional/WebformUiElementTest.php | 2 +- .../src/Unit/WebformUiPathProcessorTest.php | 76 +++++++ .../modules/webform_ui/webform_ui.info.yml | 6 +- .../src/Commands/WebformCliService.php | 4 +- .../webform/src/Commands/WebformCommands.php | 3 +- .../Controller/WebformEntityController.php | 14 +- .../WebformResultsExportController.php | 2 +- .../webform/src/Element/WebformCodeMirror.php | 8 +- .../src/Element/WebformElementAttributes.php | 7 +- .../src/Element/WebformEmailConfirm.php | 4 +- .../src/Element/WebformEntityTrait.php | 25 +++ .../webform/src/Element/WebformHeight.php | 2 +- .../webform/src/Element/WebformLikert.php | 2 +- .../webform/src/Element/WebformMessage.php | 11 + .../webform/src/Element/WebformMultiple.php | 6 +- web/modules/webform/src/Entity/Webform.php | 11 +- .../webform/src/Entity/WebformOptions.php | 15 ++ .../WebformEntitySettingsBaseForm.php | 5 +- .../WebformEntitySettingsFormForm.php | 161 +++++++------- .../WebformAdminConfigBaseForm.php | 96 ++++++++ .../WebformAdminConfigFormsForm.php | 17 ++ .../WebformAdminConfigSubmissionsForm.php | 4 + .../webform/src/Form/WebformAjaxFormTrait.php | 8 +- .../webform/src/Form/WebformBulkFormBase.php | 206 ++++++++++++++++++ .../Form/WebformDeleteMultipleFormBase.php | 110 ++++++++++ .../src/Form/WebformEntityBulkForm.php | 34 +++ .../Form/WebformEntityDeleteMultipleForm.php | 33 +++ .../src/Form/WebformSubmissionBulkForm.php | 52 +++++ .../src/Form/WebformSubmissionDeleteForm.php | 1 + .../Form/WebformSubmissionDeleteMultiple.php | 106 --------- .../WebformSubmissionDeleteMultipleForm.php | 30 +++ .../Form/WebformSubmissionsDeleteFormBase.php | 2 +- .../Plugin/Action/DeleteWebformSubmission.php | 68 ------ .../Action/WebformEntityArchiveAction.php | 36 +++ .../Action/WebformEntityCloseAction.php | 37 ++++ .../Action/WebformEntityDeleteAction.php | 17 ++ .../Plugin/Action/WebformEntityOpenAction.php | 37 ++++ .../Action/WebformEntityUnarchiveAction.php | 36 +++ .../Action/WebformSubmissionDeleteAction.php | 17 ++ ...on.php => WebformSubmissionLockAction.php} | 4 +- ....php => WebformSubmissionStickyAction.php} | 4 +- ....php => WebformSubmissionUnlockAction.php} | 4 +- ...hp => WebformSubmissionUnstickyAction.php} | 4 +- .../WebformSubmissionDevelGenerateTrait.php | 2 +- .../WebformEntityReferenceEntityFormatter.php | 7 +- .../src/Plugin/WebformElement/DateBase.php | 14 +- .../src/Plugin/WebformElement/DateList.php | 2 +- .../src/Plugin/WebformElement/OptionsBase.php | 2 +- .../src/Plugin/WebformElement/Password.php | 13 ++ .../WebformElement/WebformCustomComposite.php | 30 +++ .../WebformElement/WebformImageFile.php | 2 +- .../WebformElement/WebformManagedFileBase.php | 4 +- .../WebformElement/WebformSignature.php | 1 - .../Plugin/WebformElement/WebformTable.php | 15 +- .../WebformElement/WebformTableSelectSort.php | 2 +- .../WebformElement/WebformTableSort.php | 2 +- .../webform/src/Plugin/WebformElementBase.php | 42 ++-- .../WebformHandler/EmailWebformHandler.php | 42 ++++ .../RemotePostWebformHandler.php | 31 ++- .../webform/src/Twig/WebformTwigExtension.php | 4 +- .../webform/src/Utility/WebformDateHelper.php | 2 +- .../src/Utility/WebformElementHelper.php | 2 +- .../webform/src/WebformAddonsManager.php | 65 +++++- .../webform/src/WebformEntityDeleteForm.php | 1 + .../webform/src/WebformEntityListBuilder.php | 24 +- .../webform/src/WebformHelpManager.php | 8 +- .../webform/src/WebformLibrariesManager.php | 32 +-- .../WebformSubmissionConditionsValidator.php | 41 +++- .../webform/src/WebformSubmissionExporter.php | 27 +++ .../webform/src/WebformSubmissionForm.php | 48 +++- .../src/WebformSubmissionListBuilder.php | 17 +- .../webform/src/WebformSubmissionStorage.php | 2 + .../src/WebformSubmissionViewsData.php | 4 +- .../src/WebformTranslationConfigManager.php | 19 +- .../webform/src/WebformTranslationManager.php | 4 +- .../install/webform.webform.test_ajax.yml | 5 + ....webform.test_ajax_confirmation_inline.yml | 5 + ...webform.test_ajax_confirmation_message.yml | 5 + ...m.webform.test_ajax_confirmation_modal.yml | 5 + ...rm.webform.test_ajax_confirmation_page.yml | 5 + ...orm.webform.test_ajax_confirmation_url.yml | 5 + ...webform.test_ajax_confirmation_url_msg.yml | 5 + .../webform.webform.test_composite.yml | 5 + .../webform.webform.test_composite_custom.yml | 33 +++ ...orm.webform.test_composite_custom_file.yml | 5 + .../webform.webform.test_composite_format.yml | 5 + ...webform.test_composite_format_multiple.yml | 5 + ...bform.webform.test_confirmation_inline.yml | 5 + ...form.webform.test_confirmation_message.yml | 5 + ...ebform.webform.test_confirmation_modal.yml | 5 + ...webform.webform.test_confirmation_none.yml | 5 + ...webform.webform.test_confirmation_page.yml | 5 + ....webform.test_confirmation_page_custom.yml | 5 + .../webform.webform.test_confirmation_url.yml | 5 + ....webform.test_confirmation_url_message.yml | 5 + .../install/webform.webform.test_element.yml | 18 +- .../webform.webform.test_element_access.yml | 5 + .../webform.webform.test_element_actions.yml | 5 + ...m.webform.test_element_actions_buttons.yml | 5 + .../webform.webform.test_element_address.yml | 5 + ...form.webform.test_element_allowed_tags.yml | 5 + ...ebform.webform.test_element_attributes.yml | 16 ++ ...form.webform.test_element_autocomplete.yml | 5 + .../webform.webform.test_element_captcha.yml | 5 + .../webform.webform.test_element_checkbox.yml | 5 + ...rm.webform.test_element_checkbox_value.yml | 5 + ...ebform.webform.test_element_checkboxes.yml | 5 + ...bform.test_element_checkboxes_all_none.yml | 5 + ...ebform.webform.test_element_codemirror.yml | 19 ++ ...webform.webform.test_element_composite.yml | 5 + ...webform.test_element_composite_wrapper.yml | 5 + ...orm.webform.test_element_computed_ajax.yml | 5 + ...rm.webform.test_element_computed_debug.yml | 5 + ...rm.webform.test_element_computed_token.yml | 5 + ...orm.webform.test_element_computed_twig.yml | 5 + ...webform.webform.test_element_container.yml | 5 + .../webform.webform.test_element_counter.yml | 5 + .../webform.webform.test_element_date.yml | 5 + .../webform.webform.test_element_datelist.yml | 5 + .../webform.webform.test_element_datetime.yml | 5 + ...bform.webform.test_element_description.yml | 8 + ...bform.test_element_description_tooltip.yml | 5 + .../webform.webform.test_element_details.yml | 5 + .../webform.webform.test_element_disabled.yml | 5 + ...orm.webform.test_element_email_confirm.yml | 5 + ...rm.webform.test_element_email_multiple.yml | 5 + ...bform.test_element_entity_autocomplete.yml | 5 + ....webform.test_element_entity_reference.yml | 5 + ....webform.test_element_excluded_columns.yml | 5 + ...webform.test_element_excluded_elements.yml | 5 + .../webform.webform.test_element_fieldset.yml | 5 + .../webform.webform.test_element_flexbox.yml | 5 + ...form.webform.test_element_flexbox_flex.yml | 5 + .../webform.webform.test_element_format.yml | 5 + ...orm.webform.test_element_format_custom.yml | 5 + ...m.webform.test_element_format_multiple.yml | 5 + ...form.webform.test_element_format_token.yml | 5 + .../webform.webform.test_element_height.yml | 5 + .../webform.webform.test_element_help.yml | 9 + ...form.webform.test_element_help_display.yml | 5 + ...m.webform.test_element_horizontal_rule.yml | 5 + ...bform.webform.test_element_html_editor.yml | 5 + ...bform.webform.test_element_html_escape.yml | 5 + ...bform.webform.test_element_html_markup.yml | 5 + ...ebform.test_element_ignored_properties.yml | 5 + ...ebform.webform.test_element_image_file.yml | 5 + ...webform.test_element_image_file_attach.yml | 5 + ....webform.test_element_image_resolution.yml | 5 + ...ebform.webform.test_element_input_mask.yml | 5 + .../webform.webform.test_element_invalid.yml | 4 + .../webform.webform.test_element_likert.yml | 5 + ...ebform.webform.test_element_loc_places.yml | 5 + ...form.webform.test_element_managed_file.yml | 5 + ....webform.test_element_managed_file_dis.yml | 5 + ...webform.test_element_managed_file_help.yml | 5 + ...ebform.test_element_managed_file_limit.yml | 5 + ...webform.test_element_managed_file_name.yml | 5 + ...webform.test_element_managed_file_prev.yml | 5 + .../webform.webform.test_element_mapping.yml | 5 + .../webform.webform.test_element_markup.yml | 5 + ...ebform.webform.test_element_media_file.yml | 5 + .../webform.webform.test_element_message.yml | 5 + .../webform.webform.test_element_more.yml | 5 + .../webform.webform.test_element_multiple.yml | 5 + ...orm.webform.test_element_multiple_date.yml | 5 + ...m.webform.test_element_multiple_header.yml | 6 +- ...webform.test_element_multiple_property.yml | 5 + ...orm.webform.test_element_multiple_text.yml | 5 + .../webform.webform.test_element_options.yml | 5 + .../webform.webform.test_element_other.yml | 5 + ...bform.webform.test_element_prepopulate.yml | 5 + .../webform.webform.test_element_private.yml | 5 + .../webform.webform.test_element_radios.yml | 5 + .../webform.webform.test_element_range.yml | 5 + .../webform.webform.test_element_rating.yml | 5 + .../webform.webform.test_element_readonly.yml | 5 + .../webform.webform.test_element_same.yml | 5 + .../webform.webform.test_element_scale.yml | 5 + .../webform.webform.test_element_section.yml | 5 + .../webform.webform.test_element_select.yml | 5 + ...webform.webform.test_element_signature.yml | 5 + .../webform.webform.test_element_states.yml | 5 + ....webform.test_element_submission_views.yml | 5 + ...ebform.test_element_submission_views_r.yml | 5 + ...m.webform.test_element_submitted_value.yml | 5 + .../webform.webform.test_element_table.yml | 5 + ...form.webform.test_element_table_select.yml | 5 + ...webform.test_element_table_select_sort.yml | 5 + ...webform.webform.test_element_telephone.yml | 5 + ...rm.webform.test_element_term_reference.yml | 5 + ....webform.test_element_terms_of_service.yml | 5 + ...bform.webform.test_element_text_format.yml | 5 + .../webform.webform.test_element_time.yml | 5 + ...orm.webform.test_element_title_display.yml | 5 + ...bform.webform.test_element_users_roles.yml | 5 + ...ebform.test_element_validate_minlength.yml | 5 + ...webform.test_element_validate_multiple.yml | 5 + ....webform.test_element_validate_pattern.yml | 5 + ...webform.test_element_validate_required.yml | 23 +- ...m.webform.test_element_validate_unique.yml | 5 + ...orm.webform.test_element_vertical_tabs.yml | 5 + .../webform.webform.test_element_view.yml | 5 + .../webform.webform.test_example_elements.yml | 5 + ...ebform.test_example_elements_composite.yml | 7 +- .../webform.webform.test_exporter_archive.yml | 8 +- ...webform.test_exporter_entity_reference.yml | 5 + .../webform.webform.test_exporter_options.yml | 5 + ...ebform.webform.test_form_access_denied.yml | 5 + .../install/webform.webform.test_form_api.yml | 5 + .../webform.webform.test_form_archived.yml | 5 + .../webform.webform.test_form_assets.yml | 5 + .../webform.webform.test_form_autofill.yml | 5 + .../webform.webform.test_form_autofocus.yml | 5 + .../webform.webform.test_form_closed.yml | 5 + ...webform.webform.test_form_confidential.yml | 5 + ...bform.webform.test_form_details_toggle.yml | 5 + ...webform.test_form_disable_autocomplete.yml | 5 + ...webform.webform.test_form_disable_back.yml | 5 + ...ebform.test_form_disable_inline_errors.yml | 5 + ...form.webform.test_form_draft_anonymous.yml | 5 + ....webform.test_form_draft_authenticated.yml | 5 + ...bform.webform.test_form_draft_multiple.yml | 5 + ...ebform.webform.test_form_inline_errors.yml | 5 + .../webform.webform.test_form_limit.yml | 5 + ...m.webform.test_form_limit_total_unique.yml | 5 + ...rm.webform.test_form_limit_user_unique.yml | 5 + .../webform.webform.test_form_limit_wait.yml | 5 + .../webform.webform.test_form_long_100.yml | 5 + .../webform.webform.test_form_long_200.yml | 5 + .../webform.webform.test_form_long_300.yml | 5 + .../webform.webform.test_form_novalidate.yml | 5 + .../webform.webform.test_form_opening.yml | 5 + .../webform.webform.test_form_prepopulate.yml | 5 + .../webform.webform.test_form_preview.yml | 5 + .../webform.webform.test_form_properties.yml | 16 +- .../webform.webform.test_form_remote_addr.yml | 5 + .../webform.webform.test_form_required.yml | 5 + .../webform.webform.test_form_reset.yml | 5 + ...orm.webform.test_form_results_disabled.yml | 5 + .../webform.webform.test_form_submit_back.yml | 5 + .../webform.webform.test_form_submit_once.yml | 5 + .../webform.webform.test_form_submit_text.yml | 5 + .../webform.webform.test_form_template.yml | 5 + .../webform.webform.test_form_unsaved.yml | 5 + ...bform.webform.test_form_unsaved_wizard.yml | 5 + .../webform.webform.test_form_validate.yml | 5 + ...ebform.webform.test_form_wizard_access.yml | 5 + ...form.webform.test_form_wizard_advanced.yml | 5 + ...webform.webform.test_form_wizard_basic.yml | 5 + ...m.webform.test_form_wizard_conditional.yml | 5 + ...ebform.webform.test_form_wizard_custom.yml | 5 + ...webform.webform.test_form_wizard_links.yml | 5 + ...form.webform.test_form_wizard_long_100.yml | 5 + ...form.webform.test_form_wizard_long_200.yml | 5 + ...form.webform.test_form_wizard_long_300.yml | 5 + ...form.webform.test_form_wizard_validate.yml | 5 + ...webform.test_form_wizard_validate_comp.yml | 5 + .../webform.webform.test_handler_action.yml | 5 + .../webform.webform.test_handler_email.yml | 5 + ...rm.webform.test_handler_email_advanced.yml | 5 + ...orm.webform.test_handler_email_mapping.yml | 5 + ...bform.webform.test_handler_email_roles.yml | 5 + ...form.webform.test_handler_email_states.yml | 5 + ...ebform.webform.test_handler_email_twig.yml | 5 + .../webform.webform.test_handler_settings.yml | 5 + ...ebform.webform.test_libraries_optional.yml | 5 + .../webform.webform.test_rendering.yml | 5 + ...bform.webform.test_states_autocomplete.yml | 5 + ...rm.webform.test_states_client_disabled.yml | 5 + ...m.webform.test_states_client_invisible.yml | 5 + ...rm.webform.test_states_client_required.yml | 5 + ...orm.webform.test_states_client_visible.yml | 5 + .../webform.webform.test_states_crosspage.yml | 5 + .../webform.webform.test_states_disabled.yml | 5 + ...bform.webform.test_states_server_clear.yml | 5 + ...ebform.webform.test_states_server_comp.yml | 5 + ....webform.test_states_server_containers.yml | 5 + ...form.webform.test_states_server_custom.yml | 5 + ...ebform.webform.test_states_server_file.yml | 5 + ...form.webform.test_states_server_hidden.yml | 5 + ...form.webform.test_states_server_likert.yml | 5 + ...rm.webform.test_states_server_multiple.yml | 5 + ...form.webform.test_states_server_nested.yml | 5 + ...orm.webform.test_states_server_preview.yml | 5 + ...rm.webform.test_states_server_required.yml | 5 + ...ebform.webform.test_states_server_save.yml | 5 + ...form.webform.test_states_server_wizard.yml | 5 + .../webform.webform.test_states_to_text.yml | 5 + .../webform.webform.test_states_triggers.yml | 28 +-- .../webform.webform.test_submission_label.yml | 5 + .../webform.webform.test_submission_log.yml | 5 + .../webform.webform.test_submission_views.yml | 5 + .../install/webform.webform.test_token.yml | 5 + .../webform.webform.test_token_operations.yml | 10 +- ...rm.webform.test_token_submission_value.yml | 5 + .../install/webform.webform.test_variant.yml | 5 + .../webform.webform.test_variant_multiple.yml | 5 + .../webform.webform.test_variant_override.yml | 5 + ...webform.webform.test_variant_randomize.yml | 5 + .../webform_test/webform_test.info.yml | 6 +- .../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_comp_file_plugin.yml | 3 + ....webform.test_element_composite_plugin.yml | 3 + .../webform.webform.test_element_plugin.yml | 6 +- .../webform_test_element.info.yml | 6 +- .../webform_test_element_input_masks.info.yml | 6 +- ...bform.test_element_entity_reference_vs.yml | 3 + ...bform_test_entity_reference_views.info.yml | 6 +- .../webform_test_exporter.info.yml | 6 +- ...ebform.webform.test_handler_conditions.yml | 3 + .../webform.webform.test_handler_test.yml | 3 + .../webform_test_handler.info.yml | 6 +- ...webform_test_handler_invoke_alter.info.yml | 6 +- ...ebform.webform.test_handler_remote_get.yml | 4 + ...bform.webform.test_handler_remote_post.yml | 4 + ....webform.test_handler_remote_post_cast.yml | 6 +- ...webform.test_handler_remote_post_error.yml | 10 +- ....webform.test_handler_remote_post_file.yml | 4 + ...ebform.webform.test_handler_remote_put.yml | 4 + .../webform_test_handler_remote_post.info.yml | 6 +- .../webform_test_markup.info.yml | 6 +- .../webform_test_message_custom.info.yml | 6 +- .../install/webform.webform.test_options.yml | 3 + .../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.webform.test_submissions.yml | 3 + .../webform_test_submissions.info.yml | 6 +- ...webform_test_third_party_settings.info.yml | 6 +- .../install/language/es/webform.settings.yml | 8 +- .../es/webform.webform.test_translation.yml | 5 +- .../webform.webform.test_translation.yml | 7 +- .../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 +- .../Composite/WebformCompositeCustomTest.php | 7 + .../Composite/WebformCompositeTest.php | 6 +- .../Element/WebformElementAddressTest.php | 2 +- .../Element/WebformElementAttributesTest.php | 21 +- .../Element/WebformElementCodeMirrorTest.php | 4 + .../Element/WebformElementCompositeTest.php | 4 +- .../Element/WebformElementDetailsTest.php | 2 +- .../Element/WebformElementFieldsetTest.php | 4 +- .../Element/WebformElementHelpTest.php | 33 +-- .../Element/WebformElementLikertTest.php | 6 +- .../Element/WebformElementMappingTest.php | 2 +- .../WebformElementPluginPropertiesTest.php | 8 +- .../Element/WebformElementRadiosTest.php | 2 +- .../Element/WebformElementSectionTest.php | 2 +- .../WebformElementValidateRequiredTest.php | 3 +- .../Form/WebformFormPropertiesTest.php | 14 +- .../Handler/WebformHandlerRemotePostTest.php | 23 ++ .../Settings/WebformSettingsAdminTest.php | 4 +- .../Views/WebformViewsBulkFormTest.php | 3 +- .../src/Functional/WebformEditorTest.php | 2 +- .../WebformEntityTranslationTest.php | 2 + .../src/Functional/WebformListBuilderTest.php | 166 +++++++++++++- .../src/Functional/WebformOptionsTest.php | 4 + .../WebformResultsExportOptionsTest.php | 7 + ...ubmissionListBuilderBulkOperationsTest.php | 185 ++++++++++++++++ .../WebformSubmissionListBuilderTest.php | 1 - .../src/Traits/WebformBrowserTestTrait.php | 15 ++ .../webform_test_bartik.info.yml | 6 +- web/modules/webform/webform.info.yml | 6 +- web/modules/webform/webform.libraries.yml | 37 ++-- web/modules/webform/webform.module | 67 +++--- web/modules/webform/webform.routing.yml | 13 +- 580 files changed, 4435 insertions(+), 1135 deletions(-) create mode 100644 web/modules/webform/config/install/system.action.webform_archive_action.yml create mode 100644 web/modules/webform/config/install/system.action.webform_close_action.yml create mode 100644 web/modules/webform/config/install/system.action.webform_delete_action.yml create mode 100644 web/modules/webform/config/install/system.action.webform_open_action.yml create mode 100644 web/modules/webform/config/install/system.action.webform_unarchive_action.yml create mode 100644 web/modules/webform/css/webform.element.message.info.css create mode 100644 web/modules/webform/css/webform.theme.gin.css rename web/modules/webform/js/{webform.jquery.ui.dialog.js => webform.drupal.dialog.js} (78%) create mode 100644 web/modules/webform/modules/webform_node/tests/src/Functional/Access/WebformNodeAccessClosedTest.php create mode 100644 web/modules/webform/modules/webform_ui/tests/src/Unit/WebformUiPathProcessorTest.php create mode 100644 web/modules/webform/src/Form/WebformBulkFormBase.php create mode 100644 web/modules/webform/src/Form/WebformDeleteMultipleFormBase.php create mode 100644 web/modules/webform/src/Form/WebformEntityBulkForm.php create mode 100644 web/modules/webform/src/Form/WebformEntityDeleteMultipleForm.php create mode 100644 web/modules/webform/src/Form/WebformSubmissionBulkForm.php delete mode 100644 web/modules/webform/src/Form/WebformSubmissionDeleteMultiple.php create mode 100644 web/modules/webform/src/Form/WebformSubmissionDeleteMultipleForm.php delete mode 100644 web/modules/webform/src/Plugin/Action/DeleteWebformSubmission.php create mode 100644 web/modules/webform/src/Plugin/Action/WebformEntityArchiveAction.php create mode 100644 web/modules/webform/src/Plugin/Action/WebformEntityCloseAction.php create mode 100644 web/modules/webform/src/Plugin/Action/WebformEntityDeleteAction.php create mode 100644 web/modules/webform/src/Plugin/Action/WebformEntityOpenAction.php create mode 100644 web/modules/webform/src/Plugin/Action/WebformEntityUnarchiveAction.php create mode 100644 web/modules/webform/src/Plugin/Action/WebformSubmissionDeleteAction.php rename web/modules/webform/src/Plugin/Action/{LockWebformSubmission.php => WebformSubmissionLockAction.php} (88%) rename web/modules/webform/src/Plugin/Action/{StickyWebformSubmission.php => WebformSubmissionStickyAction.php} (88%) rename web/modules/webform/src/Plugin/Action/{UnlockWebformSubmission.php => WebformSubmissionUnlockAction.php} (88%) rename web/modules/webform/src/Plugin/Action/{UnstickyWebformSubmission.php => WebformSubmissionUnstickyAction.php} (87%) create mode 100644 web/modules/webform/tests/src/Functional/WebformSubmissionListBuilderBulkOperationsTest.php diff --git a/composer.lock b/composer.lock index 143db1183a..06555cc036 100644 --- a/composer.lock +++ b/composer.lock @@ -7980,17 +7980,17 @@ }, { "name": "drupal/webform", - "version": "6.0.5", + "version": "6.1.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/webform.git", - "reference": "6.0.5" + "reference": "6.1.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/webform-6.0.5.zip", - "reference": "6.0.5", - "shasum": "a925d604e3b4a29f5a688a8e84fdb3a93490f641" + "url": "https://ftp.drupal.org/files/projects/webform-6.1.0.zip", + "reference": "6.1.0", + "shasum": "0dae48cc100133a4144ca8219d5506b917888588" }, "require": { "drupal/core": "^8.8 || ^9" @@ -8038,8 +8038,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "6.0.5", - "datestamp": "1629909787", + "version": "6.1.0", + "datestamp": "1635676666", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 87ceb13790..f2c3cba795 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -8315,18 +8315,18 @@ }, { "name": "drupal/webform", - "version": "6.0.5", - "version_normalized": "6.0.5.0", + "version": "6.1.0", + "version_normalized": "6.1.0.0", "source": { "type": "git", "url": "https://git.drupalcode.org/project/webform.git", - "reference": "6.0.5" + "reference": "6.1.0" }, "dist": { "type": "zip", - "url": "https://ftp.drupal.org/files/projects/webform-6.0.5.zip", - "reference": "6.0.5", - "shasum": "a925d604e3b4a29f5a688a8e84fdb3a93490f641" + "url": "https://ftp.drupal.org/files/projects/webform-6.1.0.zip", + "reference": "6.1.0", + "shasum": "0dae48cc100133a4144ca8219d5506b917888588" }, "require": { "drupal/core": "^8.8 || ^9" @@ -8374,8 +8374,8 @@ "type": "drupal-module", "extra": { "drupal": { - "version": "6.0.5", - "datestamp": "1629909787", + "version": "6.1.0", + "datestamp": "1635676666", "security-coverage": { "status": "covered", "message": "Covered by Drupal's security advisory policy" diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index be90901599..1e63755e08 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -5,7 +5,7 @@ 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '1302399ef0325d509963157dd3e51fa3365d5b9f', + 'reference' => '5baa0f240fa9db4ac35dde696ec3fe32e6e3eec2', 'name' => 'osu-asc-webservices/d8-upstream', 'dev' => true, ), @@ -1838,12 +1838,12 @@ ), ), 'drupal/webform' => array( - 'pretty_version' => '6.0.5', - 'version' => '6.0.5.0', + 'pretty_version' => '6.1.0', + 'version' => '6.1.0.0', 'type' => 'drupal-module', 'install_path' => __DIR__ . '/../../web/modules/webform', 'aliases' => array(), - 'reference' => '6.0.5', + 'reference' => '6.1.0', 'dev_requirement' => false, ), 'drupal/workflows' => array( @@ -2104,7 +2104,7 @@ 'type' => 'project', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '1302399ef0325d509963157dd3e51fa3365d5b9f', + 'reference' => '5baa0f240fa9db4ac35dde696ec3fe32e6e3eec2', 'dev_requirement' => false, ), 'pantheon-systems/quicksilver-pushback' => array( diff --git a/web/modules/webform/README.md b/web/modules/webform/README.md index f32f8190a6..bf4d8b5421 100644 --- a/web/modules/webform/README.md +++ b/web/modules/webform/README.md @@ -45,15 +45,16 @@ INSTALLATION The installation of this module is like other Drupal modules. - 1. Copy/upload the webform module to the modules directory of your Drupal - installation. + 1. If your site is [managed via Composer](https://www.drupal.org/node/2718229), + use Composer to download the webform module running + ```composer require "drupal/webform"```. Otherwise copy/upload the webform + module to the modules directory of your Drupal installation. 2. Enable the 'Webform' module and desired sub-modules in 'Extend'. (/admin/modules) 3. Set up user permissions. (/admin/people/permissions#module-webform) - RECOMMENDED MODULES ------------------- diff --git a/web/modules/webform/composer.libraries.json b/web/modules/webform/composer.libraries.json index efbccb97aa..1c5fa51d32 100644 --- a/web/modules/webform/composer.libraries.json +++ b/web/modules/webform/composer.libraries.json @@ -73,9 +73,6 @@ "dist": { "url": "https://registry.npmjs.org/places.js/-/places.js-1.19.0.tgz", "type": "tar" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -91,9 +88,6 @@ "dist": { "url": "https://github.com/jshjohnson/Choices/archive/v9.0.1.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -109,9 +103,6 @@ "dist": { "url": "https://download.ckeditor.com/autogrow/releases/autogrow_4.16.2.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -127,9 +118,6 @@ "dist": { "url": "https://github.com/w8tcha/CKEditor-CodeMirror-Plugin/releases/download/v1.17.12/CKEditor-CodeMirror-Plugin.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -145,9 +133,6 @@ "dist": { "url": "https://download.ckeditor.com/fakeobjects/releases/fakeobjects_4.16.2.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -163,9 +148,6 @@ "dist": { "url": "https://download.ckeditor.com/image/releases/image_4.16.2.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -181,9 +163,6 @@ "dist": { "url": "https://download.ckeditor.com/link/releases/link_4.16.2.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -199,9 +178,6 @@ "dist": { "url": "https://github.com/components/codemirror/archive/5.61.1.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -217,9 +193,6 @@ "dist": { "url": "https://github.com/harvesthq/chosen/releases/download/v1.8.7/chosen_v1.8.7.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -235,9 +208,6 @@ "dist": { "url": "https://github.com/ubilabs/geocomplete/archive/1.7.0.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -253,9 +223,6 @@ "dist": { "url": "https://github.com/jeresig/jquery.hotkeys/archive/0.2.0.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -271,9 +238,6 @@ "dist": { "url": "https://github.com/fronteed/icheck/archive/1.0.2.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -289,9 +253,6 @@ "dist": { "url": "https://github.com/rvera/image-picker/archive/0.3.1.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -307,9 +268,6 @@ "dist": { "url": "https://github.com/RobinHerbots/jquery.inputmask/archive/5.0.6.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -325,9 +283,6 @@ "dist": { "url": "https://github.com/jackocnr/intl-tel-input/archive/v16.1.0.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -343,9 +298,6 @@ "dist": { "url": "https://github.com/gjunge/rateit.js/archive/1.1.3.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -361,9 +313,6 @@ "dist": { "url": "https://github.com/select2/select2/archive/4.0.13.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -379,9 +328,6 @@ "dist": { "url": "https://github.com/ractoon/jQuery-Text-Counter/archive/0.9.0.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -397,9 +343,6 @@ "dist": { "url": "https://github.com/jonthornton/jquery-timepicker/archive/1.13.18.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -415,9 +358,6 @@ "dist": { "url": "https://github.com/simontabor/jquery-toggles/archive/v4.0.0.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -433,9 +373,6 @@ "dist": { "url": "https://github.com/NigelOToole/progress-tracker/archive/2.0.6.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -451,9 +388,6 @@ "dist": { "url": "https://github.com/szimek/signature_pad/archive/v2.3.0.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -469,9 +403,6 @@ "dist": { "url": "https://github.com/ariutta/svg-pan-zoom/archive/3.6.1.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -487,9 +418,6 @@ "dist": { "url": "https://github.com/cferdinandi/tabby/archive/v12.0.3.zip", "type": "zip" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -505,9 +433,6 @@ "dist": { "url": "https://unpkg.com/tippy.js@5.2.1/dist/tippy-bundle.iife.min.js", "type": "file" - }, - "require": { - "composer/installers": "~1.0" } } }, @@ -523,9 +448,6 @@ "dist": { "url": "https://unpkg.com/tippy.js@6.2.6/dist/tippy-bundle.umd.min.js", "type": "file" - }, - "require": { - "composer/installers": "~1.0" } } } diff --git a/web/modules/webform/config/install/system.action.webform_archive_action.yml b/web/modules/webform/config/install/system.action.webform_archive_action.yml new file mode 100644 index 0000000000..fa48322f9e --- /dev/null +++ b/web/modules/webform/config/install/system.action.webform_archive_action.yml @@ -0,0 +1,10 @@ +langcode: en +status: true +dependencies: + module: + - webform +id: webform_archive_action +label: 'Archive webform' +type: webform +plugin: webform_archive_action +configuration: { } diff --git a/web/modules/webform/config/install/system.action.webform_close_action.yml b/web/modules/webform/config/install/system.action.webform_close_action.yml new file mode 100644 index 0000000000..c8e223b80a --- /dev/null +++ b/web/modules/webform/config/install/system.action.webform_close_action.yml @@ -0,0 +1,10 @@ +langcode: en +status: true +dependencies: + module: + - webform +id: webform_close_action +label: 'Close webform' +type: webform +plugin: webform_close_action +configuration: { } diff --git a/web/modules/webform/config/install/system.action.webform_delete_action.yml b/web/modules/webform/config/install/system.action.webform_delete_action.yml new file mode 100644 index 0000000000..4e81f52a17 --- /dev/null +++ b/web/modules/webform/config/install/system.action.webform_delete_action.yml @@ -0,0 +1,10 @@ +langcode: en +status: true +dependencies: + module: + - webform +id: webform_delete_action +label: 'Delete webform' +type: webform +plugin: webform_delete_action +configuration: { } diff --git a/web/modules/webform/config/install/system.action.webform_open_action.yml b/web/modules/webform/config/install/system.action.webform_open_action.yml new file mode 100644 index 0000000000..35960eedbe --- /dev/null +++ b/web/modules/webform/config/install/system.action.webform_open_action.yml @@ -0,0 +1,10 @@ +langcode: en +status: true +dependencies: + module: + - webform +id: webform_open_action +label: 'Open webform' +type: webform +plugin: webform_open_action +configuration: { } diff --git a/web/modules/webform/config/install/system.action.webform_submission_make_sticky_action.yml b/web/modules/webform/config/install/system.action.webform_submission_make_sticky_action.yml index 85ea0ab663..54512e4660 100644 --- a/web/modules/webform/config/install/system.action.webform_submission_make_sticky_action.yml +++ b/web/modules/webform/config/install/system.action.webform_submission_make_sticky_action.yml @@ -4,7 +4,7 @@ dependencies: module: - webform id: webform_submission_make_sticky_action -label: 'Star/Flag submission' +label: 'Star/flag submission' type: webform_submission plugin: webform_submission_make_sticky_action configuration: { } diff --git a/web/modules/webform/config/install/system.action.webform_unarchive_action.yml b/web/modules/webform/config/install/system.action.webform_unarchive_action.yml new file mode 100644 index 0000000000..eb1033aac8 --- /dev/null +++ b/web/modules/webform/config/install/system.action.webform_unarchive_action.yml @@ -0,0 +1,10 @@ +langcode: en +status: true +dependencies: + module: + - webform +id: webform_unarchive_action +label: 'Restore webform' +type: webform +plugin: webform_unarchive_action +configuration: { } diff --git a/web/modules/webform/config/install/webform.settings.yml b/web/modules/webform/config/install/webform.settings.yml index c83daa5e64..1a16206a77 100644 --- a/web/modules/webform/config/install/webform.settings.yml +++ b/web/modules/webform/config/install/webform.settings.yml @@ -1,6 +1,6 @@ settings: default_status: open - default_page_base_path: '/form' + default_page_base_path: /form default_ajax: false default_ajax_effect: fade default_ajax_speed: 500 @@ -30,7 +30,7 @@ settings: messages messages--error messages messages--warning messages messages--status - + button_classes: '' default_wizard_prev_button_label: '< Previous' default_wizard_next_button_label: 'Next >' @@ -76,15 +76,15 @@ settings: messages messages--error messages messages--warning messages messages--status - + confirmation_classes: | messages messages--error messages messages--warning messages messages--status - + confirmation_back_classes: | button - + default_limit_total_message: 'No more submissions are permitted.' default_limit_user_message: 'No more submissions are permitted.' default_share: false @@ -101,6 +101,20 @@ settings: wide: title: Wide width: 1000 + webform_bulk_form: true + webform_bulk_form_actions: + - webform_open_action + - webform_close_action + - webform_archive_action + - webform_unarchive_action + - webform_delete_action + webform_submission_bulk_form: true + webform_submission_bulk_form_actions: + - webform_submission_make_sticky_action + - webform_submission_make_unsticky_action + - webform_submission_make_lock_action + - webform_submission_make_unlock_action + - webform_submission_delete_action assets: css: '' javascript: '' @@ -139,10 +153,11 @@ batch: purge: cron_size: 100 form: + limit: 50 filter_category: '' filter_state: '' element: - machine_name_pattern: 'a-z0-9_' + machine_name_pattern: a-z0-9_ empty_message: '{Empty}' allowed_tags: admin wrapper_classes: | @@ -151,14 +166,14 @@ element: messages messages--error messages messages--warning messages messages--status - + classes: | container-inline clearfix form--inline clearfix messages messages--error messages messages--warning messages messages--status - + horizontal_rule_classes: | webform-horizontal-rule--solid webform-horizontal-rule--dashed @@ -169,7 +184,7 @@ element: webform-horizontal-rule--thick webform-horizontal-rule--flaired webform-horizontal-rule--glyph - + default_description_display: '' default_more_title: More default_section_title_tag: h2 @@ -212,16 +227,16 @@ mail: default_body_text: | Submitted on [webform_submission:created] Submitted by: [webform_submission:user] - + Submitted values are: [webform_submission:values] - + default_body_html: | <p>Submitted on [webform_submission:created]</p> <p>Submitted by: [webform_submission:user]</p> <p>Submitted values are:</p> [webform_submission:values] - + roles: { } test: types: | @@ -264,7 +279,7 @@ test: webform_time: - '09:00' - '17:00' - + names: | first_name: - 'John' @@ -304,7 +319,7 @@ test: - 'Loremipsum' - 'Oratione' - 'Dixisset' - + ui: video_display: dialog details_save: true diff --git a/web/modules/webform/config/install/webform.webform.contact.yml b/web/modules/webform/config/install/webform.webform.contact.yml index e2696a080e..c42e65938b 100644 --- a/web/modules/webform/config/install/webform.webform.contact.yml +++ b/web/modules/webform/config/install/webform.webform.contact.yml @@ -40,7 +40,7 @@ elements: | '#type': webform_actions '#title': 'Submit button(s)' '#submit__label': 'Send message' - + css: '' javascript: '' settings: @@ -82,6 +82,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/config/install/webform.webform_options.likert_agreement.yml b/web/modules/webform/config/install/webform.webform_options.likert_agreement.yml index 5e7399d141..794429f0cb 100644 --- a/web/modules/webform/config/install/webform.webform_options.likert_agreement.yml +++ b/web/modules/webform/config/install/webform.webform_options.likert_agreement.yml @@ -9,8 +9,8 @@ label: 'Likert: Agreement' category: Likert likert: true options: | - 1: 'Much Worse' - 2: 'Somewhat Worse' - 3: 'About the Same' - 4: 'Somewhat Better' - 5: 'Much Better' + 1: Strongly Disagree + 2: Disagree + 3: Neutral + 4: Agree + 5: Strongly Agree diff --git a/web/modules/webform/config/install/webform.webform_options.likert_comparison.yml b/web/modules/webform/config/install/webform.webform_options.likert_comparison.yml index c0959b0495..89f6af25d9 100644 --- a/web/modules/webform/config/install/webform.webform_options.likert_comparison.yml +++ b/web/modules/webform/config/install/webform.webform_options.likert_comparison.yml @@ -9,8 +9,8 @@ label: 'Likert: Comparison' category: Likert likert: true options: | - 1: Strongly Disagree - 2: Disagree - 3: Neutral - 4: Agree - 5: Strongly Agree + 1: Much Worse + 2: Somewhat Worse + 3: About the Same + 4: Somewhat Better + 5: Much Better diff --git a/web/modules/webform/config/install/webform.webform_options.sex_icao.yml b/web/modules/webform/config/install/webform.webform_options.sex_icao.yml index 5650c06fb4..9b307495d1 100644 --- a/web/modules/webform/config/install/webform.webform_options.sex_icao.yml +++ b/web/modules/webform/config/install/webform.webform_options.sex_icao.yml @@ -5,7 +5,7 @@ dependencies: module: - webform id: sex_icao -label: Sex - International Civil Aviation Organization (ICAO) +label: 'Sex - International Civil Aviation Organization (ICAO)' category: Demographic likert: false options: | diff --git a/web/modules/webform/config/schema/webform.action.schema.yml b/web/modules/webform/config/schema/webform.action.schema.yml index 4ebbd15057..51e1c8905e 100644 --- a/web/modules/webform/config/schema/webform.action.schema.yml +++ b/web/modules/webform/config/schema/webform.action.schema.yml @@ -1,3 +1,19 @@ +action.configuration.webform_delete_action: + type: action_configuration_default + label: 'Delete webform configuration' +action.configuration.webform_open_action: + type: action_configuration_default + label: 'Open webform configuration' +action.configuration.webform_close_action: + type: action_configuration_default + label: 'Close webform configuration' +action.configuration.webform_archive_action: + type: action_configuration_default + label: 'Archive webform configuration' +action.configuration.webform_unarchive_action: + type: action_configuration_default + label: 'Unarchive webform configuration' + action.configuration.webform_submission_delete_action: type: action_configuration_default label: 'Delete submission configuration' diff --git a/web/modules/webform/config/schema/webform.entity.webform.schema.yml b/web/modules/webform/config/schema/webform.entity.webform.schema.yml index 0b278b5447..9224ac0b2f 100644 --- a/web/modules/webform/config/schema/webform.entity.webform.schema.yml +++ b/web/modules/webform/config/schema/webform.entity.webform.schema.yml @@ -171,6 +171,15 @@ form_elements_attributes: type: ignore label: 'Form elements attributes' + form_attributes: + type: ignore + label: 'Form attributes' + form_method: + type: string + label: 'Form method' + form_action: + type: string + label: 'Form action' share: type: boolean label: 'Enable form sharing' diff --git a/web/modules/webform/config/schema/webform.plugin.handler.schema.yml b/web/modules/webform/config/schema/webform.plugin.handler.schema.yml index 2802f735b8..2943b98607 100644 --- a/web/modules/webform/config/schema/webform.plugin.handler.schema.yml +++ b/web/modules/webform/config/schema/webform.plugin.handler.schema.yml @@ -159,6 +159,9 @@ webform.handler.remote_post: custom_options: label: 'Custom options' type: string + file_data: + type: boolean + label: 'Include files as Base64 encoded post data' cast: type: boolean label: 'Cast remote post data' diff --git a/web/modules/webform/config/schema/webform.settings.schema.yml b/web/modules/webform/config/schema/webform.settings.schema.yml index 92ca80d006..459897f1f5 100644 --- a/web/modules/webform/config/schema/webform.settings.schema.yml +++ b/web/modules/webform/config/schema/webform.settings.schema.yml @@ -265,6 +265,24 @@ webform.settings: default_share_theme_name: type: string label: 'Default shared form theme' + webform_bulk_form: + type: boolean + label: 'Enable webform operations bulk form' + webform_bulk_form_actions: + type: sequence + label: 'Webform operations bulk form actions' + sequence: + type: string + label: Action + webform_submission_bulk_form: + type: boolean + label: 'Enable submission operations bulk form' + webform_submission_bulk_form_actions: + type: sequence + label: 'Webform submission operations bulk form actions' + sequence: + type: string + label: Action dialog: type: boolean label: 'Enable webform dialog support' @@ -301,6 +319,9 @@ webform.settings: type: mapping label: 'Form default settings' mapping: + limit: + type: integer + label: 'Webforms per page' filter_category: type: label label: 'Filter category' diff --git a/web/modules/webform/css/webform.admin.css b/web/modules/webform/css/webform.admin.css index be4c63fba2..4893cd25d8 100644 --- a/web/modules/webform/css/webform.admin.css +++ b/web/modules/webform/css/webform.admin.css @@ -11,9 +11,15 @@ } /** - * Submission. + * Bulk form. */ +.webform-bulk-form .form-item { + margin-right: 5px; +} +/** + * Submission. + */ .webform-submission-information .button { font-size: 1em; } @@ -22,15 +28,20 @@ * Webform setting button displays a table rows icon. * @see /admin/structure/webform/manage/contact/results/submissions */ -.button.button-webform-table-setting { +a.button.button-webform-table-setting { + float: right; margin: 0 0 1em 0; } -.button.button-webform-table-setting:before { +a.button.button-webform-table-setting:before { content: "☷"; font-size: 1.2em; } +[dir="rtl"] a.button.button-webform-table-setting { + float: left; +} + /** * Results table. * @see /admin/structure/webform/submissions/manage diff --git a/web/modules/webform/css/webform.element.message.css b/web/modules/webform/css/webform.element.message.css index 05205dd31d..40142867ed 100644 --- a/web/modules/webform/css/webform.element.message.css +++ b/web/modules/webform/css/webform.element.message.css @@ -5,24 +5,6 @@ * @see /webform/test_element_message */ -/** - * Add styles to default (info) message, - */ -.messages.messages--info { - color: #31708f; - border-color: #0074bd #0074bd #0074bd transparent; /* LTR */ - background-color: #d9edf7; - background-image: url(../images/icons/info.svg); - background-repeat: no-repeat; - background-position: 10px 17px; - box-shadow: -8px 0 0 #0074bd; /* LTR */ -} -[dir="rtl"] .messages.messages--info { - margin-left: 0; - border-color: #0074bd transparent #0074bd #0074bd; - box-shadow: 8px 0 0 #0074bd; -} - /** * Webform message close container. */ @@ -78,3 +60,10 @@ html[dir="rtl"].js .webform-message--close .webform-message__link { html.js .js-webform-message--close-storage { display: none; } + +/** + * Hide Gin themes dismiss button even when it appears on the node edit form. + */ +.js-webform-message--close .button--dismiss { + display: none; +} diff --git a/web/modules/webform/css/webform.element.message.info.css b/web/modules/webform/css/webform.element.message.info.css new file mode 100644 index 0000000000..e50cf69e89 --- /dev/null +++ b/web/modules/webform/css/webform.element.message.info.css @@ -0,0 +1,21 @@ +/** + * @file + * Message element info styles. + * + * @see /webform/test_element_message + */ + +.messages.messages--info { + color: #31708f; + border-color: #0074bd #0074bd #0074bd transparent; /* LTR */ + background-color: #d9edf7; + background-image: url(../images/icons/info.svg); + background-repeat: no-repeat; + background-position: 10px 17px; + box-shadow: -8px 0 0 #0074bd; /* LTR */ +} +[dir="rtl"] .messages.messages--info { + margin-left: 0; + border-color: #0074bd transparent #0074bd #0074bd; + box-shadow: 8px 0 0 #0074bd; +} diff --git a/web/modules/webform/css/webform.element.options.css b/web/modules/webform/css/webform.element.options.css index 1b610a43e7..fd73bce6cb 100644 --- a/web/modules/webform/css/webform.element.options.css +++ b/web/modules/webform/css/webform.element.options.css @@ -40,6 +40,7 @@ */ .webform-options-display-buttons, .form-composite.webform-fieldset--title-inline .fieldset-wrapper > div.webform-options-display-buttons { + position: relative; display: flex; flex-wrap: wrap; margin: 0 -5px; diff --git a/web/modules/webform/css/webform.theme.claro.css b/web/modules/webform/css/webform.theme.claro.css index 1bc4afcc68..23ecd8a9db 100644 --- a/web/modules/webform/css/webform.theme.claro.css +++ b/web/modules/webform/css/webform.theme.claro.css @@ -148,12 +148,6 @@ table td > .button:only-child { margin-top: 0; margin-bottom: 0; } -/** - * Results table. - */ -th.webform-results-table__icon.sortable-heading { - padding: 0 1rem; -} /** * Table select element. diff --git a/web/modules/webform/css/webform.theme.gin.css b/web/modules/webform/css/webform.theme.gin.css new file mode 100644 index 0000000000..6d1b2df63c --- /dev/null +++ b/web/modules/webform/css/webform.theme.gin.css @@ -0,0 +1,34 @@ +/** + * @file + * Gin theme styles. + */ + +/** + * Help Block. + */ +div.block-help-block { + max-width: none; +} + +/** + * Fix webform promotion message link color. + * + * @see /admin/structure/webform + * @see webform.promotions.css + * @see claro/css/src/components/messages.css + */ +.webform-message .messages.messages--webform { + color: #fff; + background-color: #353641; + box-shadow: none; + border-radius: 12px; + border: 2px solid transparent; +} + +.webform-message .messages.messages--webform { + padding-left: 0; +} + +.webform-message .messages.messages--webform .messages__content { + margin-left: 3.5rem; +} diff --git a/web/modules/webform/css/webform.theme.seven.css b/web/modules/webform/css/webform.theme.seven.css index 21fc7afef1..14c8306ffc 100644 --- a/web/modules/webform/css/webform.theme.seven.css +++ b/web/modules/webform/css/webform.theme.seven.css @@ -84,7 +84,7 @@ pre.webform-codemirror-runmode { /** * Form action are moved to a dialogs footer and don't need to be visually * hidden. - + * * @see Drupal.behaviors.dialog.prepareDialogButtons */ .webform-ui-dialog .form-actions input[type=submit], @@ -92,6 +92,15 @@ pre.webform-codemirror-runmode { display: none !important; } +/** + * Primary button font color is not white. + * + * @see https://www.drupal.org/project/webform/issues/3228968 + */ +.webform-ui-dialog a.button--primary { + color: #fff; +} + /* System tray divider */ .ui-dialog.ui-dialog-off-canvas.webform-off-canvas { diff --git a/web/modules/webform/drush/webform.drush.inc b/web/modules/webform/drush/webform.drush.inc index 57dba355a0..fc9c75e57a 100644 --- a/web/modules/webform/drush/webform.drush.inc +++ b/web/modules/webform/drush/webform.drush.inc @@ -44,6 +44,7 @@ function webform_drush_command() { 'range-latest' => 'Integer specifying the latest X submissions will be downloaded. Used if "range-type" is "latest" or no other range options are provided.', 'range-start' => 'The submission ID or start date at which to start exporting.', 'range-end' => 'The submission ID or end date at which to end exporting.', + 'uid' => 'The ID of the user who submitted the form.', 'order' => 'The submission order "asc" (default) or "desc".', 'state' => 'Submission state to be included: "completed", "draft" or "all" (default).', 'sticky' => 'Flagged/starred submission status.', diff --git a/web/modules/webform/includes/webform.install.update.inc b/web/modules/webform/includes/webform.install.update.inc index a9b831dcd9..357f4921eb 100644 --- a/web/modules/webform/includes/webform.install.update.inc +++ b/web/modules/webform/includes/webform.install.update.inc @@ -10,7 +10,6 @@ use Drupal\Core\Cache\Cache; use Drupal\Core\Field\BaseFieldDefinition; use Drupal\Core\Database\Database; -use Drupal\Core\Serialization\Yaml; use Drupal\Core\Render\Element; use Drupal\Core\Url; use Drupal\views\Entity\View; @@ -233,10 +232,10 @@ function webform_update_8011() { continue; } - $elements = Yaml::decode($data['elements']); + $elements = WebformYaml::decode($data['elements']); _webform_update_8011($elements); - $data['elements'] = Yaml::encode($elements); + $data['elements'] = WebformYaml::encode($elements); $webform_config->setData($data); $webform_config->save(); } @@ -303,13 +302,13 @@ function webform_update_8014() { // Get data, get elements, and update elements #type. $data = $webform_config->getRawData(); - $elements = Yaml::decode($data['elements']); + $elements = WebformYaml::decode($data['elements']); // Make sure $elements has been decoded into an array. if (is_array($elements)) { _webform_update_8014($elements); // Set elements, set data, and save data. - $data['elements'] = Yaml::encode($elements); + $data['elements'] = WebformYaml::encode($elements); $webform_config->setData($data); $webform_config->save(); } @@ -423,7 +422,7 @@ function webform_update_8021() { if (!$webform_option->get('category')) { if (file_exists("$config_install_path/webform.webform_options.$id.yml")) { $yaml = file_get_contents("$config_install_path/webform.webform_options.$id.yml"); - $data = Yaml::decode($yaml); + $data = WebformYaml::decode($yaml); $webform_option->set('category', $data['category']); $webform_option->save(); } @@ -1058,12 +1057,12 @@ function _webform_update_8046_convert_data(array $data) { // Append actions element to elements. if ($actions_element) { - $elements = Yaml::decode($data['elements']); + $elements = WebformYaml::decode($data['elements']); $elements['actions'] = [ '#type' => 'webform_actions', '#title' => (string) t('Submit button(s)'), ] + $actions_element; - $data['elements'] = Yaml::encode($elements); + $data['elements'] = WebformYaml::encode($elements); } return $data; @@ -1955,13 +1954,13 @@ function webform_update_8103() { $test_date_values = ['1942-06-18', '1940-07-07', '1943-02-25', '1940-10-09']; $config = \Drupal::configFactory()->getEditable('webform.settings'); $data = $config->getRawData(); - $types = Yaml::decode($data['test']['types']); + $types = WebformYaml::decode($data['test']['types']); foreach ($test_date_elements as $test_date_element) { if (isset($types[$test_date_element]) && $types[$test_date_element] === $test_date_values) { unset($types[$test_date_element]); } } - $data['test']['types'] = Yaml::encode($types); + $data['test']['types'] = WebformYaml::encode($types); $config->setData($data); $config->save(); } @@ -2172,7 +2171,7 @@ function webform_update_8116() { */ function webform_update_8117() { $config = \Drupal::configFactory()->getEditable('webform.settings'); - $names = Yaml::decode($config->get('test.names')); + $names = WebformYaml::decode($config->get('test.names')); $names += [ 'postal_code' => ['11111', '12345', '12345-6789'], ]; @@ -2264,9 +2263,9 @@ function webform_update_8124() { $webform_config = $config_factory->getEditable($webform_config_name); $data = $webform_config->getRawData(); if (strpos($data['elements'], "'#type': hidden") !== FALSE) { - $elements = Yaml::decode($data['elements']); + $elements = WebformYaml::decode($data['elements']); _webform_update_8124($elements); - $data['elements'] = Yaml::encode($elements); + $data['elements'] = WebformYaml::encode($elements); $webform_config->setData($data); $webform_config->save(); @@ -2424,7 +2423,7 @@ function webform_update_8133() { foreach ($config_factory->listAll('webform.webform.') as $webform_config_name) { $webform_config = $config_factory->getEditable($webform_config_name); $data = $webform_config->getRawData(); - $yaml = Yaml::encode($data); + $yaml = WebformYaml::encode($data); if (strpos($yaml, 'webform_toggle')) { return; } @@ -2468,10 +2467,10 @@ function webform_update_8136() { continue; } - $elements = Yaml::decode($data['elements']); + $elements = WebformYaml::decode($data['elements']); _webform_update_8136($elements); - $data['elements'] = Yaml::encode($elements); + $data['elements'] = WebformYaml::encode($elements); $webform_config->setData($data); $webform_config->save(); } @@ -2602,7 +2601,7 @@ function webform_update_8141() { $message = NULL; if (\Drupal::moduleHandler()->moduleExists('views') && !View::load('webform_submissions')) { $config_path = drupal_get_path('module', 'webform') . '/config/optional/views.view.webform_submissions.yml'; - $data = ['uuid' => (new Uuid())->generate()] + Yaml::decode(file_get_contents($config_path)); + $data = ['uuid' => (new Uuid())->generate()] + WebformYaml::decode(file_get_contents($config_path)); \Drupal::configFactory()->getEditable('views.view.webform_submissions')->setData($data)->save(TRUE); $message = 'The new webform submissions view has been created.'; } @@ -2788,7 +2787,7 @@ function webform_update_8151() { // Try to decode elements. try { - $elements = Yaml::decode($elements); + $elements = WebformYaml::decode($elements); } catch (\Exception $exception) { continue; @@ -2813,7 +2812,7 @@ function webform_update_8151() { } } if ($has_computed_element) { - $webform_config->set('elements', Yaml::encode($elements)); + $webform_config->set('elements', WebformYaml::encode($elements)); $webform_config->save(TRUE); } } @@ -2886,7 +2885,7 @@ function webform_update_8155() { // Try to decode elements. try { - $elements = Yaml::decode($elements); + $elements = WebformYaml::decode($elements); } catch (\Exception $exception) { continue; @@ -2915,7 +2914,7 @@ function webform_update_8155() { } } if ($has_date_element) { - $webform_config->set('elements', Yaml::encode($elements)); + $webform_config->set('elements', WebformYaml::encode($elements)); $webform_config->save(TRUE); } } @@ -3055,7 +3054,7 @@ function webform_update_8160() { $elements = WebformYaml::decode($config->get('elements')); if (isset($elements['calculation']) && isset($elements['calculation']['calculation'])) { $path = drupal_get_path('module', 'webform') . '/modules/webform_examples/config/install/webform.webform.example_computed_elements.yml'; - $data = Yaml::decode(file_get_contents($path)); + $data = WebformYaml::decode(file_get_contents($path)); $config->set('elements', $data['elements'])->save(); } } @@ -3318,7 +3317,7 @@ function webform_update_8179() { // Try to decode elements. try { - $elements = Yaml::decode($elements); + $elements = WebformYaml::decode($elements); } catch (\Exception $exception) { continue; @@ -3344,7 +3343,7 @@ function webform_update_8179() { } } if ($has_actions_element) { - $webform_config->set('elements', Yaml::encode($elements)); + $webform_config->set('elements', WebformYaml::encode($elements)); $webform_config->save(TRUE); } } @@ -3465,7 +3464,7 @@ function webform_update_8186() { // Try to decode elements. try { - $elements = Yaml::decode($elements); + $elements = WebformYaml::decode($elements); } catch (\Exception $exception) { continue; @@ -3502,7 +3501,7 @@ function webform_update_8186() { } if ($has_numeric_element_property) { - $webform_config->set('elements', Yaml::encode($elements)); + $webform_config->set('elements', WebformYaml::encode($elements)); $webform_config->save(TRUE); } } @@ -3915,6 +3914,28 @@ function webform_update_8210() { _webform_update_webform_settings(); } +/** + * Issue #000000: Add support options to help and add-ons. + */ +function webform_update_8212() { + _webform_update_admin_settings(); +} + +/** + * Issue #3220703: Add support for bulk operations on webform entities. + */ +function webform_update_8213() { + _webform_update_actions(); + _webform_update_admin_settings(); +} + +/** + * Issue #3216928: Allow Base64 encoded file data to be excluded from remote posts. + */ +function webform_update_8214() { + _webform_update_webform_handler_settings(); +} + /******************************************************************************/ // Webform 6.x. /******************************************************************************/ @@ -3935,14 +3956,14 @@ function webform_update_8601() { $config_factory = \Drupal::configFactory(); foreach ($config_factory->listAll('webform.webform.') as $webform_config_name) { $webform_config = $config_factory->getEditable($webform_config_name); - $yaml = Yaml::encode($webform_config->getRawData()); + $yaml = WebformYaml::encode($webform_config->getRawData()); if (strpos($yaml, '[webform_submission:view-url') !== FALSE || strpos($yaml, '[webform_submission:update-url') !== FALSE || strpos($yaml, '[webform_submission:delete-url') !== FALSE) { $yaml = str_replace('[webform_submission:view-url', '[webform_submission:token-view-url', $yaml); $yaml = str_replace('[webform_submission:update-url', '[webform_submission:token-update-url', $yaml); $yaml = str_replace('[webform_submission:delete-url', '[webform_submission:token-delete-url', $yaml); - $webform_config->setData(Yaml::decode($yaml)); + $webform_config->setData(WebformYaml::decode($yaml)); $webform_config->save(); } } @@ -4219,8 +4240,57 @@ function webform_update_8622() { } /** - * Issue #000000: Add support options to help and add-ons. + * Issue #3220703: Add support for bulk operations on webform entities. */ -function webform_update_8212() { +function webform_update_8623() { + _webform_update_actions(); _webform_update_admin_settings(); } + +/** + * Issue #3216928: Allow Base64 encoded file data to be excluded from remote posts. + */ +function webform_update_8624() { + _webform_update_webform_handler_settings(); +} + +/** + * Issue #3240393: Allow the number of webform per page to configurable. + */ +function webform_update_8625() { + _webform_update_actions(); +} + +/** + * Issue #3240399: Move form #method, #action, and #attributes from properties to settings + */ +function webform_update_8626() { + // Add new method, action, and attributes settings to all webforms. + _webform_update_webform_settings(); + + // Move properties to settings. + $properties = [ + '#method' => 'form_method', + '#action' => 'form_action', + '#attributes' => 'form_attributes', + ]; + $config_factory = \Drupal::configFactory(); + foreach ($config_factory->listAll('webform.webform.') as $webform_config_name) { + $webform_config = $config_factory->getEditable($webform_config_name); + $data = $webform_config->getRawData(); + $elements = WebformYaml::decode($data['elements']); + $has_property = FALSE; + foreach ($properties as $property_name => $setting_name) { + if (isset($elements[$property_name])) { + $data['settings'][$setting_name] = $elements[$property_name]; + unset($elements[$property_name]); + $has_property = TRUE; + } + } + if ($has_property) { + $data['elements'] = WebformYaml::encode($elements); + $webform_config->setData($data); + $webform_config->save(); + } + } +} diff --git a/web/modules/webform/includes/webform.libraries.inc b/web/modules/webform/includes/webform.libraries.inc index 3e7b56a544..506cbe94b2 100644 --- a/web/modules/webform/includes/webform.libraries.inc +++ b/web/modules/webform/includes/webform.libraries.inc @@ -77,7 +77,7 @@ function webform_library_info_alter(&$libraries, $extension) { // If chosen_lib.module is installed, then update the dependency. if (\Drupal::moduleHandler()->moduleExists('chosen_lib')) { if (isset($libraries['webform.element.chosen'])) { - $dependencies =& $libraries['webform.element.chosen']['dependencies']; + $dependencies = &$libraries['webform.element.chosen']['dependencies']; foreach ($dependencies as $index => $dependency) { if ($dependency === 'webform/libraries.jquery.chosen') { $dependencies[$index] = 'chosen_lib/chosen'; @@ -91,7 +91,7 @@ function webform_library_info_alter(&$libraries, $extension) { // If select2.module is installed, then update the dependency. if (\Drupal::moduleHandler()->moduleExists('select2')) { if (isset($libraries['webform.element.select2'])) { - $dependencies =& $libraries['webform.element.select2']['dependencies']; + $dependencies = &$libraries['webform.element.select2']['dependencies']; foreach ($dependencies as $index => $dependency) { if ($dependency === 'webform/libraries.jquery.select2') { $dependencies[$index] = 'select2/select2'; diff --git a/web/modules/webform/includes/webform.theme.inc b/web/modules/webform/includes/webform.theme.inc index 410ae7a917..1428a0db2b 100644 --- a/web/modules/webform/includes/webform.theme.inc +++ b/web/modules/webform/includes/webform.theme.inc @@ -307,7 +307,7 @@ function webform_preprocess_select(&$variables) { // @see \Drupal\webform\Element\WebformOtherBase::processWebformOther // @see template_preprocess_select(). if (!empty($element['#sort_options']) && !empty($element['#webform_other'])) { - $options =& $variables['options']; + $options = &$variables['options']; foreach ($options as $index => $option) { if ($option['value'] === WebformSelectOther::OTHER_OPTION) { unset($options[$index]); @@ -484,12 +484,13 @@ function webform_preprocess_fieldset(&$variables) { $variables['attributes']['class'][] = 'webform-type-' . Html::getClass($element['#type']); } - // Remove invalid 'required' and 'aria-required' attributes from fieldset. + // Remove invalid 'required' attributes from fieldset. + // + // Issue #3174459: W3C Validation: required attribute not allowed on + // fieldset tag. + // @see https://www.drupal.org/project/drupal/issues/3174459 if (isset($element['#webform_key'])) { - unset( - $variables['attributes']['required'], - $variables['attributes']['aria-required'] - ); + unset($variables['attributes']['required']); } } @@ -562,7 +563,7 @@ function webform_preprocess_form_element_label(&$variables) { $element = &$variables['element']; // Fix variable title #markup tha contains a render array which is most - // likely a help tooltip. + // likely a Help tooltip. // @see template_preprocess_form_element_label() // @see webform_preprocess_form_element() if (isset($variables['title']) @@ -659,7 +660,7 @@ function webform_preprocess_file_upload_help(&$variables) { if ($description instanceof TranslatableMarkup && $description->getUntranslatedString() === 'Allowed types: @extensions.') { $arguments = $description->getArguments(); - if (strpos($arguments['@extensions'], ',') === FALSE) { + if (is_string($arguments['@extensions']) && strpos($arguments['@extensions'], ',') === FALSE) { $arguments['@extensions'] = preg_replace('/ +/', ', ', $arguments['@extensions']); $variables['descriptions'][$index] = new TranslatableMarkup($description->getUntranslatedString(), $arguments); } @@ -712,7 +713,7 @@ function webform_preprocess_image(&$variables) { * reset the element's 'attributes'; */ function _webform_preprocess_options(array &$variables) { - $element =& $variables['element']; + $element = &$variables['element']; $variables['attributes']['class'][] = Html::getClass('js-webform-' . $element['#type']); @@ -738,7 +739,7 @@ function _webform_preprocess_options(array &$variables) { * @see /webform/templates/webform-section.html.twig */ function _webform_preprocess_element(array &$variables, $title_parents = ['title']) { - $element =& $variables['element']; + $element = &$variables['element']; $type = (isset($element['#type'])) ? $element['#type'] : ''; // Fix details 'description' property which does not have description.content. @@ -847,7 +848,7 @@ function _webform_preprocess_description_help(array &$variables) { * Append #help to title or element variable. */ function _webform_preprocess_help(array &$variables, $title_parents = ['title']) { - $element =& $variables['element']; + $element = &$variables['element']; $type = (isset($element['#type'])) ? $element['#type'] : ''; if (empty($element['#help'])) { @@ -878,7 +879,7 @@ function _webform_preprocess_help(array &$variables, $title_parents = ['title']) } else { $variables += [$target => []]; - $target_element =& $variables[$target]; + $target_element = &$variables[$target]; } // Default #help_title to element's #title. diff --git a/web/modules/webform/includes/webform.theme.template.inc b/web/modules/webform/includes/webform.theme.template.inc index 4c38f82517..029a2894ee 100644 --- a/web/modules/webform/includes/webform.theme.template.inc +++ b/web/modules/webform/includes/webform.theme.template.inc @@ -876,6 +876,7 @@ function template_preprocess_webform_element_help(array &$variables) { $attributes['class'][] = 'js-webform-element-help'; $attributes['role'] = 'tooltip'; $attributes['tabindex'] = '0'; + $attributes['aria-label'] = $variables['help_title'] ?: t('Help tooltip'); $content = (is_array($variables['help'])) ? \Drupal::service('renderer')->render($variables['help']) : $variables['help']; diff --git a/web/modules/webform/includes/webform.translation.inc b/web/modules/webform/includes/webform.translation.inc index 40c1ad22c3..0f751dd996 100644 --- a/web/modules/webform/includes/webform.translation.inc +++ b/web/modules/webform/includes/webform.translation.inc @@ -33,7 +33,7 @@ function webform_form_language_content_settings_form_alter(array &$form, FormSta function webform_form_locale_translate_edit_form_alter(&$form, FormStateInterface $form_state) { // Don't allow YAML to be validated using locale string translation. foreach (Element::children($form['strings']) as $key) { - $element =& $form['strings'][$key]; + $element = &$form['strings'][$key]; if ($element['original'] && !empty($element['original']['#plain_text']) && preg_match("/'#[^']+':/", $element['original']['#plain_text']) diff --git a/web/modules/webform/js/webform.admin.js b/web/modules/webform/js/webform.admin.js index 343a1649f2..69b5be8a41 100644 --- a/web/modules/webform/js/webform.admin.js +++ b/web/modules/webform/js/webform.admin.js @@ -43,7 +43,7 @@ // Only attach the click event handler to the entire table and determine // which row triggers the event. $('.webform-results-table', context).once('webform-results-table').on('click', function (event) { - if (event.target.tagName === 'A' || event.target.tagName === 'BUTTON') { + if (event.target.tagName === 'A' || event.target.tagName === 'BUTTON' || event.target.tagName === 'INPUT') { return true; } @@ -51,6 +51,14 @@ return true; } + var $input = $(event.target).closest('td').find('input'); + if ($input.length) { + if ($input.attr('type') === 'checkbox') { + $input.click(); + } + return true; + } + var $tr = $(event.target).parents('tr[data-webform-href]'); if (!$tr.length) { return true; diff --git a/web/modules/webform/js/webform.jquery.ui.dialog.js b/web/modules/webform/js/webform.drupal.dialog.js similarity index 78% rename from web/modules/webform/js/webform.jquery.ui.dialog.js rename to web/modules/webform/js/webform.drupal.dialog.js index 993d8d27e0..8fc104d6f9 100644 --- a/web/modules/webform/js/webform.jquery.ui.dialog.js +++ b/web/modules/webform/js/webform.drupal.dialog.js @@ -12,13 +12,15 @@ * * @see http://stackoverflow.com/questions/20533487/how-to-ensure-that-ckeditor-has-focus-when-displayed-inside-of-jquery-ui-dialog */ - var _allowInteraction = $.ui.dialog.prototype._allowInteraction; - $.ui.dialog.prototype._allowInteraction = function (event) { - if ($(event.target).closest('.cke_dialog').length) { - return true; - } - return _allowInteraction.apply(this, arguments); - }; + if ($.ui && $.ui.dialog && $.ui.dialog.prototype._allowInteraction) { + var _allowInteraction = $.ui.dialog.prototype._allowInteraction; + $.ui.dialog.prototype._allowInteraction = function (event) { + if ($(event.target).closest('.cke_dialog').length) { + return true; + } + return _allowInteraction.apply(this, arguments); + }; + } /** * Attaches webform dialog behaviors. diff --git a/web/modules/webform/js/webform.element.help.js b/web/modules/webform/js/webform.element.help.js index 0e56e52a43..59db8786e3 100644 --- a/web/modules/webform/js/webform.element.help.js +++ b/web/modules/webform/js/webform.element.help.js @@ -24,6 +24,29 @@ return; } + // Hide on escape. + // @see https://atomiks.github.io/tippyjs/v6/plugins/#hideonesc + var hideOnEsc = { + name: 'hideOnEsc', + defaultValue: true, + fn({hide}) { + function onKeyDown(event) { + if (event.keyCode === 27) { + hide(); + } + } + + return { + onShow() { + document.addEventListener('keydown', onKeyDown); + }, + onHide() { + document.removeEventListener('keydown', onKeyDown); + }, + }; + }, + }; + $(context).find('.js-webform-element-help').once('webform-element-help').each(function () { var $link = $(this); @@ -36,7 +59,8 @@ content: $link.attr('data-webform-help'), delay: 100, allowHTML: true, - interactive: true + interactive: true, + plugins: [hideOnEsc] }, Drupal.webform.elementHelpIcon.options); tippy(this, options); diff --git a/web/modules/webform/js/webform.wizard.track.js b/web/modules/webform/js/webform.wizard.track.js index f7c7e0352c..d08ef59d62 100644 --- a/web/modules/webform/js/webform.wizard.track.js +++ b/web/modules/webform/js/webform.wizard.track.js @@ -21,7 +21,9 @@ // parameter is correct since conditional logic can skip pages. // Note: window.history is only supported by IE 10+. if (window.history && window.history.replaceState) { - var $form = $(context).find('[data-webform-wizard-current-page]'); + var $form = $(context).hasData('webform-wizard-current-page') + ? $(context) + : $(context).find('[data-webform-wizard-current-page]'); // Make sure the form is visible before updating the URL. if ($form.length && $form.is(':visible')) { // Append the form's current page data attribute to the browser's URL. 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 db78ff1c24..842fe84e5d 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_access.yml b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_access.yml index c51dd6ec2d..926f5903fe 100644 --- a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_access.yml +++ b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_access.yml @@ -89,6 +89,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_email.yml b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_email.yml index 56608b129d..2b7d857c55 100644 --- a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_email.yml +++ b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_email.yml @@ -110,6 +110,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_sanitize.yml b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_sanitize.yml index cbf2a907c3..d09e41acc4 100644 --- a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_sanitize.yml +++ b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_sanitize.yml @@ -69,6 +69,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_states.yml b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_states.yml index c3e6524bfd..86e1c00c6d 100644 --- a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_states.yml +++ b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_states.yml @@ -70,6 +70,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_token.yml b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_token.yml index 2bd953adb2..bb3748dc96 100644 --- a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_token.yml +++ b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_token.yml @@ -77,6 +77,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_twig.yml b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_twig.yml index 57081d7253..07f272adc4 100644 --- a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_twig.yml +++ b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_twig.yml @@ -79,6 +79,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_url.yml b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_url.yml index e2e1422c28..12774a362b 100644 --- a/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_url.yml +++ b/web/modules/webform/modules/webform_attachment/tests/modules/webform_attachment_test/config/install/webform.webform.test_attachment_url.yml @@ -80,6 +80,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 8df158a8d4..b5e342cf39 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 eda9e2c2d1..9bfd9ddb5a 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 3c72ea1215..541704bc30 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 5caf152c3f..e347869d8e 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 5b99bb1d8e..5556642da9 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_cards/src/WebformCardsManager.php b/web/modules/webform/modules/webform_cards/src/WebformCardsManager.php index ddbe2ece51..4f47ef9c83 100644 --- a/web/modules/webform/modules/webform_cards/src/WebformCardsManager.php +++ b/web/modules/webform/modules/webform_cards/src/WebformCardsManager.php @@ -44,16 +44,24 @@ public function __construct(WebformElementManagerInterface $element_manager, Web * {@inheritdoc} */ public function hasCards(WebformInterface $webform) { + return ($this->getNumberOfCards($webform) > 0) ? TRUE : FALSE; + } + + /** + * {@inheritdoc} + */ + public function getNumberOfCards(WebformInterface $webform) { $elements = $webform->getElementsDecoded(); + $count = 0; foreach ($elements as $element) { if (is_array($element)) { $element_plugin = $this->elementManager->getElementInstance($element); if ($element_plugin instanceof WebformCard) { - return TRUE; + $count++; } } } - return FALSE; + return $count; } /** diff --git a/web/modules/webform/modules/webform_cards/src/WebformCardsManagerInterface.php b/web/modules/webform/modules/webform_cards/src/WebformCardsManagerInterface.php index 7020b027eb..cc6135c22c 100644 --- a/web/modules/webform/modules/webform_cards/src/WebformCardsManagerInterface.php +++ b/web/modules/webform/modules/webform_cards/src/WebformCardsManagerInterface.php @@ -21,6 +21,17 @@ interface WebformCardsManagerInterface { */ public function hasCards(WebformInterface $webform); + /** + * Counts the number of cards used in a webform. + * + * @param \Drupal\webform\WebformInterface $webform + * A webform. + * + * @return int + * The number of cards for the webform. + */ + public function getNumberOfCards(WebformInterface $webform); + /** * Build webform's cards based on the current operation. * diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_access.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_access.yml index 4dc9a4608a..09acea283f 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_access.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_access.yml @@ -99,6 +99,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_ajax.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_ajax.yml index 7a7c670fe2..3859aea19c 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_ajax.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_ajax.yml @@ -72,6 +72,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_auto_forward.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_auto_forward.yml index b73b497583..aff089489c 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_auto_forward.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_auto_forward.yml @@ -134,6 +134,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_auto_forward_hide.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_auto_forward_hide.yml index d99701e094..6f9799875e 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_auto_forward_hide.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_auto_forward_hide.yml @@ -67,7 +67,7 @@ elements: | kitten_3: text: 'Cute Kitten 3' src: 'http://placekitten.com/130/200' - + css: '' javascript: '' settings: @@ -109,6 +109,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_draft.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_draft.yml index e57296b211..ff66012a27 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_draft.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_draft.yml @@ -72,6 +72,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_javascript.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_javascript.yml index 1ab5541c97..463ca8b12f 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_javascript.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_javascript.yml @@ -95,6 +95,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_long_100.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_long_100.yml index 290f974e15..733fc73259 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_long_100.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_long_100.yml @@ -658,6 +658,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_progress.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_progress.yml index b273ca01f4..e80f94484a 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_progress.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_progress.yml @@ -72,6 +72,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_progress_custom.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_progress_custom.yml index 73cf2f1077..3f804231c2 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_progress_custom.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_progress_custom.yml @@ -161,6 +161,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_progress_links.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_progress_links.yml index c53f36a725..dc99de7f11 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_progress_links.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_progress_links.yml @@ -72,6 +72,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_states.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_states.yml index 94fc93ade1..fa6393601b 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_states.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_states.yml @@ -161,6 +161,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_titles.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_titles.yml index bf5830ab1b..606fe69238 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_titles.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_titles.yml @@ -75,6 +75,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_toggle.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_toggle.yml index 5444ee3d1f..f9187c7565 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_toggle.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_toggle.yml @@ -72,6 +72,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_validation_errors.yml b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_validation_errors.yml index 93be92058f..244ba7a660 100644 --- a/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_validation_errors.yml +++ b/web/modules/webform/modules/webform_cards/tests/modules/webform_cards_test/config/install/webform.webform.test_cards_validation_errors.yml @@ -80,6 +80,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 c04500b178..89286d80ad 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 3812074fdc..210351e8a4 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_cards/webform_cards.module b/web/modules/webform/modules/webform_cards/webform_cards.module index d6fe0e50b4..e888089387 100644 --- a/web/modules/webform/modules/webform_cards/webform_cards.module +++ b/web/modules/webform/modules/webform_cards/webform_cards.module @@ -90,6 +90,7 @@ function webform_cards_webform_submission_form_alter(array &$form, FormStateInte /** @var \Drupal\webform\WebformSubmissionInterface $webform_submission */ $webform_submission = $form_object->getEntity(); + /** @var \Drupal\webform\WebformInterface $webform */ $webform = $webform_submission->getWebform(); @@ -360,14 +361,7 @@ function webform_cards_form_webform_admin_config_elements_form_alter(array &$for * @see /admin/structure/webform/manage/{webform}/settings */ function webform_cards_form_webform_settings_form_alter(array &$form, FormStateInterface $form_state) { - /** @var \Drupal\webform\EntitySettings\WebformEntitySettingsGeneralForm $form_object */ - $form_object = $form_state->getFormObject(); - /** @var \Drupal\webform\WebformInterface $webform */ - $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. - $has_cards = $webform_cards_manager->hasCards($webform); + $has_cards = _webform_cards_form_state_has_cards($form_state); if (!$has_cards) { return; } @@ -395,22 +389,41 @@ function webform_cards_form_webform_settings_form_alter(array &$form, FormStateI * @see /admin/structure/webform/manage/{webform}/settings/form */ function webform_cards_form_webform_settings_form_form_alter(array &$form, FormStateInterface $form_state) { + $has_cards = _webform_cards_form_state_has_cards($form_state); + if ($has_cards) { + unset($form['wizard_settings']['#states']); + } + _webform_cards_form_alter_elements($form, [ 'wizard_settings' => [ '#title' => t('Form wizard/cards settings'), + // Progress. 'wizard_progress_bar' => [ '#title' => t('Show wizard/cards progress bar'), ], + 'wizard_progress_link' => [ + '#title' => t('Link to previous pages/cards in progress bar'), + '#description' => t('If checked, previous pages/cards will be link in the progress bar.'), + ], 'wizard_progress_pages' => [ '#title' => t('Show wizard/cards progress pages'), ], 'wizard_progress_percentage' => [ '#title' => t('Show wizard/cards progress percentage'), ], + 'wizard_preview_link' => [ + '#title' => t('Link to previous pages/cards in preview'), + '#description' => t("If checked, the preview page/card will included 'Edit' buttons for each previous page/card.") . '<br/><br/>' . + '<em>' . t("This settings is only available when 'Enable preview page/card' is enabled.") . '</em>', + ], 'wizard_progress_states' => [ '#title' => t("Update wizard/cards progress bar's pages based on conditions"), '#description' => t("If checked, the wizard/cards progress bar's pages will be hidden or shown based on each pages conditional logic."), ], + // Navigation. + 'wizard_navigation_title' => [ + '#access' => TRUE, + ], 'wizard_auto_forward' => [ '#access' => TRUE, ], @@ -420,6 +433,28 @@ function webform_cards_form_webform_settings_form_form_alter(array &$form, FormS 'wizard_keyboard' => [ '#access' => TRUE, ], + // Pages. + 'wizard_pages_title' => [ + '#states' => [], + ], + 'wizard_confirmation' => [ + '#title' => t('Include confirmation page/card in progress'), + '#description' => t("If checked, the confirmation page/card will be included in the progress bar."), + ], + 'wizard_toggle' => [ + '#title' => t('Display show/hide all wizard/cards pages link'), + '#description' => t('If checked, a hide/show all elements link will be added to this webform when there are wizard/cards pages.'), + '#access' => TRUE, + ], + // Labels. + 'wizard_toggle_show_label' => [ + '#title' => t('Wizard/cards show all elements label'), + '#access' => TRUE, + ], + 'wizard_toggle_hide_label' => [ + '#title' => t('Wizard/card hide all elements label'), + '#access' => TRUE, + ], 'wizard_start_label' => [ '#title' => t('Wizard/cards start label'), '#description' => t('The first page label in the progress bar. Subsequent pages are titled by their wizard/card page title.'), @@ -427,13 +462,6 @@ function webform_cards_form_webform_settings_form_form_alter(array &$form, FormS 'wizard_confirmation_label' => [ '#title' => t('Wizard/cards end label'), ], - 'wizard_track' => [ - '#title' => t('Track wizard/cards progress in the URL by'), - '#options' => [ - 'name' => t("Page/card name (?page=contact)"), - 'index' => t("Page/card index (?page=2)"), - ], - ], 'wizard_prev_button_label' => [ '#title' => t('Wizard/cards previous page button label'), '#description' => t('This is used for the previous page button within a wizard/cards.'), @@ -442,18 +470,13 @@ function webform_cards_form_webform_settings_form_form_alter(array &$form, FormS '#title' => t('Wizard/cards next page button label'), '#description' => t('This is used for the next page button within a wizard/cards.'), ], - 'wizard_toggle' => [ - '#title' => t('Display show/hide all wizard/cards pages link'), - '#description' => t('If checked, a hide/show all elements link will be added to this webform when there are wizard/cards pages.'), - '#access' => TRUE, - ], - 'wizard_toggle_show_label' => [ - '#title' => t('Wizard/cards show all elements label'), - '#access' => TRUE, - ], - 'wizard_toggle_hide_label' => [ - '#title' => t('Wizard/card hide all elements label'), - '#access' => TRUE, + // Tracking. + 'wizard_track' => [ + '#title' => t('Track wizard/cards progress in the URL by'), + '#options' => [ + 'name' => t("Page/card name (?page=contact)"), + 'index' => t("Page/card index (?page=2)"), + ], ], ], ]); @@ -466,15 +489,8 @@ function webform_cards_form_webform_settings_form_form_alter(array &$form, FormS * @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)) { + $has_cards = _webform_cards_form_state_has_cards($form_state); + if ($has_cards) { $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; @@ -490,6 +506,29 @@ function webform_cards_form_webform_settings_submissions_form_alter(array &$form } } +/** + * Determine if the form state's related webform has cards. + * + * @param \Drupal\Core\Form\FormStateInterface $form_state + * The current state of the form. + * + * @return bool + * TRUE if the form states entity webform has cards. + */ +function _webform_cards_form_state_has_cards(FormStateInterface $form_state) { + /** @var \Drupal\Core\Entity\EntityFormInterface $form_object */ + $form_object = $form_state->getFormObject(); + + /** @var \Drupal\webform\WebformInterface $entity */ + $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. + return $webform_cards_manager->hasCards($webform); +} + /** * 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 f0f8a07b16..ce47a96ba3 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 @@ -37,7 +37,7 @@ $(context).find(':input[type="date"], :input[type="time"], :input[type="datetime"]') .removeAttr('step') .removeAttr('min') - .removeAttr('min'); + .removeAttr('max'); } }; @@ -65,7 +65,7 @@ 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); 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 cfa4ca3eaa..e761ffe79c 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 @@ -235,7 +235,7 @@ elements: | '#type': webform_signature '#title': signature '#required': true - + css: '' javascript: '' settings: @@ -277,6 +277,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 index 53f20cea37..7d00c79c31 100644 --- 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 @@ -12,7 +12,6 @@ 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' @@ -218,7 +217,7 @@ elements: | '#type': webform_signature '#title': signature '#required': true - + css: '' javascript: '' settings: @@ -260,6 +259,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 3e4f36d4de..7aa9cbe02c 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 be8e8ee3eb..7a3e1c5e49 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/config/install/webform.webform.demo_application.yml b/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/config/install/webform.webform.demo_application.yml index 1cc2b0df3d..0dfec4519f 100644 --- a/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/config/install/webform.webform.demo_application.yml +++ b/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/config/install/webform.webform.demo_application.yml @@ -1,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -158,6 +159,7 @@ elements: | '#access_update_roles': { } '#access_view_roles': - authenticated + css: '' javascript: '' settings: @@ -199,6 +201,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/config/install/webform.webform.demo_application_evaluation.yml b/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/config/install/webform.webform.demo_application_evaluation.yml index 054342112b..2d9088f203 100644 --- a/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/config/install/webform.webform.demo_application_evaluation.yml +++ b/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/config/install/webform.webform.demo_application_evaluation.yml @@ -26,12 +26,12 @@ elements: | {{ children }} <div>{{ 'Submitted by'|t }}: <em>[webform_submission:user]</em></div> <hr/> - + '#format_text': | {{ children }} {{ 'Submitted by'|t }} [webform_submission:user] ------------------------------------------------------------ - + rating: '#type': webform_rating '#title': Rating @@ -81,6 +81,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 88f25e2cdb..548ea764bc 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/webform_demo_application_evaluation.install b/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/webform_demo_application_evaluation.install index 353adf7049..5f06adeefe 100644 --- a/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/webform_demo_application_evaluation.install +++ b/web/modules/webform/modules/webform_demo/webform_demo_application_evaluation/webform_demo_application_evaluation.install @@ -66,6 +66,7 @@ function webform_demo_application_evaluation_install() { function webform_demo_application_evaluation_uninstall() { // Delete all webform:demo_application nodes. $entity_ids = \Drupal::entityQuery('node') + ->accessCheck(TRUE) ->condition('webform.target_id', 'demo_application') ->execute(); if ($entity_ids) { diff --git a/web/modules/webform/modules/webform_demo/webform_demo_event_registration/config/install/webform.webform.demo_event_registration.yml b/web/modules/webform/modules/webform_demo/webform_demo_event_registration/config/install/webform.webform.demo_event_registration.yml index ff4f9524a5..b9ce40fec3 100644 --- a/web/modules/webform/modules/webform_demo/webform_demo_event_registration/config/install/webform.webform.demo_event_registration.yml +++ b/web/modules/webform/modules/webform_demo/webform_demo_event_registration/config/install/webform.webform.demo_event_registration.yml @@ -103,6 +103,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: true share_theme_name: '' 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 109a4f1977..7fa6b6549d 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_demo/webform_demo_event_registration/webform_demo_event_registration.install b/web/modules/webform/modules/webform_demo/webform_demo_event_registration/webform_demo_event_registration.install index cf6a00c474..77b7c7e540 100644 --- a/web/modules/webform/modules/webform_demo/webform_demo_event_registration/webform_demo_event_registration.install +++ b/web/modules/webform/modules/webform_demo/webform_demo_event_registration/webform_demo_event_registration.install @@ -41,6 +41,7 @@ function webform_demo_event_registration_install() { function webform_demo_event_registration_uninstall() { // Delete all webform:demo_event_registration nodes. $entity_ids = \Drupal::entityQuery('node') + ->accessCheck(TRUE) ->condition('type', 'webform_demo_event') ->condition('webform.target_id', 'demo_event_registration') ->execute(); diff --git a/web/modules/webform/modules/webform_demo/webform_demo_group/config/install/webform.webform.webform_group_contact.yml b/web/modules/webform/modules/webform_demo/webform_demo_group/config/install/webform.webform.webform_group_contact.yml index e828f508c5..851ecb7605 100644 --- a/web/modules/webform/modules/webform_demo/webform_demo_group/config/install/webform.webform.webform_group_contact.yml +++ b/web/modules/webform/modules/webform_demo/webform_demo_group/config/install/webform.webform.webform_group_contact.yml @@ -129,6 +129,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 7970790167..a478a44f69 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_demo/webform_demo_region_contact/config/install/webform.webform.demo_region_contact.yml b/web/modules/webform/modules/webform_demo/webform_demo_region_contact/config/install/webform.webform.demo_region_contact.yml index 374bdeca17..ce3e6aed7c 100644 --- a/web/modules/webform/modules/webform_demo/webform_demo_region_contact/config/install/webform.webform.demo_region_contact.yml +++ b/web/modules/webform/modules/webform_demo/webform_demo_region_contact/config/install/webform.webform.demo_region_contact.yml @@ -82,6 +82,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 9e90b64e32..13f8471a4f 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_demo/webform_demo_region_contact/webform_demo_region_contact.install b/web/modules/webform/modules/webform_demo/webform_demo_region_contact/webform_demo_region_contact.install index eceed94eeb..9541bf75d0 100644 --- a/web/modules/webform/modules/webform_demo/webform_demo_region_contact/webform_demo_region_contact.install +++ b/web/modules/webform/modules/webform_demo/webform_demo_region_contact/webform_demo_region_contact.install @@ -141,6 +141,7 @@ function webform_demo_region_contact_install() { function webform_demo_region_contact_uninstall() { // Delete all 'webform:demo_region_contact' nodes. $entity_ids = \Drupal::entityQuery('node') + ->accessCheck(TRUE) ->condition('type', 'webform_demo_region') ->condition('webform.target_id', 'demo_region_contact') ->execute(); 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 c4a21fdbd9..4fc58b291b 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/config/install/webform.webform.test_entity_print.yml b/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/config/install/webform.webform.test_entity_print.yml index 23090904dd..4092289923 100644 --- a/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/config/install/webform.webform.test_entity_print.yml +++ b/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/config/install/webform.webform.test_entity_print.yml @@ -28,7 +28,7 @@ elements: | '#type': webform_image_file '#title': image_file '#file_extensions': gif - + css: '/** custom webform css **/' javascript: '' settings: @@ -70,6 +70,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' @@ -132,6 +135,7 @@ settings: confirmation_title: '' confirmation_message: | <p>You can view your submission via <a href="[webform_submission:view-url]">[webform_submission:view-url:relative]</a></p> + confirmation_url: '' confirmation_attributes: { } confirmation_back: true diff --git a/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/config/install/webform.webform.test_entity_print_custom.yml b/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/config/install/webform.webform.test_entity_print_custom.yml index f505fe65a4..81a5e58e99 100644 --- a/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/config/install/webform.webform.test_entity_print_custom.yml +++ b/web/modules/webform/modules/webform_entity_print/tests/modules/webform_entity_print_test/config/install/webform.webform.test_entity_print_custom.yml @@ -75,6 +75,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 239ac9cb03..1b4ad283fc 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 07aff781ba..fb879b28aa 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_entity_print_attachment/tests/modules/webform_entity_print_attachment_test/config/install/webform.webform.test_entity_print_attachment.yml b/web/modules/webform/modules/webform_entity_print_attachment/tests/modules/webform_entity_print_attachment_test/config/install/webform.webform.test_entity_print_attachment.yml index daae5fe5b8..4505b8702f 100644 --- a/web/modules/webform/modules/webform_entity_print_attachment/tests/modules/webform_entity_print_attachment_test/config/install/webform.webform.test_entity_print_attachment.yml +++ b/web/modules/webform/modules/webform_entity_print_attachment/tests/modules/webform_entity_print_attachment_test/config/install/webform.webform.test_entity_print_attachment.yml @@ -76,6 +76,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 df904f475b..9a22805bbb 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 7e1cfb17ff..58e82d34af 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_example_composite/config/install/webform.webform.webform_example_composite.yml b/web/modules/webform/modules/webform_example_composite/config/install/webform.webform.webform_example_composite.yml index e7213e8865..ca79dd0454 100644 --- a/web/modules/webform/modules/webform_example_composite/config/install/webform.webform.webform_example_composite.yml +++ b/web/modules/webform/modules/webform_example_composite/config/install/webform.webform.webform_example_composite.yml @@ -66,6 +66,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 ef04dd023e..1938903a6f 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_example_composite/webform_example_composite.module b/web/modules/webform/modules/webform_example_composite/webform_example_composite.module index 5911af46be..ed4e273ce9 100644 --- a/web/modules/webform/modules/webform_example_composite/webform_example_composite.module +++ b/web/modules/webform/modules/webform_example_composite/webform_example_composite.module @@ -5,7 +5,7 @@ * Provides an example that shows how to create a Webform composite. */ -module_load_include('inc', 'webform', 'includes/webform.theme.template'); +include_once __DIR__ . '/../../includes/webform.theme.template.inc'; /** * Implements hook_theme(). diff --git a/web/modules/webform/modules/webform_example_custom_form/config/install/webform.webform.webform_example_custom_form.yml b/web/modules/webform/modules/webform_example_custom_form/config/install/webform.webform.webform_example_custom_form.yml index 370043e946..edbbf0a70d 100644 --- a/web/modules/webform/modules/webform_example_custom_form/config/install/webform.webform.webform_example_custom_form.yml +++ b/web/modules/webform/modules/webform_example_custom_form/config/install/webform.webform.webform_example_custom_form.yml @@ -346,6 +346,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 b1da53e01d..ecde84b88c 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_example_element/config/install/webform.webform.webform_example_element.yml b/web/modules/webform/modules/webform_example_element/config/install/webform.webform.webform_example_element.yml index 0ab3d9a197..f14234a113 100644 --- a/web/modules/webform/modules/webform_example_element/config/install/webform.webform.webform_example_element.yml +++ b/web/modules/webform/modules/webform_example_element/config/install/webform.webform.webform_example_element.yml @@ -65,6 +65,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 ead20fcba8..6d0dd899f8 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 7f10ac9e81..f0528852d2 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_example_handler/config/install/webform.webform.webform_example_handler.yml b/web/modules/webform/modules/webform_example_handler/config/install/webform.webform.webform_example_handler.yml index c9b677d719..b33688ddc2 100644 --- a/web/modules/webform/modules/webform_example_handler/config/install/webform.webform.webform_example_handler.yml +++ b/web/modules/webform/modules/webform_example_handler/config/install/webform.webform.webform_example_handler.yml @@ -65,6 +65,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 ef40fd33fa..b5545f46f6 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_example_remote_post/config/install/webform.webform.example_remote_post.yml b/web/modules/webform/modules/webform_example_remote_post/config/install/webform.webform.example_remote_post.yml index 830a26912c..f4042656a3 100644 --- a/web/modules/webform/modules/webform_example_remote_post/config/install/webform.webform.example_remote_post.yml +++ b/web/modules/webform/modules/webform_example_remote_post/config/install/webform.webform.example_remote_post.yml @@ -82,6 +82,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' @@ -257,6 +260,7 @@ handlers: custom_all: true custom_options: '' + file_data: true cast: false debug: true completed_url: '[site:url]webform_example_remote_post/completed' 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 af336869c1..d34f74ce26 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_example_variant/config/install/webform.webform.webform_example_variant_ab_test.yml b/web/modules/webform/modules/webform_example_variant/config/install/webform.webform.webform_example_variant_ab_test.yml index 9903cfb22f..0b4f1cc881 100644 --- a/web/modules/webform/modules/webform_example_variant/config/install/webform.webform.webform_example_variant_ab_test.yml +++ b/web/modules/webform/modules/webform_example_variant/config/install/webform.webform.webform_example_variant_ab_test.yml @@ -46,7 +46,7 @@ elements: | '#type': webform_actions '#title': 'Submit button(s)' '#submit__label': 'Submit feedback' - + css: '' javascript: '' settings: @@ -88,6 +88,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' @@ -332,7 +335,7 @@ variants: '#title_display': 'inline' actions: '#title': 'Submit' - + handlers: email_confirmation: status: false diff --git a/web/modules/webform/modules/webform_example_variant/config/install/webform.webform.webform_example_variant_segments.yml b/web/modules/webform/modules/webform_example_variant/config/install/webform.webform.webform_example_variant_segments.yml index 027abac0f7..589b24dc99 100644 --- a/web/modules/webform/modules/webform_example_variant/config/install/webform.webform.webform_example_variant_segments.yml +++ b/web/modules/webform/modules/webform_example_variant/config/install/webform.webform.webform_example_variant_segments.yml @@ -76,6 +76,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 4a3c3c69b1..8764731cd6 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_computed_elements.yml b/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_computed_elements.yml index 21f30b6f30..1395c36e8f 100644 --- a/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_computed_elements.yml +++ b/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_computed_elements.yml @@ -89,6 +89,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_computed_elements_ajax.yml b/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_computed_elements_ajax.yml index 04a375664a..5971b4d1d0 100644 --- a/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_computed_elements_ajax.yml +++ b/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_computed_elements_ajax.yml @@ -78,7 +78,7 @@ elements: | type: _none user_preview: '#type': webform_computed_token - '#title': 'User' + '#title': User '#title_display': none '#ajax': true '#hide_empty': true @@ -88,6 +88,7 @@ elements: | <strong>User: Email:</strong> [webform_submission:values:user:entity:mail:clear]<br/> <strong>User: URL:</strong> [webform_submission:values:user:entity:url:clear]<br/> <strong>User: Created:</strong> [webform_submission:values:user:entity:created:clear] + '#display_on': form user_uid: '#type': webform_computed_token @@ -120,18 +121,19 @@ elements: | '#description': | Formula: weight (lb) / [height (in)]2 x 703<br/> @see <a href="https://www.cdc.gov/nccdphp/dnpao/growthcharts/training/bmiage/page5_2.html">https://www.cdc.gov/nccdphp/dnpao/growthcharts/training/bmiage/page5_2.html</a> + weight: '#type': number '#title': Weight '#field_suffix': ' pounds' '#default_value': 37.25 - '#step': .25 + '#step': 0.25 '#min': 1 height: '#type': webform_height '#title': Height '#default_value': 41.5 - '#inches__step': .5 + '#inches__step': 0.5 bmi: '#type': webform_computed_twig '#title': BMI @@ -187,6 +189,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_element_states.yml b/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_element_states.yml index c6a1a0a5b6..904dfbec42 100644 --- a/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_element_states.yml +++ b/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_element_states.yml @@ -234,6 +234,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_flexbox_layout.yml b/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_flexbox_layout.yml index 929f864c1e..9daa15bcb4 100644 --- a/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_flexbox_layout.yml +++ b/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_flexbox_layout.yml @@ -160,6 +160,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_input_masks.yml b/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_input_masks.yml index 2f1750c95f..7f743832ad 100644 --- a/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_input_masks.yml +++ b/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_input_masks.yml @@ -128,6 +128,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_style_guide.yml b/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_style_guide.yml index 6426d4236a..9cd562207e 100644 --- a/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_style_guide.yml +++ b/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_style_guide.yml @@ -80,7 +80,6 @@ elements: | checkboxes_description: '#type': checkboxes '#title': 'Checkboxes with descriptions' - '#options_description_display': description '#options': one: 'One -- This is a description.' two: 'Two -- This is a description.' @@ -158,9 +157,6 @@ elements: | range: '#type': range '#title': Range - '#min': 0 - '#max': 100 - '#step': 1 '#output': right '#output__field_prefix': $ '#output__field_suffix': '.00' @@ -239,7 +235,6 @@ elements: | webform_scale: '#type': webform_scale '#title': Scale - '#min': 1 '#max': 10 '#min_text': '1 = disagree' '#max_text': '10 = agree' @@ -273,6 +268,8 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true + filter: + type: _none entity_autocomplete_tags: '#type': entity_autocomplete '#title': 'Entity autocomplete tags' @@ -280,6 +277,8 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true + filter: + type: _none '#tags': true entity_autocomplete_multiple: '#type': entity_autocomplete @@ -288,6 +287,8 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true + filter: + type: _none '#multiple': true webform_entity_checkboxes: '#type': webform_entity_checkboxes @@ -296,6 +297,8 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true + filter: + type: _none '#options': 1: Administrator 0: Anonymous @@ -306,6 +309,8 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true + filter: + type: _none '#options': 1: Administrator 0: Anonymous @@ -316,6 +321,8 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true + filter: + type: _none webform_entity_select_multiple: '#type': webform_entity_select '#title': 'Entity select multiple' @@ -323,6 +330,8 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true + filter: + type: _none '#multiple': true '#select2': true webform_term_checkboxes: @@ -349,8 +358,6 @@ elements: | webform_address: '#type': webform_address '#title': 'First address' - '#flexbox': false - '#title_display': above webform_same_address: '#type': webform_same '#title': 'Second address same as the first address' @@ -361,8 +368,6 @@ elements: | webform_address_other: '#type': webform_address '#title': 'Second address' - '#flexbox': false - '#title_display': above webform_link_multiple: '#type': webform_link '#title': 'Link multiple' @@ -630,7 +635,6 @@ elements: | element_flex_1: '#type': textfield '#title': 'Element (Flex: 1)' - '#flex': 1 element_flex_2: '#type': textfield '#title': 'Element (Flex: 2)' @@ -689,6 +693,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_wizard.yml b/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_wizard.yml index 36719712b2..823b256128 100644 --- a/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_wizard.yml +++ b/web/modules/webform/modules/webform_examples/config/install/webform.webform.example_wizard.yml @@ -99,6 +99,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_examples/config/optional/webform.webform.example_cards.yml b/web/modules/webform/modules/webform_examples/config/optional/webform.webform.example_cards.yml index 22735ba4c8..fc4efeba33 100644 --- a/web/modules/webform/modules/webform_examples/config/optional/webform.webform.example_cards.yml +++ b/web/modules/webform/modules/webform_examples/config/optional/webform.webform.example_cards.yml @@ -125,6 +125,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 4283f43d66..34d8d24d23 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_advanced.yml b/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_advanced.yml index ef2733d269..7f25d63c85 100644 --- a/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_advanced.yml +++ b/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_advanced.yml @@ -252,6 +252,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_basic.yml b/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_basic.yml index 38894b225f..86125ce17f 100644 --- a/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_basic.yml +++ b/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_basic.yml @@ -168,6 +168,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_containers.yml b/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_containers.yml index e0171a6aba..bc51f2b893 100644 --- a/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_containers.yml +++ b/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_containers.yml @@ -93,6 +93,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_labels.yml b/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_labels.yml index 3a06afff8d..3f43c2593c 100644 --- a/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_labels.yml +++ b/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_labels.yml @@ -223,6 +223,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_wizard.yml b/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_wizard.yml index 1655b3c628..b259cdc7c1 100644 --- a/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_wizard.yml +++ b/web/modules/webform/modules/webform_examples_accessibility/config/install/webform.webform.example_accessibility_wizard.yml @@ -98,6 +98,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 d715482fc7..e169e49c7b 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_group/src/WebformGroupManagerInterface.php b/web/modules/webform/modules/webform_group/src/WebformGroupManagerInterface.php index dd4f55b51d..5b12512856 100644 --- a/web/modules/webform/modules/webform_group/src/WebformGroupManagerInterface.php +++ b/web/modules/webform/modules/webform_group/src/WebformGroupManagerInterface.php @@ -61,9 +61,9 @@ public function getCurrentGroupWebform(); * @param \Drupal\Core\Session\AccountInterface $account * A user account. * - * @return \Drupal\group\Entity\GroupContentInterface|bool - * The group role for the webform submission. - * FALSE if no group roles is found for the webform submission. + * @return array + * An array of group roles for a webform submission and a specified + * user account. */ public function getWebformSubmissionUserGroupRoles(WebformSubmissionInterface $webform_submission, AccountInterface $account); @@ -86,7 +86,7 @@ public function getWebformSubmissionGroupContent(WebformSubmissionInterface $web * A webform. * * @return array - * An associative array containiong a webform's access rules + * An associative array containing a webform's access rules * with group roles. */ public function getAccessRules(WebformInterface $webform); diff --git a/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/config/install/webform.webform.test_element_group_roles.yml b/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/config/install/webform.webform.test_element_group_roles.yml index 9913e9468c..278d250f89 100644 --- a/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/config/install/webform.webform.test_element_group_roles.yml +++ b/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/config/install/webform.webform.test_element_group_roles.yml @@ -68,6 +68,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/config/install/webform.webform.test_group_element_access.yml b/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/config/install/webform.webform.test_group_element_access.yml index 13d5ee5bd1..477b733b62 100644 --- a/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/config/install/webform.webform.test_group_element_access.yml +++ b/web/modules/webform/modules/webform_group/tests/modules/webform_group_test/config/install/webform.webform.test_group_element_access.yml @@ -86,6 +86,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 dbad33b324..52791fbf64 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 021fb28ba5..6dd9fb294f 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_group/webform_group.module b/web/modules/webform/modules/webform_group/webform_group.module index 36c792dd17..fb014d7372 100644 --- a/web/modules/webform/modules/webform_group/webform_group.module +++ b/web/modules/webform/modules/webform_group/webform_group.module @@ -25,7 +25,7 @@ */ function webform_group_config_schema_info_alter(&$definitions) { // Append group roles to webform access schema. - $mapping =& $definitions['webform.webform.*']['mapping']['access']['sequence']['mapping']; + $mapping = &$definitions['webform.webform.*']['mapping']['access']['sequence']['mapping']; $mapping['group_roles'] = [ 'type' => 'sequence', 'label' => 'Group roles', @@ -203,7 +203,7 @@ function webform_group_form_webform_settings_access_form_alter(&$form, FormState */ function webform_group_form_webform_ui_element_form_alter(&$form, FormStateInterface $form_state) { $default_properties = $form_state->get('default_properties'); - $custom_default_value =& $form['properties']['custom']['properties']['#default_value']; + $custom_default_value = &$form['properties']['custom']['properties']['#default_value']; $operations = ['create', 'update', 'view']; foreach ($operations as $operation) { diff --git a/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/config/install/webform.webform.test_element_icheck.yml b/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/config/install/webform.webform.test_element_icheck.yml index caf1eeaa95..e9d6b8e886 100644 --- a/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/config/install/webform.webform.test_element_icheck.yml +++ b/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/config/install/webform.webform.test_element_icheck.yml @@ -140,6 +140,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/config/install/webform.webform.test_element_icheck_styles.yml b/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/config/install/webform.webform.test_element_icheck_styles.yml index 4dd4bebd76..3c3bbf6bd2 100644 --- a/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/config/install/webform.webform.test_element_icheck_styles.yml +++ b/web/modules/webform/modules/webform_icheck/tests/modules/webform_icheck_test/config/install/webform.webform.test_element_icheck_styles.yml @@ -874,6 +874,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 0a77fccafe..7646061259 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 6363663a30..384709a495 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/config/install/webform.webform.test_element_image_select.yml b/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/config/install/webform.webform.test_element_image_select.yml index 29f3b058e7..513bd98aae 100644 --- a/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/config/install/webform.webform.test_element_image_select.yml +++ b/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/config/install/webform.webform.test_element_image_select.yml @@ -206,6 +206,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/config/install/webform.webform.test_element_images.yml b/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/config/install/webform.webform.test_element_images.yml index be2837d3ec..449c7d7f8c 100644 --- a/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/config/install/webform.webform.test_element_images.yml +++ b/web/modules/webform/modules/webform_image_select/tests/modules/webform_image_select_test/config/install/webform.webform.test_element_images.yml @@ -107,6 +107,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 f7f9e899f7..00f5dffdbe 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 ebaae2d4f0..e25aaa9479 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_jqueryui_buttons/tests/modules/webform_jqueryui_buttons_test/config/install/webform.webform.test_element_buttons.yml b/web/modules/webform/modules/webform_jqueryui_buttons/tests/modules/webform_jqueryui_buttons_test/config/install/webform.webform.test_element_buttons.yml index f3824a4a9d..7ce9396467 100644 --- a/web/modules/webform/modules/webform_jqueryui_buttons/tests/modules/webform_jqueryui_buttons_test/config/install/webform.webform.test_element_buttons.yml +++ b/web/modules/webform/modules/webform_jqueryui_buttons/tests/modules/webform_jqueryui_buttons_test/config/install/webform.webform.test_element_buttons.yml @@ -90,6 +90,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 700da05044..b6a6fe6df3 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 27a6f9b7d4..2acdb69a1a 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_location_geocomplete/tests/modules/webform_location_geocomplete_test/config/install/webform.webform.test_element_loc_geocomplete.yml b/web/modules/webform/modules/webform_location_geocomplete/tests/modules/webform_location_geocomplete_test/config/install/webform.webform.test_element_loc_geocomplete.yml index f405c21630..b350117ef7 100644 --- a/web/modules/webform/modules/webform_location_geocomplete/tests/modules/webform_location_geocomplete_test/config/install/webform.webform.test_element_loc_geocomplete.yml +++ b/web/modules/webform/modules/webform_location_geocomplete/tests/modules/webform_location_geocomplete_test/config/install/webform.webform.test_element_loc_geocomplete.yml @@ -137,6 +137,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 d0cf388843..84b1dab0d4 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 7208ef95f8..b5c648a8a9 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/config/install/webform.webform.webform_node_test_multiple_a.yml b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/config/install/webform.webform.webform_node_test_multiple_a.yml index 57ae13a1e3..ab4aa40f49 100644 --- a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/config/install/webform.webform.webform_node_test_multiple_a.yml +++ b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/config/install/webform.webform.webform_node_test_multiple_a.yml @@ -61,6 +61,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/config/install/webform.webform.webform_node_test_multiple_b.yml b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/config/install/webform.webform.webform_node_test_multiple_b.yml index 4f4ad3d69d..32a38b5304 100644 --- a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/config/install/webform.webform.webform_node_test_multiple_b.yml +++ b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/config/install/webform.webform.webform_node_test_multiple_b.yml @@ -61,6 +61,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 01250577e2..105881adbf 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/webform_node_test_multiple.install b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/webform_node_test_multiple.install index a840bc8672..f5cb4d1a93 100644 --- a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/webform_node_test_multiple.install +++ b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_multiple/webform_node_test_multiple.install @@ -34,6 +34,7 @@ function webform_node_test_multiple_install() { function webform_node_test_multiple_uninstall() { $entity_ids = \Drupal::entityQuery('node') ->condition('field_webform_test_multiple_a.target_id', 'webform_node_test_multiple_a') + ->accessCheck(TRUE) ->execute(); if ($entity_ids) { /** @var \Drupal\node\Entity\Node[] $nodes */ diff --git a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_translation/config/install/webform.webform.webform_node_test_translation.yml b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_translation/config/install/webform.webform.webform_node_test_translation.yml index 64f2edcd05..856b5a780c 100644 --- a/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_translation/config/install/webform.webform.webform_node_test_translation.yml +++ b/web/modules/webform/modules/webform_node/tests/modules/webform_node_test_translation/config/install/webform.webform.webform_node_test_translation.yml @@ -62,6 +62,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 9927f1668e..f77de0d587 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_node/tests/src/Functional/Access/WebformNodeAccessClosedTest.php b/web/modules/webform/modules/webform_node/tests/src/Functional/Access/WebformNodeAccessClosedTest.php new file mode 100644 index 0000000000..c164d08282 --- /dev/null +++ b/web/modules/webform/modules/webform_node/tests/src/Functional/Access/WebformNodeAccessClosedTest.php @@ -0,0 +1,66 @@ +<?php + +namespace Drupal\Tests\webform_node\Functional\Access; + +use Drupal\webform\Entity\Webform; +use Drupal\Tests\webform_node\Functional\WebformNodeBrowserTestBase; + +/** + * Tests for webform node closed access. + * + * @group webform_node + */ +class WebformNodeAccessClosedTest extends WebformNodeBrowserTestBase { + + /** + * Modules to enable. + * + * @var array + */ + public static $modules = ['webform', 'webform_node']; + + /** + * Tests webform node closed access. + */ + public function testAccessClosedT() { + $node = $this->createWebformNode('contact'); + $nid = $node->id(); + + $account = $this->drupalCreateUser(['access content']); + + /**************************************************************************/ + + $this->drupalLogin($account); + + // Check webform node access allowed. + $this->drupalGet('/node/' . $node->id()); + $this->assertResponse(200); + $this->assertFieldByName('name', $account->getAccountName()); + $this->assertFieldByName('email', $account->getEmail()); + + // Check webform access allowed with source entity. + $this->drupalGet('/webform/contact', ['query' => ['source_entity_type' => 'node', 'source_entity_id' => $nid]]); + $this->assertResponse(200); + $this->assertFieldByName('name', $account->getAccountName()); + $this->assertFieldByName('email', $account->getEmail()); + + // Close the webform via the node. + $node->webform->status = FALSE; + $node->save(); + + // Check webform node access denied. + $this->drupalGet('/node/' . $node->id()); + $this->assertResponse(200); + $this->assertNoFieldByName('name', $account->getAccountName()); + $this->assertNoFieldByName('email', $account->getEmail()); + $this->assertRaw('Sorry… This form is closed to new submissions.'); + + // Check webform access denied with source entity. + $this->drupalGet('/webform/contact', ['query' => ['source_entity_type' => 'node', 'source_entity_id' => $nid]]); + $this->assertResponse(200); + $this->assertNoFieldByName('name', $account->getAccountName()); + $this->assertNoFieldByName('email', $account->getEmail()); + $this->assertRaw('Sorry… This form is closed to new submissions.'); + } + +} diff --git a/web/modules/webform/modules/webform_node/tests/src/Functional/WebformNodeResultsTest.php b/web/modules/webform/modules/webform_node/tests/src/Functional/WebformNodeResultsTest.php index 9a1f0a0259..e80577e932 100644 --- a/web/modules/webform/modules/webform_node/tests/src/Functional/WebformNodeResultsTest.php +++ b/web/modules/webform/modules/webform_node/tests/src/Functional/WebformNodeResultsTest.php @@ -164,6 +164,7 @@ public function testResults() { $edit = [ 'columns[created][checkbox]' => FALSE, 'columns[changed][checkbox]' => TRUE, + 'sort' => 'serial', 'direction' => 'asc', 'limit' => 20, 'default' => TRUE, 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 a979dbd35d..c764ac21f8 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_options_custom/config/install/webform.webform.example_options_custom.yml b/web/modules/webform/modules/webform_options_custom/config/install/webform.webform.example_options_custom.yml index 81263922df..a4f618e791 100644 --- a/web/modules/webform/modules/webform_options_custom/config/install/webform.webform.example_options_custom.yml +++ b/web/modules/webform/modules/webform_options_custom/config/install/webform.webform.example_options_custom.yml @@ -70,6 +70,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_options_custom/js/webform_options_custom.element.js b/web/modules/webform/modules/webform_options_custom/js/webform_options_custom.element.js index e01351940c..5631f550d1 100644 --- a/web/modules/webform/modules/webform_options_custom/js/webform_options_custom.element.js +++ b/web/modules/webform/modules/webform_options_custom/js/webform_options_custom.element.js @@ -92,7 +92,6 @@ // Template event handling. $template - .on('click', setTemplateValue) .on('click', setTemplateValue) .on('keydown', function (event) { var $templateOption = $(event.target); diff --git a/web/modules/webform/modules/webform_options_custom/src/Element/WebformOptionsCustom.php b/web/modules/webform/modules/webform_options_custom/src/Element/WebformOptionsCustom.php index 4e6c11ad54..3f9f425f95 100644 --- a/web/modules/webform/modules/webform_options_custom/src/Element/WebformOptionsCustom.php +++ b/web/modules/webform/modules/webform_options_custom/src/Element/WebformOptionsCustom.php @@ -292,7 +292,7 @@ public static function setTemplateOptions(array &$element) { ]; // Get options. - $options =& $element['#options']; + $options = &$element['#options']; // Build options by text look up. $options_by_text = []; diff --git a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_entity_test/config/install/webform.webform.test_element_options_custom_ent.yml b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_entity_test/config/install/webform.webform.test_element_options_custom_ent.yml index 4bdede7845..3e3a527339 100644 --- a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_entity_test/config/install/webform.webform.test_element_options_custom_ent.yml +++ b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_entity_test/config/install/webform.webform.test_element_options_custom_ent.yml @@ -70,6 +70,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 feb8d7e6f7..6aea59bd57 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_html.yml b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_html.yml index 1b526a4804..8bb609e45b 100644 --- a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_html.yml +++ b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_html.yml @@ -91,6 +91,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_imap.yml b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_imap.yml index 2455dd9c39..a9edadeb74 100644 --- a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_imap.yml +++ b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_imap.yml @@ -61,6 +61,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_svg.yml b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_svg.yml index c41f155e07..9016830831 100644 --- a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_svg.yml +++ b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_svg.yml @@ -67,6 +67,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_twig.yml b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_twig.yml index 81e179be4f..25e6f2fb11 100644 --- a/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_twig.yml +++ b/web/modules/webform/modules/webform_options_custom/tests/modules/webform_options_custom_test/config/install/webform.webform.test_element_options_custom_twig.yml @@ -65,6 +65,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 c94ff1eb4d..d0cf34c89c 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 b8d230b560..115ba322d3 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 f67f407a19..a2e30ef236 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 @@ -620,7 +620,7 @@ protected function setOptionsElementDefaultValue(array &$element, array $limits, */ protected function alterOptionsElement(array &$element, array $limits, array $reached) { // Set options element's options labels. - $options =& $element['#options']; + $options = &$element['#options']; $this->alterOptionsElementLabels($options, $limits); // Disable or remove reached options. @@ -660,7 +660,7 @@ protected function alterOptionsElementLabels(array &$options, array $limits) { $limits[$option_value] ); $message_display = $this->configuration['option_message_display']; - $option =& $options[$option_value][0]; + $option = &$options[$option_value][0]; switch ($message_display) { case WebformOptionsLimitHandlerInterface::MESSAGE_DISPLAY_DESCRIPTION: list( @@ -727,7 +727,7 @@ protected function disableOptionsElement(array &$element, array $reached) { * An options element's reached options. */ protected function removeOptionsElement(array &$element, array $reached) { - $options =& $element['#options']; + $options = &$element['#options']; $this->removeOptionsElementRecursive($options, $reached); } diff --git a/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_boolean_limit.yml b/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_boolean_limit.yml index edc0bab3d3..cf77e5d76c 100644 --- a/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_boolean_limit.yml +++ b/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_boolean_limit.yml @@ -72,6 +72,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_options_limit.yml b/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_options_limit.yml index e3341e2c32..189c14dc5b 100644 --- a/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_options_limit.yml +++ b/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_options_limit.yml @@ -114,7 +114,7 @@ elements: | Y: Y Z: Z '#default_value': X - + css: '' javascript: '' settings: @@ -156,6 +156,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_options_limit_ent.yml b/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_options_limit_ent.yml index 14a49b920c..658fd5fd2d 100644 --- a/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_options_limit_ent.yml +++ b/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_options_limit_ent.yml @@ -69,6 +69,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_options_limit_user.yml b/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_options_limit_user.yml index fb265f5fba..18b8196341 100644 --- a/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_options_limit_user.yml +++ b/web/modules/webform/modules/webform_options_limit/tests/modules/webform_options_limit_test/config/install/webform.webform.test_handler_options_limit_user.yml @@ -71,6 +71,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 ee037c7f4b..5ee171408a 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 43489d281c..3311d5c6ac 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test/config/install/webform.webform.test_handler_scheduled_email.yml b/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test/config/install/webform.webform.test_handler_scheduled_email.yml index f13db000e6..23068e4c00 100644 --- a/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test/config/install/webform.webform.test_handler_scheduled_email.yml +++ b/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test/config/install/webform.webform.test_handler_scheduled_email.yml @@ -82,6 +82,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 b2e917525b..d6ed2feb04 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test_translation/config/install/webform.webform.test_handler_scheduled_translate.yml b/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test_translation/config/install/webform.webform.test_handler_scheduled_translate.yml index cb93282765..3399e5cabc 100644 --- a/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test_translation/config/install/webform.webform.test_handler_scheduled_translate.yml +++ b/web/modules/webform/modules/webform_scheduled_email/tests/modules/webform_scheduled_email_test_translation/config/install/webform.webform.test_handler_scheduled_translate.yml @@ -63,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 72b68623c1..199d36217a 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 d6e247f3d7..e0f2d56fa7 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 bbce9eb673..927eea6a06 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_share/webform_share.module b/web/modules/webform/modules/webform_share/webform_share.module index 8b1bddc718..0be1ba401c 100644 --- a/web/modules/webform/modules/webform_share/webform_share.module +++ b/web/modules/webform/modules/webform_share/webform_share.module @@ -85,7 +85,7 @@ function webform_share_menu_local_tasks_alter(&$data, $route_name, RefinableCach if ($query = \Drupal::request()->query->all()) { foreach ($route_names as $route_name) { if (isset($data['tabs'][1][$route_name])) { - $url =& $data['tabs'][1][$route_name]['#link']['url']; + $url = &$data['tabs'][1][$route_name]['#link']['url']; $url->setOption('query', $query); } } diff --git a/web/modules/webform/modules/webform_shortcuts/tests/src/Functional/WebformShortcutsFunctionalTest.php b/web/modules/webform/modules/webform_shortcuts/tests/src/Functional/WebformShortcutsFunctionalTest.php index f7d4b5e711..6527dc9b44 100644 --- a/web/modules/webform/modules/webform_shortcuts/tests/src/Functional/WebformShortcutsFunctionalTest.php +++ b/web/modules/webform/modules/webform_shortcuts/tests/src/Functional/WebformShortcutsFunctionalTest.php @@ -37,7 +37,7 @@ public function testShortcuts() { // Check default shortcuts. $this->drupalGet('/admin/structure/webform/manage/contact'); - $this->assertRaw('<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">Keyboard shortcuts</div><div class="webform-element-help--content"><hr />CTRL+E = Add element<br />CTRL+P = Add page<br />CTRL+L = Add layout<br /><hr />CTRL+S = Save element or elements<br />CTRL+R = Reset elements<br /><hr />CTRL+W = Show/hide row weights<br /><hr /></div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="Keyboard shortcuts" data-webform-help="<div class="webform-element-help--title">Keyboard shortcuts</div><div class="webform-element-help--content"><hr />CTRL+E = Add element<br />CTRL+P = Add page<br />CTRL+L = Add layout<br /><hr />CTRL+S = Save element or elements<br />CTRL+R = Reset elements<br /><hr />CTRL+W = Show/hide row weights<br /><hr /></div>"><span aria-hidden="true">?</span></span>'); // Customize the shortcuts. $edit = [ @@ -48,7 +48,7 @@ public function testShortcuts() { // Check customized shortcuts. $this->drupalGet('/admin/structure/webform/manage/contact'); - $this->assertRaw('<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">Keyboard shortcuts</div><div class="webform-element-help--content"><hr />CRTL+Z = Add element<br />CTRL+P = Add page<br />CTRL+L = Add layout<br /><hr />CTRL+S = Save element or elements<br />CTRL+R = Reset elements<br /><hr /></div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="Keyboard shortcuts" data-webform-help="<div class="webform-element-help--title">Keyboard shortcuts</div><div class="webform-element-help--content"><hr />CRTL+Z = Add element<br />CTRL+P = Add page<br />CTRL+L = Add layout<br /><hr />CTRL+S = Save element or elements<br />CTRL+R = Reset elements<br /><hr /></div>"><span aria-hidden="true">?</span></span>'); } } 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 d5fed9955f..cde12e4958 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 a3c677d665..4d69cf3569 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 @@ -284,14 +284,8 @@ public function submitUploadForm(array &$form, FormStateInterface $form_state) { // If a managed file has been create to the file's id and rebuild the form. if ($file) { - // Normalize carriage returns. - // This prevent issues with CSV files created in Excel. - $contents = file_get_contents($file->getFileUri()); - $contents = preg_replace('~\R~u', "\r\n", $contents); - file_put_contents($file->getFileUri(), $contents); - $this->importer->setImportUri($file->getFileUri()); - if ($this->importer->getTotal()) { + if ($this->importer->getTotal() > 0) { $form_state->set('import_fid', $file->id()); $form_state->setRebuild(); } @@ -578,7 +572,7 @@ public static function batchSet(WebformInterface $webform, EntityInterface $sour * @param mixed|array $context * The batch current context. */ - public static function batchProcess(WebformInterface $webform, EntityInterface $source_entity = NULL, $import_uri = '', array $import_options = [], &$context) { + public static function batchProcess(WebformInterface $webform, EntityInterface $source_entity = NULL, $import_uri = '', array $import_options = [], array &$context = []) { /** @var \Drupal\webform_submission_export_import\WebformSubmissionExportImportImporterInterface $importer */ $importer = \Drupal::service('webform_submission_export_import.importer'); $importer->setWebform($webform); diff --git a/web/modules/webform/modules/webform_submission_export_import/src/WebformSubmissionExportImportImporter.php b/web/modules/webform/modules/webform_submission_export_import/src/WebformSubmissionExportImportImporter.php index 32e9eaf5d0..9833ca4921 100644 --- a/web/modules/webform/modules/webform_submission_export_import/src/WebformSubmissionExportImportImporter.php +++ b/web/modules/webform/modules/webform_submission_export_import/src/WebformSubmissionExportImportImporter.php @@ -419,8 +419,8 @@ public function import($offset = 0, $limit = NULL) { // Track row specific warnings and errors. $stats['warnings'][$index] = []; $stats['errors'][$index] = []; - $row_warnings =& $stats['warnings'][$index]; - $row_errors =& $stats['errors'][$index]; + $row_warnings = &$stats['warnings'][$index]; + $row_errors = &$stats['errors'][$index]; // Make sure expected number of columns and values are equal. if (count($column_names) !== count($values)) { @@ -572,7 +572,7 @@ protected function importPrepareRecord(array &$record, WebformSubmissionInterfac // Set source entity. // Load or convert the source entity id to an internal ID. - if ($source_entity) { + if ($source_entity && !isset($record['entity_type']) && !isset($record['entity_id'])) { $record['entity_type'] = $source_entity->getEntityTypeId(); $record['entity_id'] = $source_entity->id(); } diff --git a/web/modules/webform/modules/webform_submission_export_import/tests/modules/webform_submission_export_import_test/config/install/webform.webform.test_submission_export_import.yml b/web/modules/webform/modules/webform_submission_export_import/tests/modules/webform_submission_export_import_test/config/install/webform.webform.test_submission_export_import.yml index bc06bfafcb..4c5d00a338 100644 --- a/web/modules/webform/modules/webform_submission_export_import/tests/modules/webform_submission_export_import_test/config/install/webform.webform.test_submission_export_import.yml +++ b/web/modules/webform/modules/webform_submission_export_import/tests/modules/webform_submission_export_import_test/config/install/webform.webform.test_submission_export_import.yml @@ -118,6 +118,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 69e44d4fbe..4c5499e17a 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 971fe0d7ab..bd228b1f9d 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 5a1ac32374..1e9f0327e5 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_contact.yml b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_contact.yml index c737548343..fa78650764 100644 --- a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_contact.yml +++ b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_contact.yml @@ -78,6 +78,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_employee_evaluation.yml b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_employee_evaluation.yml index 2fe81553d5..eb2781d4bf 100644 --- a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_employee_evaluation.yml +++ b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_employee_evaluation.yml @@ -125,6 +125,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_feedback.yml b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_feedback.yml index 80fb843436..fc8c51a62d 100644 --- a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_feedback.yml +++ b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_feedback.yml @@ -83,6 +83,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_issue.yml b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_issue.yml index 75c02c120d..13018cd15e 100644 --- a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_issue.yml +++ b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_issue.yml @@ -166,6 +166,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_job_application.yml b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_job_application.yml index a0017284e3..0af4df911b 100644 --- a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_job_application.yml +++ b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_job_application.yml @@ -126,6 +126,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_job_seeker_profile.yml b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_job_seeker_profile.yml index 2981909513..63bdc4e5dc 100644 --- a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_job_seeker_profile.yml +++ b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_job_seeker_profile.yml @@ -24,7 +24,7 @@ elements: | <li>Providing more information gives a better picture to employers</li> <li>Salary requirements, location preferences and skill level are all important factors in the hiring decision</li> </ul> - + information: '#title': 'Job Seeker Information' '#type': webform_section @@ -126,6 +126,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_medical_appointment.yml b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_medical_appointment.yml index de5dee8b1f..2b58ef54b1 100644 --- a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_medical_appointment.yml +++ b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_medical_appointment.yml @@ -94,7 +94,8 @@ elements: | '#description': | Please select the best days and times for us to call you.<br/> <em>Leave blank if you have no preferences.</em> - '#description_display': 'before' + + '#description_display': before '#multiple__min_items': '3' '#multiple__sorting': false '#multiple__operations': false @@ -156,7 +157,8 @@ elements: | '#description': | Please select the best days and times for us to call the patient.<br/> <em>Leave blank if the patient has no preferences.</em>' - '#description_display': 'before' + + '#description_display': before '#multiple__min_items': '3' '#multiple__sorting': false '#multiple__operations': false @@ -248,6 +250,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_registration.yml b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_registration.yml index 216acf0952..a7a0d19bda 100644 --- a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_registration.yml +++ b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_registration.yml @@ -95,6 +95,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_session_evaluation.yml b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_session_evaluation.yml index 8031aa6a36..777f52b3dd 100644 --- a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_session_evaluation.yml +++ b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_session_evaluation.yml @@ -87,6 +87,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_subscribe.yml b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_subscribe.yml index 0e0c9ef96c..731b1ee950 100644 --- a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_subscribe.yml +++ b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_subscribe.yml @@ -74,6 +74,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_user_profile.yml b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_user_profile.yml index 5273bc7b8a..9259f7ad7b 100644 --- a/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_user_profile.yml +++ b/web/modules/webform/modules/webform_templates/config/install/webform.webform.template_user_profile.yml @@ -168,6 +168,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 671f514611..bef93c36c9 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_toggles/tests/modules/webform_toggles_test/config/install/webform.webform.test_element_toggles.yml b/web/modules/webform/modules/webform_toggles/tests/modules/webform_toggles_test/config/install/webform.webform.test_element_toggles.yml index 093e6f8624..dd01308b75 100644 --- a/web/modules/webform/modules/webform_toggles/tests/modules/webform_toggles_test/config/install/webform.webform.test_element_toggles.yml +++ b/web/modules/webform/modules/webform_toggles/tests/modules/webform_toggles_test/config/install/webform.webform.test_element_toggles.yml @@ -92,6 +92,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 90bf2f4395..5ef48395d5 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 29b53cf933..25000b2cbd 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/modules/webform_ui/src/PathProcessor/WebformUiPathProcessor.php b/web/modules/webform/modules/webform_ui/src/PathProcessor/WebformUiPathProcessor.php index 51e1254bc5..0cebe24e23 100644 --- a/web/modules/webform/modules/webform_ui/src/PathProcessor/WebformUiPathProcessor.php +++ b/web/modules/webform/modules/webform_ui/src/PathProcessor/WebformUiPathProcessor.php @@ -15,7 +15,7 @@ class WebformUiPathProcessor implements OutboundPathProcessorInterface { * {@inheritdoc} */ public function processOutbound($path, &$options = [], Request $request = NULL, BubbleableMetadata $bubbleable_metadata = NULL) { - if (strpos($path, '/webform/') === FALSE || !method_exists($request, 'getQueryString')) { + if (is_null($request) || (strpos($path, '/webform/') === FALSE)) { return $path; } diff --git a/web/modules/webform/modules/webform_ui/tests/src/Functional/WebformUiElementPropertiesTest.php b/web/modules/webform/modules/webform_ui/tests/src/Functional/WebformUiElementPropertiesTest.php index 8016d712c0..a57d55aeff 100644 --- a/web/modules/webform/modules/webform_ui/tests/src/Functional/WebformUiElementPropertiesTest.php +++ b/web/modules/webform/modules/webform_ui/tests/src/Functional/WebformUiElementPropertiesTest.php @@ -59,16 +59,11 @@ public function testElementProperties() { $webform_elements = Webform::load($webform_id); $original_elements = $webform_elements->getElementsDecodedAndFlattened(); foreach ($original_elements as $key => $original_element) { + // Update the element via element edit form. $this->drupalPostForm('/admin/structure/webform/manage/' . $webform_elements->id() . '/element/' . $key . '/edit', [], 'Save'); - // Must reset the webform entity cache so that the update elements can - // be loaded. - \Drupal::entityTypeManager()->getStorage('webform_submission')->resetCache(); - - /** @var \Drupal\webform\WebformInterface $webform_elements */ - $webform_elements = Webform::load($webform_id); - $updated_element = $webform_elements->getElementsDecodedAndFlattened()[$key]; - + // Check that the original and updated element are equal. + $updated_element = $this->reloadWebform($webform_id)->getElementDecoded($key); $this->assertEqual($original_element, $updated_element, "'$key'' properties is equal."); } } diff --git a/web/modules/webform/modules/webform_ui/tests/src/Functional/WebformUiElementTest.php b/web/modules/webform/modules/webform_ui/tests/src/Functional/WebformUiElementTest.php index 7933d3905f..13f0c3dbc3 100644 --- a/web/modules/webform/modules/webform_ui/tests/src/Functional/WebformUiElementTest.php +++ b/web/modules/webform/modules/webform_ui/tests/src/Functional/WebformUiElementTest.php @@ -150,7 +150,7 @@ public function testElements() { 'properties[admin_notes][value]' => 'This is an admin note.', ]; $this->drupalPostForm('/admin/structure/webform/manage/contact/element/name/edit', $edit, 'Save'); - $this->assertRaw('<span data-drupal-selector="edit-webform-ui-elements-name-title-notes" class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">Your Name</div><div class="webform-element-help--content">This is an admin note.</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<span data-drupal-selector="edit-webform-ui-elements-name-title-notes" class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="Your Name" data-webform-help="<div class="webform-element-help--title">Your Name</div><div class="webform-element-help--content">This is an admin note.</div>"><span aria-hidden="true">?</span></span>'); /**************************************************************************/ // CRUD diff --git a/web/modules/webform/modules/webform_ui/tests/src/Unit/WebformUiPathProcessorTest.php b/web/modules/webform/modules/webform_ui/tests/src/Unit/WebformUiPathProcessorTest.php new file mode 100644 index 0000000000..d18e309ddd --- /dev/null +++ b/web/modules/webform/modules/webform_ui/tests/src/Unit/WebformUiPathProcessorTest.php @@ -0,0 +1,76 @@ +<?php + +namespace Drupal\Tests\webform_ui\Unit; + +use Drupal\Tests\UnitTestCase; +use Drupal\webform_ui\PathProcessor\WebformUiPathProcessor; +use Symfony\Component\HttpFoundation\Request; + +/** + * @coversDefaultClass \Drupal\webform_ui\PathProcessor\WebformUiPathProcessor + * @group webform_ui + */ +class WebformUiPathProcessorTest extends UnitTestCase { + + /** + * The path process. + * + * @var \Drupal\webform_ui\PathProcessor\WebformUiPathProcessor + */ + protected $pathProcessor; + + /** + * {@inheritdoc} + */ + public function setUp() { + parent::setUp(); + + $this->pathProcessor = new WebformUiPathProcessor(); + } + + /** + * @covers ::processOutbound + */ + public function testBasicPathsOnly() { + $path = $this->pathProcessor->processOutbound('/node'); + $this->assertEquals('/node', $path); + + $path = $this->pathProcessor->processOutbound('/admin/structure/webform/manage/contact'); + $this->assertEquals('/admin/structure/webform/manage/contact', $path); + } + + /** + * @covers ::processOutbound + */ + public function testUnmatchedQueryString() { + $options = []; + $request = $this->getMockBuilder(Request::class) + ->disableOriginalConstructor() + ->getMock(); + $request->method('getQueryString') + ->willReturn('foo'); + + $path = $this->pathProcessor->processOutbound('/admin/structure/webform/manage/contact', $options, $request); + $this->assertEquals('/admin/structure/webform/manage/contact', $path); + $this->assertArrayNotHasKey('query', $options); + } + + /** + * @covers ::processOutbound + */ + public function testMatchedQueryString() { + $options = []; + $request = $this->getMockBuilder(Request::class) + ->disableOriginalConstructor() + ->getMock(); + $request->method('getQueryString') + ->willReturn('_wrapper_format=drupal_dialog&destination=/admin/structure/webform'); + + $path = $this->pathProcessor->processOutbound('/admin/structure/webform/manage/contact', $options, $request); + $this->assertEquals('/admin/structure/webform/manage/contact', $path); + $this->assertArrayHasKey('query', $options); + $this->assertArrayHasKey('destination', $options['query']); + $this->assertEquals('/admin/structure/webform', $options['query']['destination']); + } + +} 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 c8e2f17f8a..7e6ae4e97c 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/src/Commands/WebformCliService.php b/web/modules/webform/src/Commands/WebformCliService.php index 842543448a..393e4fdf5a 100644 --- a/web/modules/webform/src/Commands/WebformCliService.php +++ b/web/modules/webform/src/Commands/WebformCliService.php @@ -119,6 +119,7 @@ public function webform_drush_command() { 'range-latest' => 'Integer specifying the latest X submissions will be downloaded. Used if "range-type" is "latest" or no other range options are provided.', 'range-start' => 'The submission ID or start date at which to start exporting.', 'range-end' => 'The submission ID or end date at which to end exporting.', + 'uid' => 'The ID of the user who submitted the form.', 'order' => 'The submission order "asc" (default) or "desc".', 'state' => 'Submission state to be included: "completed", "draft" or "all" (default).', 'sticky' => 'Flagged/starred submission status.', @@ -1237,9 +1238,6 @@ protected function drush_webform_composer_set_libraries(&$repositories, &$requir 'url' => $dist_url, 'type' => $dist_type, ], - 'require' => [ - 'composer/installers' => '~1.0', - ], ], ]; diff --git a/web/modules/webform/src/Commands/WebformCommands.php b/web/modules/webform/src/Commands/WebformCommands.php index 32bbb1d957..01dbaacf39 100644 --- a/web/modules/webform/src/Commands/WebformCommands.php +++ b/web/modules/webform/src/Commands/WebformCommands.php @@ -52,6 +52,7 @@ public function drush_webform_export_validate(CommandData $commandData) { * @option range-latest Integer specifying the latest X submissions will be downloaded. Used if "range-type" is "latest" or no other range options are provided. * @option range-start The submission ID or start date at which to start exporting. * @option range-end The submission ID or end date at which to end exporting. + * @option uid The ID of the user who submitted the form. * @option order The submission order "asc" (default) or "desc". * @option state Submission state to be included: "completed", "draft" or "all" (default). * @option sticky Flagged/starred submission status. @@ -59,7 +60,7 @@ public function drush_webform_export_validate(CommandData $commandData) { * @option destination The full path and filename in which the CSV or archive should be stored. If omitted the CSV file or archive will be outputted to the command line. * @aliases wfx,webform-export */ - public function drush_webform_export($webform = NULL, array $options = ['exporter' => NULL, 'delimiter' => NULL, 'multiple-delimiter' => NULL, 'file-name' => NULL, 'archive-type' => NULL, 'header-format' => NULL, 'options-item-format' => NULL, 'options-single-format' => NULL, 'options-multiple-format' => NULL, 'entity-reference-items' => NULL, 'excluded-columns' => NULL, 'uuid' => NULL, 'entity-type' => NULL, 'entity-id' => NULL, 'range-type' => NULL, 'range-latest' => NULL, 'range-start' => NULL, 'range-end' => NULL, 'order' => NULL, 'state' => NULL, 'sticky' => NULL, 'files' => NULL, 'destination' => NULL]) { + public function drush_webform_export($webform = NULL, array $options = ['exporter' => NULL, 'delimiter' => NULL, 'multiple-delimiter' => NULL, 'file-name' => NULL, 'archive-type' => NULL, 'header-format' => NULL, 'options-item-format' => NULL, 'options-single-format' => NULL, 'options-multiple-format' => NULL, 'entity-reference-items' => NULL, 'excluded-columns' => NULL, 'uuid' => NULL, 'entity-type' => NULL, 'entity-id' => NULL, 'range-type' => NULL, 'range-latest' => NULL, 'range-start' => NULL, 'range-end' => NULL, 'uid' => NULL, 'order' => NULL, 'state' => NULL, 'sticky' => NULL, 'files' => NULL, 'destination' => NULL]) { $this->cliService->drush_webform_export($webform); } diff --git a/web/modules/webform/src/Controller/WebformEntityController.php b/web/modules/webform/src/Controller/WebformEntityController.php index f0539b360d..300a3899ae 100644 --- a/web/modules/webform/src/Controller/WebformEntityController.php +++ b/web/modules/webform/src/Controller/WebformEntityController.php @@ -90,11 +90,14 @@ public function addForm(Request $request, WebformInterface $webform) { public function css(Request $request, WebformInterface $webform) { $assets = $webform->getAssets(); if ($webform->access('update')) { - return new WebformUncacheableResponse($assets['css'], 200, ['Content-Type' => 'text/css']); + $response = new WebformUncacheableResponse($assets['css'], 200, ['Content-Type' => 'text/css']); } else { - return new CacheableResponse($assets['css'], 200, ['Content-Type' => 'text/css']); + $response = new CacheableResponse($assets['css'], 200, ['Content-Type' => 'text/css']); } + return $response + ->addCacheableDependency($webform) + ->addCacheableDependency($this->config('webform.settings')); } /** @@ -111,11 +114,14 @@ public function css(Request $request, WebformInterface $webform) { public function javascript(Request $request, WebformInterface $webform) { $assets = $webform->getAssets(); if ($webform->access('update')) { - return new WebformUncacheableResponse($assets['javascript'], 200, ['Content-Type' => 'text/javascript']); + $response = new WebformUncacheableResponse($assets['javascript'], 200, ['Content-Type' => 'text/javascript']); } else { - return new CacheableResponse($assets['javascript'], 200, ['Content-Type' => 'text/javascript']); + $response = new CacheableResponse($assets['javascript'], 200, ['Content-Type' => 'text/javascript']); } + return $response + ->addCacheableDependency($webform) + ->addCacheableDependency($this->config('webform.settings')); } /** diff --git a/web/modules/webform/src/Controller/WebformResultsExportController.php b/web/modules/webform/src/Controller/WebformResultsExportController.php index e422c24694..4573799821 100644 --- a/web/modules/webform/src/Controller/WebformResultsExportController.php +++ b/web/modules/webform/src/Controller/WebformResultsExportController.php @@ -240,7 +240,7 @@ public static function batchSet(WebformInterface $webform, EntityInterface $sour * @param mixed|array $context * The batch current context. */ - public static function batchProcess(WebformInterface $webform, EntityInterface $source_entity = NULL, array $export_options, &$context) { + public static function batchProcess(WebformInterface $webform, EntityInterface $source_entity = NULL, array $export_options = [], array &$context = []) { /** @var \Drupal\webform\WebformSubmissionExporterInterface $submission_exporter */ $submission_exporter = \Drupal::service('webform_submission.exporter'); $submission_exporter->setWebform($webform); diff --git a/web/modules/webform/src/Element/WebformCodeMirror.php b/web/modules/webform/src/Element/WebformCodeMirror.php index 072c081a9e..18958251ab 100644 --- a/web/modules/webform/src/Element/WebformCodeMirror.php +++ b/web/modules/webform/src/Element/WebformCodeMirror.php @@ -162,13 +162,7 @@ public static function validateWebformCodeMirror(&$element, FormStateInterface $ if ($element['#mode'] === 'yaml' && (isset($element['#default_value']) && is_array($element['#default_value']) || $element['#decode_value']) ) { - // Handle rare case where single array value is not parsed correctly. - if (preg_match('/^- (.*?)\s*$/', $element['#value'], $match)) { - $value = [$match[1]]; - } - else { - $value = $element['#value'] ? Yaml::decode($element['#value']) : []; - } + $value = $element['#value'] ? Yaml::decode($element['#value']) : []; $form_state->setValueForElement($element, $value); } } diff --git a/web/modules/webform/src/Element/WebformElementAttributes.php b/web/modules/webform/src/Element/WebformElementAttributes.php index 7e98231642..d8bdea43f6 100644 --- a/web/modules/webform/src/Element/WebformElementAttributes.php +++ b/web/modules/webform/src/Element/WebformElementAttributes.php @@ -156,14 +156,17 @@ public static function validateWebformElementAttributes(&$element, FormStateInte $class_other = $element['class']['other']['#value']; if (isset($class[WebformSelectOther::OTHER_OPTION])) { unset($class[WebformSelectOther::OTHER_OPTION]); - $class[$class_other] = $class_other; + if ($class_other) { + $class_other = preg_split('/[ ]+/', $class_other); + $class += array_combine($class_other, $class_other); + } } if ($class) { $attributes['class'] = array_values($class); } } else { - $attributes['class'] = [$values['class']]; + $attributes['class'] = preg_split('/[ ]+/', $values['class']); } } diff --git a/web/modules/webform/src/Element/WebformEmailConfirm.php b/web/modules/webform/src/Element/WebformEmailConfirm.php index 96f667697c..65fc760fc7 100644 --- a/web/modules/webform/src/Element/WebformEmailConfirm.php +++ b/web/modules/webform/src/Element/WebformEmailConfirm.php @@ -167,10 +167,10 @@ public static function processWebformEmailConfirm(&$element, FormStateInterface */ public static function validateWebformEmailConfirm(&$element, FormStateInterface $form_state, &$complete_form) { if (isset($element['flexbox'])) { - $mail_element =& $element['flexbox']; + $mail_element = &$element['flexbox']; } else { - $mail_element =& $element; + $mail_element = &$element; } $mail_1 = trim($mail_element['mail_1']['#value']); diff --git a/web/modules/webform/src/Element/WebformEntityTrait.php b/web/modules/webform/src/Element/WebformEntityTrait.php index 4decb37d20..090e511396 100644 --- a/web/modules/webform/src/Element/WebformEntityTrait.php +++ b/web/modules/webform/src/Element/WebformEntityTrait.php @@ -2,6 +2,7 @@ namespace Drupal\webform\Element; +use Drupal\Core\Cache\Cache; use Drupal\Core\Form\OptGroup; use Drupal\webform\Utility\WebformOptionsHelper; @@ -90,6 +91,30 @@ public static function setOptions(array &$element, array $settings = []) { $options = WebformOptionsHelper::decodeOptions($options); $element['#options'] = $options; + + static::setCacheTags($element, $element['#target_type'], $selection_settings['target_bundles'] ?? []); + } + + /** + * Set the corresponding entity cache tags on the element + * + * @param array $element + * An element + * @param string $target_type + * The target type id + * @param array $target_bundles + * The target bundle ids + */ + protected static function setCacheTags(array &$element, $target_type, array $target_bundles = []) { + $list_cache_tag = sprintf('%s_list', $target_type); + + if (empty($target_bundles)) { + $element['#cache']['tags'] = Cache::mergeTags($element['#cache']['tags'] ?? [], [$list_cache_tag]); + return; + } + + $tags = Cache::buildTags($list_cache_tag, $target_bundles); + $element['#cache']['tags'] = Cache::mergeTags($element['#cache']['tags'] ?? [], $tags); } /** diff --git a/web/modules/webform/src/Element/WebformHeight.php b/web/modules/webform/src/Element/WebformHeight.php index 9811fe2550..e41ff0086c 100644 --- a/web/modules/webform/src/Element/WebformHeight.php +++ b/web/modules/webform/src/Element/WebformHeight.php @@ -231,7 +231,7 @@ public static function processWebformHeight(&$element, FormStateInterface $form_ * Validates an height element. */ public static function validateWebformHeight(&$element, FormStateInterface $form_state, &$complete_form) { - $height_element =& $element['container']; + $height_element = &$element['container']; if ($height_element['feet']['#value'] === '' && $height_element['inches']['#value'] === '') { $value = ''; diff --git a/web/modules/webform/src/Element/WebformLikert.php b/web/modules/webform/src/Element/WebformLikert.php index 4970c1ad0b..cbfcaa9116 100644 --- a/web/modules/webform/src/Element/WebformLikert.php +++ b/web/modules/webform/src/Element/WebformLikert.php @@ -328,7 +328,7 @@ public static function setRequiredError(array &$element, FormStateInterface $for $value = $element['#value']; foreach ($element['#questions'] as $question_key => $question_title) { if (is_null($value[$question_key])) { - $question_element =& $element['table'][$question_key]['likert_question']; + $question_element = &$element['table'][$question_key]['likert_question']; $t_args = ['@name' => $question_title]; if (!empty($element['#required_error'])) { $form_state->setError($question_element, new FormattableMarkup($element['#required_error'], $t_args)); diff --git a/web/modules/webform/src/Element/WebformMessage.php b/web/modules/webform/src/Element/WebformMessage.php index e0b574d8de..826af585e4 100644 --- a/web/modules/webform/src/Element/WebformMessage.php +++ b/web/modules/webform/src/Element/WebformMessage.php @@ -150,7 +150,18 @@ public static function preRenderWebformMessage(array $element) { ], ]; + // Attach message styles and JavaScript. $element['#attached']['library'][] = 'webform/webform.element.message'; + + // Attach info message styles. + // Gin theme declares the message info style, which is not included in core. + /** @var \Drupal\webform\WebformThemeManagerInterface $theme_manager */ + $theme_manager = \Drupal::service('webform.theme_manager'); + $is_gin_theme = $theme_manager->isActiveTheme('gin'); + if ($message_type === 'info' && !$is_gin_theme) { + $element['#attached']['library'][] = 'webform/webform.element.message.info'; + } + return $element; } diff --git a/web/modules/webform/src/Element/WebformMultiple.php b/web/modules/webform/src/Element/WebformMultiple.php index a6f22a358e..d4d61c3ea5 100644 --- a/web/modules/webform/src/Element/WebformMultiple.php +++ b/web/modules/webform/src/Element/WebformMultiple.php @@ -35,9 +35,9 @@ public function getInfo() { '#header_label' => '', '#element' => [ '#type' => 'textfield', - '#title' => t('Item value'), + '#title' => $this->t('Item value'), '#title_display' => 'invisible', - '#placeholder' => t('Enter value…'), + '#placeholder' => $this->t('Enter value…'), ], '#cardinality' => FALSE, '#min_items' => NULL, @@ -362,7 +362,7 @@ protected static function initializeElementRecursive(array $element, FormStateIn /** @var \Drupal\webform\Plugin\WebformElementManagerInterface $element_manager */ $element_manager = \Drupal::service('plugin.manager.webform.element'); foreach ($child_keys as $child_key) { - $sub_element =& $sub_elements[$child_key]; + $sub_element = &$sub_elements[$child_key]; $element_plugin = $element_manager->getElementInstance($sub_element); diff --git a/web/modules/webform/src/Entity/Webform.php b/web/modules/webform/src/Entity/Webform.php index 0197e749e0..eeb23dc50c 100644 --- a/web/modules/webform/src/Entity/Webform.php +++ b/web/modules/webform/src/Entity/Webform.php @@ -56,6 +56,7 @@ * "add" = "Drupal\webform\WebformEntityAddForm", * "duplicate" = "Drupal\webform\WebformEntityAddForm", * "delete" = "Drupal\webform\WebformEntityDeleteForm", + * "delete-multiple-confirm" = "Drupal\webform\Form\WebformEntityDeleteMultipleForm", * "edit" = "Drupal\webform\WebformEntityElementsForm", * "export" = "Drupal\webform\WebformEntityExportForm", * "settings" = "Drupal\webform\EntitySettings\WebformEntitySettingsGeneralForm", @@ -84,6 +85,7 @@ * "test-form" = "/webform/{webform}/test", * "duplicate-form" = "/admin/structure/webform/manage/{webform}/duplicate", * "delete-form" = "/admin/structure/webform/manage/{webform}/delete", + * "delete-multiple-form" = "/admin/structure/webform/delete", * "export-form" = "/admin/structure/webform/manage/{webform}/export", * "settings" = "/admin/structure/webform/manage/{webform}/settings", * "settings-form" = "/admin/structure/webform/manage/{webform}/settings/form", @@ -716,9 +718,7 @@ public function hasRemoteAddr() { * {@inheritdoc} */ public function isResultsDisabled() { - $elements = $this->getElementsDecoded(); - $settings = $this->getSettings(); - return (!empty($settings['results_disabled']) || !empty($elements['#method'])) ? TRUE : FALSE; + return ($this->getSetting('results_disabled') || $this->getSetting('form_method')) ? TRUE : FALSE; } /** @@ -1099,6 +1099,9 @@ public static function getDefaultSettings() { 'form_access_denied_message' => '', 'form_access_denied_attributes' => [], 'form_file_limit' => '', + 'form_method' => '', + 'form_action' => '', + 'form_attributes' => [], 'share' => FALSE, 'share_node' => FALSE, 'share_theme_name' => '', @@ -1677,7 +1680,7 @@ protected function initElementsRecursive(array &$elements, $parent = '', $depth $element['#webform_composite'] = FALSE; if (!empty($parent)) { - $parent_element =& $this->elementsInitializedAndFlattened[$parent]; + $parent_element = &$this->elementsInitializedAndFlattened[$parent]; // Add element to the parent element's children. $parent_element['#webform_children'][$key] = $key; // Set #parent_flexbox to TRUE is the parent element is a diff --git a/web/modules/webform/src/Entity/WebformOptions.php b/web/modules/webform/src/Entity/WebformOptions.php index 17717b0a64..286782234e 100644 --- a/web/modules/webform/src/Entity/WebformOptions.php +++ b/web/modules/webform/src/Entity/WebformOptions.php @@ -6,6 +6,7 @@ use Drupal\Core\Config\Entity\ConfigEntityBase; use Drupal\Core\Entity\EntityStorageInterface; use Drupal\Core\StringTranslation\StringTranslationTrait; +use Drupal\webform\Utility\WebformElementHelper; use Drupal\webform\Utility\WebformOptionsHelper; use Drupal\webform\Utility\WebformYaml; use Drupal\webform\WebformOptionsInterface; @@ -201,6 +202,20 @@ public static function sort(ConfigEntityInterface $a, ConfigEntityInterface $b) return strnatcasecmp($a_label, $b_label); } + /** + * {@inheritdoc} + */ + public function createDuplicate() { + $duplicate = parent::createDuplicate(); + if (!$this->options) { + $element = ['#options' => $this->id()]; + $options = static::getElementOptions($element); + WebformElementHelper::convertRenderMarkupToStrings($options); + $duplicate->setOptions($options); + } + return $duplicate; + } + /** * {@inheritdoc} */ diff --git a/web/modules/webform/src/EntitySettings/WebformEntitySettingsBaseForm.php b/web/modules/webform/src/EntitySettings/WebformEntitySettingsBaseForm.php index 677e62e8f3..70d43b14cf 100644 --- a/web/modules/webform/src/EntitySettings/WebformEntitySettingsBaseForm.php +++ b/web/modules/webform/src/EntitySettings/WebformEntitySettingsBaseForm.php @@ -135,9 +135,10 @@ protected function appendBehaviors(array &$element, array $behavior_elements, ar $group = (string) $behavior_element['group']; if (!isset($element[$group])) { $element[$group] = [ + '#type' => 'container', + '#prefix' => '<strong>', + '#suffix' => '</strong>', '#markup' => $group, - '#prefix' => '<div><strong>', - '#suffix' => '</strong></div>', '#weight' => $weight, ]; $weight += 10; diff --git a/web/modules/webform/src/EntitySettings/WebformEntitySettingsFormForm.php b/web/modules/webform/src/EntitySettings/WebformEntitySettingsFormForm.php index 4e06b3d73f..0e301f1c26 100644 --- a/web/modules/webform/src/EntitySettings/WebformEntitySettingsFormForm.php +++ b/web/modules/webform/src/EntitySettings/WebformEntitySettingsFormForm.php @@ -151,17 +151,16 @@ public function form(array $form, FormStateInterface $form_state) { '#default_value' => $settings['form_exception_message'], ]; $form['form_settings']['token_tree_link'] = $this->tokenManager->buildTreeElement(); - $form['form_settings']['form_attributes'] = [ + $form['form_settings']['form_attributes_container'] = [ '#type' => 'details', '#title' => $this->t('Form attributes'), '#open' => TRUE, ]; - $elements = $webform->getElementsDecoded(); - $form['form_settings']['form_attributes']['attributes'] = [ + $form['form_settings']['form_attributes_container']['form_attributes'] = [ '#type' => 'webform_element_attributes', '#title' => $this->t('Form'), '#classes' => $this->config('webform.settings')->get('settings.form_classes'), - '#default_value' => (isset($elements['#attributes'])) ? $elements['#attributes'] : [], + '#default_value' => $settings['form_attributes'] ?: [], ]; // Form behaviors. @@ -282,6 +281,15 @@ public function form(array $form, FormStateInterface $form_state) { ]; // Wizard settings. + $wizards_progress_checked_states = [ + 'visible' => [ + [':input[name="wizard_progress_bar"]' => ['checked' => TRUE]], + 'or', + [':input[name="wizard_progress_pages"]' => ['checked' => TRUE]], + 'or', + [':input[name="wizard_progress_percentage"]' => ['checked' => TRUE]], + ], + ]; $form['wizard_settings'] = [ '#type' => 'details', '#title' => $this->t('Form wizard settings'), @@ -292,6 +300,13 @@ public function form(array $form, FormStateInterface $form_state) { ], ], ]; + // Wizard settings: Progress. + $form['wizard_settings']['wizard_progress_title'] = [ + '#type' => 'container', + '#prefix' => '<strong>', + '#suffix' => '</strong>', + '#markup' => $this->t('Progress'), + ]; $form['wizard_settings']['wizard_progress_bar'] = [ '#type' => 'checkbox', '#title' => $this->t('Show wizard progress bar'), @@ -344,6 +359,15 @@ public function form(array $form, FormStateInterface $form_state) { '#description' => $this->t("If checked, the wizard's progress bar's pages will be hidden or shown based on each pages conditional logic."), '#return_value' => TRUE, '#default_value' => $settings['wizard_progress_states'], + '#states' => $wizards_progress_checked_states, + ]; + // Wizard settings: Navigation. + $form['wizard_settings']['wizard_navigation_title'] = [ + '#type' => 'container', + '#prefix' => '<strong>', + '#suffix' => '</strong>', + '#markup' => $this->t('Navigation'), + '#access' => FALSE, ]; $form['wizard_settings']['wizard_auto_forward'] = [ '#type' => 'checkbox', @@ -374,22 +398,21 @@ public function form(array $form, FormStateInterface $form_state) { '#default_value' => $settings['wizard_keyboard'], '#access' => FALSE, ]; - + // Wizard settings: Pages. + $form['wizard_settings']['wizard_pages_title'] = [ + '#type' => 'container', + '#prefix' => '<strong>', + '#suffix' => '</strong>', + '#markup' => $this->t('Pages'), + '#states' => $wizards_progress_checked_states, + ]; $form['wizard_settings']['wizard_confirmation'] = [ '#type' => 'checkbox', '#title' => $this->t('Include confirmation page in progress'), '#description' => $this->t("If checked, the confirmation page will be included in the progress bar."), '#return_value' => TRUE, '#default_value' => $settings['wizard_confirmation'], - '#states' => [ - 'visible' => [ - [':input[name="wizard_progress_bar"]' => ['checked' => TRUE]], - 'or', - [':input[name="wizard_progress_pages"]' => ['checked' => TRUE]], - 'or', - [':input[name="wizard_progress_percentage"]' => ['checked' => TRUE]], - ], - ], + '#states' => $wizards_progress_checked_states, ]; $form['wizard_settings']['wizard_toggle'] = [ '#type' => 'checkbox', @@ -399,6 +422,13 @@ public function form(array $form, FormStateInterface $form_state) { '#default_value' => $settings['wizard_auto_forward'], '#access' => FALSE, ]; + // Wizard settings: Labels. + $form['wizard_settings']['wizard_labels_title'] = [ + '#type' => 'container', + '#prefix' => '<strong>', + '#suffix' => '</strong>', + '#markup' => $this->t('Labels'), + ]; $form['wizard_settings']['wizard_toggle_show_label'] = [ '#type' => 'textfield', '#title' => $this->t('Wizard show all elements label'), @@ -442,17 +472,6 @@ public function form(array $form, FormStateInterface $form_state) { ], ], ]; - $form['wizard_settings']['wizard_track'] = [ - '#type' => 'select', - '#title' => $this->t('Track wizard progress in the URL by'), - '#description' => $this->t("Progress tracking allows analytic software to capture a multi-step form's progress."), - '#options' => [ - 'name' => $this->t("Page name (?page=contact)"), - 'index' => $this->t("Page index (?page=2)"), - ], - '#empty_option' => $this->t('- None -'), - '#default_value' => $settings['wizard_track'], - ]; $form['wizard_settings']['wizard_prev_button_label'] = [ '#type' => 'textfield', '#title' => $this->t('Wizard previous page button label'), @@ -467,7 +486,24 @@ public function form(array $form, FormStateInterface $form_state) { '#size' => 20, '#default_value' => $settings['wizard_next_button_label'], ]; - + // Wizard settings: Track. + $form['wizard_settings']['wizard_track_title'] = [ + '#type' => 'container', + '#prefix' => '<strong>', + '#suffix' => '</strong>', + '#markup' => $this->t('Tracking'), + ]; + $form['wizard_settings']['wizard_track'] = [ + '#type' => 'select', + '#title' => $this->t('Track wizard progress in the URL by'), + '#description' => $this->t("Progress tracking allows analytic software to capture a multi-step form's progress."), + '#options' => [ + 'name' => $this->t("Page name (?page=contact)"), + 'index' => $this->t("Page index (?page=2)"), + ], + '#empty_option' => $this->t('- None -'), + '#default_value' => $settings['wizard_track'], + ]; // Preview settings. $form['preview_settings'] = [ '#type' => 'details', @@ -573,28 +609,24 @@ public function form(array $form, FormStateInterface $form_state) { // Custom settings. $properties = WebformElementHelper::getProperties($webform->getElementsDecoded()); - // Set default properties. - $properties += [ - '#method' => '', - '#action' => '', - ]; $form['custom_settings'] = [ '#type' => 'details', '#title' => $this->t('Form custom settings'), - '#open' => array_filter($properties) ? TRUE : FALSE, + '#open' => (array_filter($properties) || $settings['form_method']) ? TRUE : FALSE, '#access' => !$this->moduleHandler->moduleExists('webform_ui') || $this->currentUser()->hasPermission('edit webform source'), ]; - $form['custom_settings']['method'] = [ + $form['custom_settings']['form_method'] = [ '#type' => 'select', '#title' => $this->t('Form method'), - '#description' => $this->t('The HTTP method with which the form will be submitted.') . '<br /><br />' . - '<em>' . $this->t('Selecting a custom POST or GET method will automatically disable wizards, previews, drafts, submissions, limits, purging, confirmations, emails, computed elements, and handlers.') . '</em>', + '#description' => $this->t('The HTTP method with which the form will be submitted.') + . '<br /><br />' + . '<em>' . $this->t('Selecting a custom POST or GET method will automatically disable wizards, previews, drafts, submissions, limits, purging, confirmations, emails, computed elements, and handlers.') . '</em>', '#options' => [ '' => $this->t('POST (Default)'), 'post' => $this->t('POST (Custom)'), 'get' => $this->t('GET (Custom)'), ], - '#default_value' => $properties['#method'], + '#default_value' => $settings['form_method'], ]; $form['custom_settings']['method_message'] = [ '#type' => 'webform_message', @@ -606,36 +638,27 @@ public function form(array $form, FormStateInterface $form_state) { ], ], ]; - - $form['custom_settings']['action'] = [ + $form['custom_settings']['form_action'] = [ '#type' => 'textfield', '#title' => $this->t('Form action'), '#description' => $this->t('The URL or path to which the webform will be submitted.'), '#states' => [ 'invisible' => [ - ':input[name="method"]' => ['value' => ''], + ':input[name="form_method"]' => ['value' => ''], ], 'optional' => [ - ':input[name="method"]' => ['value' => ''], + ':input[name="form_method"]' => ['value' => ''], ], ], - '#default_value' => $properties['#action'], + '#default_value' => $settings['form_action'], ]; - // Unset properties that are webform settings. - unset( - $properties['#method'], - $properties['#action'], - $properties['#novalidate'], - $properties['#attributes'] - ); $form['custom_settings']['custom'] = [ '#type' => 'webform_codemirror', '#mode' => 'yaml', '#title' => $this->t('Form custom properties'), - '#description' => - $this->t('Properties do not have to prepended with a hash (#) character, the hash character will be automatically added to the custom properties.') . - '<br /><br />' . - $this->t('These properties and callbacks are not allowed: @properties.', ['@properties' => WebformArrayHelper::toString(WebformArrayHelper::addPrefix(WebformElementHelper::$ignoredProperties))]), + '#description' => $this->t('Properties do not have to prepended with a hash (#) character, the hash character will be automatically added to the custom properties.') + . '<br /><br />' + . $this->t('These properties and callbacks are not allowed: @properties.', ['@properties' => WebformArrayHelper::toString(WebformArrayHelper::addPrefix(WebformElementHelper::$ignoredProperties))]), '#default_value' => WebformArrayHelper::removePrefix($properties), ]; @@ -690,44 +713,16 @@ public function save(array $form, FormStateInterface $form_state) { $elements = WebformElementHelper::removeProperties($elements); $properties = []; - - // Unset custom method and action. - unset( - $properties['#method'], - $properties['#action'] - ); - - // Set custom method and action. - if (!empty($values['method'])) { - $properties['#method'] = $values['method']; - if (!empty($values['action'])) { - $properties['#action'] = $values['action']; - } - } - // Set custom properties. if (!empty($values['custom'])) { $properties += WebformArrayHelper::addPrefix($values['custom']); } - - // Set custom attributions. - if (!empty($values['attributes'])) { - $properties['#attributes'] = $values['attributes']; - } - - // Prepend form properties to elements. + // Prepend custom form properties to elements. $elements = $properties + $elements; - // Save elements. $webform->setElements($elements); - - // Remove custom properties and attributes. - unset( - $values['method'], - $values['action'], - $values['attributes'], - $values['custom'] - ); + // Remove custom properties. + unset($values['custom']); // Remove main properties. unset( diff --git a/web/modules/webform/src/Form/AdminConfig/WebformAdminConfigBaseForm.php b/web/modules/webform/src/Form/AdminConfig/WebformAdminConfigBaseForm.php index f7d984ad73..49f9186618 100644 --- a/web/modules/webform/src/Form/AdminConfig/WebformAdminConfigBaseForm.php +++ b/web/modules/webform/src/Form/AdminConfig/WebformAdminConfigBaseForm.php @@ -3,11 +3,13 @@ namespace Drupal\webform\Form\AdminConfig; use Drupal\Component\Plugin\PluginManagerInterface; +use Drupal\Component\Utility\NestedArray; use Drupal\Core\Form\ConfigFormBase; use Drupal\Core\Form\FormStateInterface; use Drupal\webform\Plugin\WebformElement\TableSelect; use Drupal\webform\Plugin\WebformElementManagerInterface; use Drupal\webform\Plugin\WebformHandlerManager; +use Drupal\webform\Utility\WebformElementHelper; /** * Base webform admin settings form. @@ -32,6 +34,100 @@ public function submitForm(array &$form, FormStateInterface $form_state) { parent::submitForm($form, $form_state); } + /** + * Build bulk operation settings for webforms and submissions. + * + * @param array $settings + * Webform settings. + * @param $entity_type_id + * The entity type id. (webform or webform_submission) + * + * @return array + */ + protected function buildBulkOperations(array $settings, $entity_type_id) { + $element = [ + '#type' => 'details', + '#title' => ($entity_type_id === 'webform_submission') + ? $this->t('Submissions bulk operations settings') + : $this->t('Form bulk operations settings'), + '#open' => TRUE, + '#tree' => TRUE, + ]; + + // Enable. + $settings += [ + $entity_type_id . '_bulk_form' => TRUE, + ]; + $element[$entity_type_id . '_bulk_form'] = [ + '#type' => 'checkbox', + '#title' => $this->t('Enabled webform bulk operations'), + '#description' => ($entity_type_id === 'webform_submission') + ? $this->t('If checked, bulk operations will be displayed on the submission results page.') + : $this->t('If checked, bulk operations will be displayed on the form manager page.'), + '#return_value' => TRUE, + '#default_value' => $settings[$entity_type_id . '_bulk_form'], + ]; + + // Actions. + $options = []; + $default_actions = []; + /** @var \Drupal\system\ActionConfigEntityInterface[] $actions */ + $actions = \Drupal::entityTypeManager()->getStorage('action')->loadMultiple(); + foreach ($actions as $action) { + if ($action->getType() === $entity_type_id) { + $options[$action->id()] = ['label' => $action->label()]; + $default_actions[] = $action->id(); + } + } + $settings += [ + $entity_type_id . '_bulk_form_actions' => $default_actions, + ]; + $element[$entity_type_id . '_bulk_form_actions'] = [ + '#type' => 'webform_tableselect_sort', + '#title' => ($entity_type_id === 'webform_submission') + ? $this->t('Submissions selected actions') + : $this->t('Form selected actions'), + '#header' => ['label' => $this->t('Selected actions')], + '#options' => $options, + '#default_value' => array_combine( + $settings[$entity_type_id . '_bulk_form_actions'], + $settings[$entity_type_id . '_bulk_form_actions'] + ), + '#states' => [ + 'visible' => [ + ':input[name="bulk_form_settings[' . $entity_type_id . '_bulk_form]"]' => ['checked' => TRUE], + ], + 'required' => [ + ':input[name="bulk_form_settings[' . $entity_type_id . '_bulk_form]"]' => ['checked' => TRUE], + ], + ], + '#element_validate' => [[get_class($this), 'validateBulkFormActions']], + ]; + WebformElementHelper::fixStatesWrapper($element[$entity_type_id . '_bulk_form_actions']); + + return $element; + } + + /** + * Form API callback. Validate bulk form actions. + */ + public static function validateBulkFormActions(array &$element, FormStateInterface $form_state) { + $actions_value = NestedArray::getValue($form_state->getValues(), $element['#parents']); + + $enabled_parents = $element['#parents']; + $enabled_parents[1] = str_replace('_actions', '', $enabled_parents[1]); + $enabled_value = NestedArray::getValue($form_state->getValues(), $enabled_parents); + + if (!empty($enabled_value) && empty($actions_value)) { + $form_state->setErrorByName(NULL, t('@name field is required.', ['@name' => $element['#title']])); + } + + // Convert actions associative array of values to an indexed array. + $actions_value = array_values($actions_value); + $element['#value'] = $actions_value; + $form_state->setValueForElement($element, $actions_value); + } + /****************************************************************************/ // Exclude plugins. /****************************************************************************/ diff --git a/web/modules/webform/src/Form/AdminConfig/WebformAdminConfigFormsForm.php b/web/modules/webform/src/Form/AdminConfig/WebformAdminConfigFormsForm.php index 2d99fee89d..2ac78b416d 100644 --- a/web/modules/webform/src/Form/AdminConfig/WebformAdminConfigFormsForm.php +++ b/web/modules/webform/src/Form/AdminConfig/WebformAdminConfigFormsForm.php @@ -93,6 +93,19 @@ public function buildForm(array $form, FormStateInterface $form_state) { '#open' => TRUE, '#tree' => TRUE, ]; + $form['filter_settings']['limit'] = [ + '#type' => 'select', + '#title' => $this->t('Webforms per page'), + '#options' => [ + '10' => '10', + '20' => '20', + '30' => '30', + '40' => '40', + '50' => '50', + ], + '#parents' => ['form', 'limit'], + '#default_value' => $config->get('form.limit') ?: 50, + ]; $form['filter_settings']['filter_category'] = [ '#type' => 'select', '#title' => $this->t('Filter webforms default category'), @@ -526,6 +539,9 @@ public function buildForm(array $form, FormStateInterface $form_state) { '#default_value' => $settings['default_share_theme_name'], ]; + // Bulk operation settings. + $form['bulk_form_settings'] = $this->buildBulkOperations($settings, 'webform'); + // Dialog settings. $form['dialog_settings'] = [ '#type' => 'details', @@ -694,6 +710,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) { + $form_state->getValue('confirmation_settings') + $form_state->getValue('share_settings') + $form_state->getValue('ajax_settings') + + $form_state->getValue('bulk_form_settings') + $form_state->getValue('dialog_settings'); // Track if we need to trigger an update of all webform paths diff --git a/web/modules/webform/src/Form/AdminConfig/WebformAdminConfigSubmissionsForm.php b/web/modules/webform/src/Form/AdminConfig/WebformAdminConfigSubmissionsForm.php index 7d00a99519..c33a789d9e 100644 --- a/web/modules/webform/src/Form/AdminConfig/WebformAdminConfigSubmissionsForm.php +++ b/web/modules/webform/src/Form/AdminConfig/WebformAdminConfigSubmissionsForm.php @@ -216,6 +216,9 @@ public function buildForm(array $form, FormStateInterface $form_state) { '#description' => $this->t('Enter the amount of submissions to be purged during single cron run. You may want to lower this number if you are facing memory or timeout issues when purging via cron.'), ]; + // Bulk operation settings. + $form['bulk_form_settings'] = $this->buildBulkOperations($settings, 'webform_submission'); + // Submission views. $form['views_settings'] = [ '#type' => 'details', @@ -256,6 +259,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) { + $form_state->getValue('submission_behaviors') + $form_state->getValue('submission_limits') + $form_state->getValue('draft_settings') + + $form_state->getValue('bulk_form_settings') + $form_state->getValue('views_settings'); // Update config and submit form. diff --git a/web/modules/webform/src/Form/WebformAjaxFormTrait.php b/web/modules/webform/src/Form/WebformAjaxFormTrait.php index 422c53c3d2..1d2d9962ac 100644 --- a/web/modules/webform/src/Form/WebformAjaxFormTrait.php +++ b/web/modules/webform/src/Form/WebformAjaxFormTrait.php @@ -135,7 +135,7 @@ protected function buildAjaxForm(array &$form, FormStateInterface $form_state, a continue; } - $actions =& $form[$element_key]; + $actions = &$form[$element_key]; foreach (Element::children($actions) as $action_key) { if (WebformElementHelper::isType($actions[$action_key], 'submit')) { $actions[$action_key]['#ajax'] = [ @@ -161,9 +161,11 @@ protected function buildAjaxForm(array &$form, FormStateInterface $form_state, a $wrapper_attributes = new Attribute($wrapper_attributes); $form['#form_wrapper_id'] = $wrapper_id; - $form['#prefix'] = '<span id="' . $wrapper_id . '-content"></span>'; + + $form += ['#prefix' => '', '#suffix' => '']; + $form['#prefix'] .= '<span id="' . $wrapper_id . '-content"></span>'; $form['#prefix'] .= '<div' . $wrapper_attributes . '>'; - $form['#suffix'] = '</div>'; + $form['#suffix'] = '</div>' . $form['#suffix']; // Add Ajax library which contains 'Scroll to top' Ajax command and // Ajax callback for confirmation back to link. diff --git a/web/modules/webform/src/Form/WebformBulkFormBase.php b/web/modules/webform/src/Form/WebformBulkFormBase.php new file mode 100644 index 0000000000..e87f45c92e --- /dev/null +++ b/web/modules/webform/src/Form/WebformBulkFormBase.php @@ -0,0 +1,206 @@ +<?php + +namespace Drupal\webform\Form; + +use Drupal\Core\Form\FormBase; +use Drupal\Core\Form\FormStateInterface; +use Symfony\Component\DependencyInjection\ContainerInterface; + +/** + * Provides the webform bulk form base. + * + * @see \Drupal\views\Plugin\views\field\BulkForm + */ +abstract class WebformBulkFormBase extends FormBase { + + /** + * The tempstore factory. + * + * @var \Drupal\Core\TempStore\PrivateTempStoreFactory + */ + protected $tempStoreFactory; + + /** + * The current user. + * + * @var \Drupal\Core\Session\AccountInterface + */ + protected $currentUser; + + /** + * The entity manager. + * + * @var \Drupal\Core\Entity\EntityTypeManagerInterface + */ + protected $entityTypeManager; + + /** + * The entity type. + * + * @var string + */ + protected $entityTypeId; + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + $instance = parent::create($container); + $instance->tempStoreFactory = $container->get('tempstore.private'); + $instance->currentUser = $container->get('current_user'); + $instance->entityTypeManager = $container->get('entity_type.manager'); + return $instance; + } + + /** + * {@inheritdoc} + */ + public function getFormId() { + return $this->entityTypeId . '_bulk_form'; + } + + /** + * {@inheritdoc} + */ + public function buildForm(array $form, FormStateInterface $form_state, $table = []) { + $form['#attributes']['class'][] = 'webform-bulk-form'; + + $options = $this->getBulkOptions(); + if (empty($options) ) { + return ['items' => $table]; + } + + // Operations. + $form['operations'] = [ + '#prefix' => '<div class="container-inline">', + '#suffix' => '</div>', + ]; + $form['operations']['action'] = [ + '#type' => 'select', + '#title' => $this->t('Action'), + '#title_display' => 'invisible', + '#options' => $this->getBulkOptions(), + '#empty_option' => $this->t('- Select operation -'), + ]; + $form['operations']['apply_above'] = [ + '#type' => 'submit', + '#value' => $this->t('Apply to selected items'), + ]; + + // Table select. + $form['items'] = $table; + $form['items']['#type'] = 'tableselect'; + $form['items']['#options'] = $table['#rows']; + + $form['apply_below'] = [ + '#type' => 'submit', + '#value' => $this->t('Apply to selected items'), + ]; + return $form; + } + + /** + * {@inheritdoc} + */ + public function validateForm(array &$form, FormStateInterface $form_state) { + $action = $form_state->getValue('action'); + if (empty($action)) { + $form_state->setErrorByName(NULL, $this->t('No operation selected.')); + } + $entity_ids = array_filter($form_state->getValue('items')); + if (empty($entity_ids)) { + $form_state->setErrorByName(NULL, $this->t('No items selected.')); + } + } + + /** + * {@inheritdoc} + */ + public function submitForm(array &$form, FormStateInterface $form_state) { + $actions = $this->getActions(); + // If the action does exist, skip it and assume that someone has altered + // the form and added a custom action. + if (!isset($actions[$form_state->getValue('action')])) { + return; + } + + $action = $actions[$form_state->getValue('action')]; + + $entity_ids = array_filter($form_state->getValue('items')); + $entities = $this->entityTypeManager->getStorage($this->entityTypeId)->loadMultiple($entity_ids); + foreach ($entities as $key => $entity) { + // Skip execution if the user did not have access. + if (!$action->getPlugin()->access($entity, $this->currentUser())) { + $this->messenger()->addError($this->t('No access to execute %action on the @entity_type_label %entity_label.', [ + '%action' => $action->label(), + '@entity_type_label' => $entity->getEntityType()->getLabel(), + '%entity_label' => $entity->label(), + ])); + unset($entities[$key]); + continue; + } + } + + $count = count($entities); + + // If there were entities selected but the action isn't allowed on any of + // them, we don't need to do anything further. + if (!$count) { + return; + } + + $action->execute($entities); + + $operation_definition = $action->getPluginDefinition(); + if (!empty($operation_definition['confirm_form_route_name'])) { + $options = [ + 'query' => $this->getDestinationArray(), + ]; + $form_state->setRedirect($operation_definition['confirm_form_route_name'], [], $options); + } + else { + // Don't display the message unless there are some elements affected and + // there is no confirmation form. + $this->messenger()->addStatus($this->formatPlural($count, '%action was applied to @count item.', '%action was applied to @count items.', [ + '%action' => $action->label(), + ])); + } + } + + /** + * Get the entity type's actions + * + * @return \Drupal\system\ActionConfigEntityInterface[] + * An associative array of actions. + */ + protected function getActions() { + if (!isset($this->actions)) { + $this->actions = []; + $action_ids = $this->configFactory()->get('webform.settings')->get('settings.' . $this->entityTypeId . '_bulk_form_actions') ?: []; + if ($action_ids) { + /** @var \Drupal\system\ActionConfigEntityInterface[] $actions */ + $actions = $this->entityTypeManager->getStorage('action')->loadMultiple($action_ids); + $this->actions = array_filter($actions, function ($action) { + return $action->getType() === $this->entityTypeId; + }); + } + } + return $this->actions; + } + + /** + * Returns the available operations for this form. + * + * @return array + * An associative array of operations, suitable for a select element. + */ + protected function getBulkOptions() { + $actions = $this->getActions(); + $options = []; + foreach ($actions as $id => $action) { + $options[$id] = $action->label(); + } + return $options; + } + +} diff --git a/web/modules/webform/src/Form/WebformDeleteMultipleFormBase.php b/web/modules/webform/src/Form/WebformDeleteMultipleFormBase.php new file mode 100644 index 0000000000..e45493d5f2 --- /dev/null +++ b/web/modules/webform/src/Form/WebformDeleteMultipleFormBase.php @@ -0,0 +1,110 @@ +<?php + +namespace Drupal\webform\Form; + +use Drupal\Core\Entity\Form\DeleteMultipleForm; +use Drupal\Core\Form\FormStateInterface; +use Symfony\Component\HttpFoundation\RedirectResponse; + +/** + * Provides an entities deletion confirmation form. + * + * @see \Drupal\Core\Entity\Form\DeleteMultipleForm + * @see \Drupal\webform\Form\WebformDeleteFormInterface + * @see \Drupal\webform\Form\WebformConfigEntityDeleteFormBase + */ +abstract class WebformDeleteMultipleFormBase extends DeleteMultipleForm { + + /** + * {@inheritdoc} + */ + public function buildForm(array $form, FormStateInterface $form_state, $entity_type_id = NULL) { + // Issue #2582295: Confirmation cancel links are incorrect if installed in + // a subdirectory + // Work-around: Remove subdirectory from destination before generating + // actions. + $request = $this->getRequest(); + $destination = $request->query->get('destination'); + if ($destination) { + // Remove subdirectory from destination. + $update_destination = preg_replace('/^' . preg_quote(base_path(), '/') . '/', '/', $destination); + $request->query->set('destination', $update_destination); + $form = parent::buildForm($form, $form_state, $entity_type_id); + $request->query->set('destination', $destination); + } + else { + $form = parent::buildForm($form, $form_state, $entity_type_id); + } + + // Exit if redirect. + if ($form instanceof RedirectResponse) { + return $form; + } + + $form['message'] = $this->getWarning(); + $form['entities'] += [ + '#prefix' => $this->formatPlural(count($this->selection), 'The below @item will be deleted.', 'The below @items will be deleted.', [ + '@item' => $this->entityType->getSingularLabel(), + '@items' => $this->entityType->getPluralLabel(), + ]), + '#suffix' => '<p><hr/></p>', + ]; + $form['description'] = $this->getDescription(); + $form['hr'] = ['#markup' => '<p><hr/></p>']; + $form['confirm_input'] = $this->getConfirmInput(); + return $form; + } + + /** + * {@inheritdoc} + */ + public function getQuestion() { + return $this->formatPlural(count($this->selection), 'Delete this @item?', 'Delete these @items?', [ + '@item' => $this->entityType->getSingularLabel(), + '@items' => $this->entityType->getPluralLabel(), + ]); + } + + /** + * {@inheritdoc} + */ + public function getDescription() { + return []; + } + + /** + * Returns warning message to display. + * + */ + public function getWarning() { + $message = $this->formatPlural(count($this->selection), 'Are you sure you want to delete this @item?', 'Are you sure you want to delete these @items?', [ + '@item' => $this->entityType->getSingularLabel(), + '@items' => $this->entityType->getPluralLabel(), + ]); + + return[ + '#type' => 'webform_message', + '#message_type' => 'warning', + '#message_message' => $message, + '#weight' => -10, + ]; + } + + /** + * Returns confirm input to display. + * + * @return array + * A renderable array containing confirm input. + */ + public function getConfirmInput() { + return [ + '#type' => 'checkbox', + '#title' => $this->formatPlural(count($this->selection), 'Yes, I want to delete this @item?', 'Yes, I want to delete these @items?', [ + '@item' => $this->entityType->getSingularLabel(), + '@items' => $this->entityType->getPluralLabel(), + ]), + '#required' => TRUE, + ]; + } + +} diff --git a/web/modules/webform/src/Form/WebformEntityBulkForm.php b/web/modules/webform/src/Form/WebformEntityBulkForm.php new file mode 100644 index 0000000000..0b809d96a1 --- /dev/null +++ b/web/modules/webform/src/Form/WebformEntityBulkForm.php @@ -0,0 +1,34 @@ +<?php + +namespace Drupal\webform\Form; + +/** + * Provides the webform bulk form. + */ +class WebformEntityBulkForm extends WebformBulkFormBase { + + /** + * {@inheritdoc} + */ + protected $entityTypeId = 'webform'; + + /** + * {@inheritdoc} + */ + protected function getActions() { + $actions = parent::getActions(); + $is_archived = ($this->getRequest()->query->get('state') === 'archived'); + if ($is_archived) { + unset( + $actions['webform_archive_action'], + $actions['webform_open_action'], + $actions['webform_close_action'] + ); + } + else { + unset($actions['webform_unarchive_action']); + } + return $actions; + } + +} diff --git a/web/modules/webform/src/Form/WebformEntityDeleteMultipleForm.php b/web/modules/webform/src/Form/WebformEntityDeleteMultipleForm.php new file mode 100644 index 0000000000..1ad74515d4 --- /dev/null +++ b/web/modules/webform/src/Form/WebformEntityDeleteMultipleForm.php @@ -0,0 +1,33 @@ +<?php + +namespace Drupal\webform\Form; + +/** + * Provides a webform deletion confirmation form. + */ +class WebformEntityDeleteMultipleForm extends WebformDeleteMultipleFormBase { + + /** + * {@inheritdoc} + */ + public function getDescription() { + // @see \Drupal\webform\WebformEntityDeleteForm::getDescription + return [ + 'title' => [ + '#markup' => $this->t('This action will…'), + ], + 'list' => [ + '#theme' => 'item_list', + '#items' => [ + $this->t('Remove configuration'), + $this->t('Delete all related submissions'), + $this->formatPlural(count($this->selection), 'Affect any fields or nodes which reference this webform', 'Affect any fields or nodes which reference these webform', [ + '@item' => $this->entityType->getSingularLabel(), + '@items' => $this->entityType->getPluralLabel(), + ]) + ], + ], + ]; + } + +} diff --git a/web/modules/webform/src/Form/WebformSubmissionBulkForm.php b/web/modules/webform/src/Form/WebformSubmissionBulkForm.php new file mode 100644 index 0000000000..db28a6952c --- /dev/null +++ b/web/modules/webform/src/Form/WebformSubmissionBulkForm.php @@ -0,0 +1,52 @@ +<?php + +namespace Drupal\webform\Form; + +use Drupal\Core\Form\FormStateInterface; + +/** + * Provides the webform submission bulk form. + */ +class WebformSubmissionBulkForm extends WebformBulkFormBase { + + /** + * {@inheritdoc} + */ + protected $entityTypeId = 'webform_submission'; + + /** + * Can user delete any submission. + * + * @var bool + */ + protected $submissionDeleteAny = FALSE; + + /** + * {@inheritdoc} + */ + public function buildForm(array $form, FormStateInterface $form_state, $table = [], $submission_delete_any = FALSE) { + // Track if the user can delete any submission. + $this->submissionDeleteAny = $submission_delete_any; + + // Restructure the table rows so that they can be displayed as + // table select options. + foreach ($table['#rows'] as $key => $row) { + $table['#rows'][$key] = $row['data'] + ['#attributes' => ['data-webform-href' => $row['data-webform-href']]]; + } + + return parent::buildForm($form, $form_state, $table); + } + + /** + * {@inheritdoc} + */ + protected function getActions() { + $actions = parent::getActions(); + // Make sure user can delete any submission. + if (!$this->submissionDeleteAny) { + unset($actions['webform_submission_delete_action']); + } + return $actions; + } + +} diff --git a/web/modules/webform/src/Form/WebformSubmissionDeleteForm.php b/web/modules/webform/src/Form/WebformSubmissionDeleteForm.php index fbd9a5c36d..c16564606c 100644 --- a/web/modules/webform/src/Form/WebformSubmissionDeleteForm.php +++ b/web/modules/webform/src/Form/WebformSubmissionDeleteForm.php @@ -119,6 +119,7 @@ public function getWarning() { * {@inheritdoc} */ public function getDescription() { + // @see \Drupal\webform\Form\WebformSubmissionDeleteMultipleForm::getDescription return [ 'title' => [ '#markup' => $this->t('This action will…'), diff --git a/web/modules/webform/src/Form/WebformSubmissionDeleteMultiple.php b/web/modules/webform/src/Form/WebformSubmissionDeleteMultiple.php deleted file mode 100644 index c5a33ec927..0000000000 --- a/web/modules/webform/src/Form/WebformSubmissionDeleteMultiple.php +++ /dev/null @@ -1,106 +0,0 @@ -<?php - -namespace Drupal\webform\Form; - -use Drupal\Core\Form\ConfirmFormBase; -use Drupal\Core\Form\FormStateInterface; -use Drupal\Core\Url; -use Drupal\webform\EntityStorage\WebformEntityStorageTrait; -use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\HttpFoundation\RedirectResponse; - -/** - * Provides a webform submission deletion confirmation form. - */ -class WebformSubmissionDeleteMultiple extends ConfirmFormBase { - - use WebformEntityStorageTrait; - - /** - * The array of webform_submissions to delete. - * - * @var string[][] - */ - protected $webformSubmissionInfo = []; - - /** - * The tempstore factory. - * - * @var \Drupal\Core\TempStore\PrivateTempStoreFactory - */ - protected $tempStoreFactory; - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container) { - $instance = parent::create($container); - $instance->tempStoreFactory = $container->get('tempstore.private'); - $instance->entityTypeManager = $container->get('entity_type.manager'); - return $instance; - } - - /** - * {@inheritdoc} - */ - public function getFormId() { - return 'webform_submission_multiple_delete_confirm'; - } - - /** - * {@inheritdoc} - */ - public function getQuestion() { - return $this->formatPlural(count($this->webformSubmissionInfo), 'Are you sure you want to delete this submission?', 'Are you sure you want to delete these submissions?'); - } - - /** - * {@inheritdoc} - */ - public function getCancelUrl() { - return new Url('entity.webform_submission.collection'); - } - - /** - * {@inheritdoc} - */ - public function getConfirmText() { - return t('Delete'); - } - - /** - * {@inheritdoc} - */ - public function buildForm(array $form, FormStateInterface $form_state) { - /** @var \Drupal\webform\WebformSubmissionInterface[] $webform_submissions */ - $webform_submissions = $this->tempStoreFactory->get('webform_submission_multiple_delete_confirm')->get(\Drupal::currentUser()->id()); - if (empty($webform_submissions)) { - return new RedirectResponse($this->getCancelUrl()->setAbsolute()->toString()); - } - - $form['webform_submissions'] = [ - '#theme' => 'item_list', - '#items' => array_map(function ($webform_submission) { - return $webform_submission->label(); - }, $webform_submissions), - ]; - $form = parent::buildForm($form, $form_state); - return $form; - } - - /** - * {@inheritdoc} - */ - public function submitForm(array &$form, FormStateInterface $form_state) { - /** @var \Drupal\webform\WebformSubmissionInterface[] $webform_submissions */ - $webform_submissions = $this->tempStoreFactory->get('webform_submission_multiple_delete_confirm')->get(\Drupal::currentUser()->id()); - if ($form_state->getValue('confirm') && !empty($webform_submissions)) { - $this->getSubmissionStorage()->delete($webform_submissions); - $this->logger('content')->notice('Deleted @count submission.', ['@count' => count($webform_submissions)]); - $this->tempStoreFactory->get('webform_submission_multiple_delete_confirm')->delete(\Drupal::currentUser()->id()); - } - - $form_state->setRedirect('entity.webform_submission.collection'); - } - -} diff --git a/web/modules/webform/src/Form/WebformSubmissionDeleteMultipleForm.php b/web/modules/webform/src/Form/WebformSubmissionDeleteMultipleForm.php new file mode 100644 index 0000000000..39d5587f55 --- /dev/null +++ b/web/modules/webform/src/Form/WebformSubmissionDeleteMultipleForm.php @@ -0,0 +1,30 @@ +<?php + +namespace Drupal\webform\Form; + +/** + * Provides a webform submission deletion confirmation form. + */ +class WebformSubmissionDeleteMultipleForm extends WebformDeleteMultipleFormBase { + + /** + * {@inheritdoc} + */ + public function getDescription() { + // @see \Drupal\webform\Form\WebformSubmissionDeleteForm::getDescription + return [ + 'title' => [ + '#markup' => $this->t('This action will…'), + ], + 'list' => [ + '#theme' => 'item_list', + '#items' => [ + $this->t('Remove records from the database'), + $this->t('Delete any uploaded files'), + $this->t('Cancel all pending actions'), + ], + ], + ]; + } + +} diff --git a/web/modules/webform/src/Form/WebformSubmissionsDeleteFormBase.php b/web/modules/webform/src/Form/WebformSubmissionsDeleteFormBase.php index 2e6a9f4a65..d26a1ec3d2 100644 --- a/web/modules/webform/src/Form/WebformSubmissionsDeleteFormBase.php +++ b/web/modules/webform/src/Form/WebformSubmissionsDeleteFormBase.php @@ -171,7 +171,7 @@ public function getBatchLimit() { * @param mixed|array $context * The batch current context. */ - public function batchProcess(WebformInterface $webform = NULL, EntityInterface $entity = NULL, $max_sid, &$context) { + public function batchProcess(WebformInterface $webform = NULL, EntityInterface $entity = NULL, $max_sid = NULL, array &$context = []) { if (empty($context['sandbox'])) { $context['sandbox']['progress'] = 0; $context['sandbox']['max'] = $this->getSubmissionStorage()->getTotal($webform, $entity, NULL, ['in_draft' => NULL]); diff --git a/web/modules/webform/src/Plugin/Action/DeleteWebformSubmission.php b/web/modules/webform/src/Plugin/Action/DeleteWebformSubmission.php deleted file mode 100644 index 0ed730d138..0000000000 --- a/web/modules/webform/src/Plugin/Action/DeleteWebformSubmission.php +++ /dev/null @@ -1,68 +0,0 @@ -<?php - -namespace Drupal\webform\Plugin\Action; - -use Drupal\Core\Action\ActionBase; -use Drupal\Core\Plugin\ContainerFactoryPluginInterface; -use Drupal\Core\Session\AccountInterface; -use Symfony\Component\DependencyInjection\ContainerInterface; - -/** - * Redirects to a webform submission deletion form. - * - * @Action( - * id = "webform_submission_delete_action", - * label = @Translation("Delete submission"), - * type = "webform_submission", - * confirm_form_route_name = "webform_submission.multiple_delete_confirm" - * ) - */ -class DeleteWebformSubmission extends ActionBase implements ContainerFactoryPluginInterface { - - /** - * The tempstore factory. - * - * @var \Drupal\Core\TempStore\PrivateTempStoreFactory - */ - protected $tempStoreFactory; - - /** - * The current user. - * - * @var \Drupal\Core\Session\AccountInterface - */ - protected $currentUser; - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { - $instance = new static($configuration, $plugin_id, $plugin_definition); - $instance->currentUser = $container->get('current_user'); - $instance->tempStoreFactory = $container->get('tempstore.private'); - return $instance; - } - - /** - * {@inheritdoc} - */ - public function executeMultiple(array $entities) { - $this->tempStoreFactory->get('webform_submission_multiple_delete_confirm')->set($this->currentUser->id(), $entities); - } - - /** - * {@inheritdoc} - */ - public function execute($object = NULL) { - $this->executeMultiple([$object]); - } - - /** - * {@inheritdoc} - */ - public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) { - /** @var \Drupal\webform\WebformSubmissionInterface $object */ - return $object->access('delete', $account, $return_as_object); - } - -} diff --git a/web/modules/webform/src/Plugin/Action/WebformEntityArchiveAction.php b/web/modules/webform/src/Plugin/Action/WebformEntityArchiveAction.php new file mode 100644 index 0000000000..7f32671baf --- /dev/null +++ b/web/modules/webform/src/Plugin/Action/WebformEntityArchiveAction.php @@ -0,0 +1,36 @@ +<?php + +namespace Drupal\webform\Plugin\Action; + +use Drupal\Core\Action\ActionBase; +use Drupal\Core\Session\AccountInterface; + +/** + * Archives a webform. + * + * @Action( + * id = "webform_archive_action", + * label = @Translation("Archive webform"), + * type = "webform" + * ) + */ +class WebformEntityArchiveAction extends ActionBase { + + /** + * {@inheritdoc} + */ + public function execute($entity = NULL) { + /** @var \Drupal\webform\WebformInterface $entity */ + $entity->set('archive', TRUE)->save(); + } + + /** + * {@inheritdoc} + */ + public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) { + /** @var \Drupal\webform\WebformInterface $object */ + $result = $object->access('update', $account, TRUE); + return $return_as_object ? $result : $result->isAllowed(); + } + +} diff --git a/web/modules/webform/src/Plugin/Action/WebformEntityCloseAction.php b/web/modules/webform/src/Plugin/Action/WebformEntityCloseAction.php new file mode 100644 index 0000000000..86a4b0aa5d --- /dev/null +++ b/web/modules/webform/src/Plugin/Action/WebformEntityCloseAction.php @@ -0,0 +1,37 @@ +<?php + +namespace Drupal\webform\Plugin\Action; + +use Drupal\Core\Action\ActionBase; +use Drupal\Core\Session\AccountInterface; +use Drupal\webform\WebformInterface; + +/** + * Closes a webform. + * + * @Action( + * id = "webform_close_action", + * label = @Translation("Close webform"), + * type = "webform" + * ) + */ +class WebformEntityCloseAction extends ActionBase { + + /** + * {@inheritdoc} + */ + public function execute($entity = NULL) { + /** @var \Drupal\webform\WebformInterface $entity */ + $entity->setStatus(WebformInterface::STATUS_CLOSED)->save(); + } + + /** + * {@inheritdoc} + */ + public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) { + /** @var \Drupal\webform\WebformInterface $object */ + $result = $object->access('update', $account, TRUE); + return $return_as_object ? $result : $result->isAllowed(); + } + +} diff --git a/web/modules/webform/src/Plugin/Action/WebformEntityDeleteAction.php b/web/modules/webform/src/Plugin/Action/WebformEntityDeleteAction.php new file mode 100644 index 0000000000..a05f4c7c65 --- /dev/null +++ b/web/modules/webform/src/Plugin/Action/WebformEntityDeleteAction.php @@ -0,0 +1,17 @@ +<?php + +namespace Drupal\webform\Plugin\Action; + +use Drupal\Core\Action\Plugin\Action\DeleteAction; + +/** + * Redirects to a webform deletion form. + * + * @Action( + * id = "webform_delete_action", + * label = @Translation("Delete webform"), + * type = "webform", + * confirm_form_route_name = "entity.webform.multiple_delete_confirm" + * ) + */ +class WebformEntityDeleteAction extends DeleteAction { } diff --git a/web/modules/webform/src/Plugin/Action/WebformEntityOpenAction.php b/web/modules/webform/src/Plugin/Action/WebformEntityOpenAction.php new file mode 100644 index 0000000000..b1c38d7f2e --- /dev/null +++ b/web/modules/webform/src/Plugin/Action/WebformEntityOpenAction.php @@ -0,0 +1,37 @@ +<?php + +namespace Drupal\webform\Plugin\Action; + +use Drupal\Core\Action\ActionBase; +use Drupal\Core\Session\AccountInterface; +use Drupal\webform\WebformInterface; + +/** + * Opens a webform. + * + * @Action( + * id = "webform_open_action", + * label = @Translation("Open webform"), + * type = "webform" + * ) + */ +class WebformEntityOpenAction extends ActionBase { + + /** + * {@inheritdoc} + */ + public function execute($entity = NULL) { + /** @var \Drupal\webform\WebformInterface $entity */ + $entity->setStatus(WebformInterface::STATUS_OPEN)->save(); + } + + /** + * {@inheritdoc} + */ + public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) { + /** @var \Drupal\webform\WebformInterface $object */ + $result = $object->access('update', $account, TRUE); + return $return_as_object ? $result : $result->isAllowed(); + } + +} diff --git a/web/modules/webform/src/Plugin/Action/WebformEntityUnarchiveAction.php b/web/modules/webform/src/Plugin/Action/WebformEntityUnarchiveAction.php new file mode 100644 index 0000000000..36b628151e --- /dev/null +++ b/web/modules/webform/src/Plugin/Action/WebformEntityUnarchiveAction.php @@ -0,0 +1,36 @@ +<?php + +namespace Drupal\webform\Plugin\Action; + +use Drupal\Core\Action\ActionBase; +use Drupal\Core\Session\AccountInterface; + +/** + * Unarchives a webform. + * + * @Action( + * id = "webform_unarchive_action", + * label = @Translation("Restore webform"), + * type = "webform" + * ) + */ +class WebformEntityUnarchiveAction extends ActionBase { + + /** + * {@inheritdoc} + */ + public function execute($entity = NULL) { + /** @var \Drupal\webform\WebformInterface $entity */ + $entity->set('archive', FALSE)->save(); + } + + /** + * {@inheritdoc} + */ + public function access($object, AccountInterface $account = NULL, $return_as_object = FALSE) { + /** @var \Drupal\webform\WebformInterface $object */ + $result = $object->access('update', $account, TRUE); + return $return_as_object ? $result : $result->isAllowed(); + } + +} diff --git a/web/modules/webform/src/Plugin/Action/WebformSubmissionDeleteAction.php b/web/modules/webform/src/Plugin/Action/WebformSubmissionDeleteAction.php new file mode 100644 index 0000000000..1b575e8a6c --- /dev/null +++ b/web/modules/webform/src/Plugin/Action/WebformSubmissionDeleteAction.php @@ -0,0 +1,17 @@ +<?php + +namespace Drupal\webform\Plugin\Action; + +use Drupal\Core\Action\Plugin\Action\DeleteAction; + +/** + * Redirects to a webform submission deletion form. + * + * @Action( + * id = "webform_submission_delete_action", + * label = @Translation("Delete submission"), + * type = "webform_submission", + * confirm_form_route_name = "webform_submission.multiple_delete_confirm" + * ) + */ +class WebformSubmissionDeleteAction extends DeleteAction { } diff --git a/web/modules/webform/src/Plugin/Action/LockWebformSubmission.php b/web/modules/webform/src/Plugin/Action/WebformSubmissionLockAction.php similarity index 88% rename from web/modules/webform/src/Plugin/Action/LockWebformSubmission.php rename to web/modules/webform/src/Plugin/Action/WebformSubmissionLockAction.php index 1a94481ec9..a1a5bca684 100644 --- a/web/modules/webform/src/Plugin/Action/LockWebformSubmission.php +++ b/web/modules/webform/src/Plugin/Action/WebformSubmissionLockAction.php @@ -10,11 +10,11 @@ * * @Action( * id = "webform_submission_make_lock_action", - * label = @Translation("Lock selected submission"), + * label = @Translation("Lock submission"), * type = "webform_submission" * ) */ -class LockWebformSubmission extends ActionBase { +class WebformSubmissionLockAction extends ActionBase { /** * {@inheritdoc} diff --git a/web/modules/webform/src/Plugin/Action/StickyWebformSubmission.php b/web/modules/webform/src/Plugin/Action/WebformSubmissionStickyAction.php similarity index 88% rename from web/modules/webform/src/Plugin/Action/StickyWebformSubmission.php rename to web/modules/webform/src/Plugin/Action/WebformSubmissionStickyAction.php index faf8e40ac9..0f687a3bbb 100644 --- a/web/modules/webform/src/Plugin/Action/StickyWebformSubmission.php +++ b/web/modules/webform/src/Plugin/Action/WebformSubmissionStickyAction.php @@ -10,11 +10,11 @@ * * @Action( * id = "webform_submission_make_sticky_action", - * label = @Translation("Star/Flag selected submission"), + * label = @Translation("Star/Flag submission"), * type = "webform_submission" * ) */ -class StickyWebformSubmission extends ActionBase { +class WebformSubmissionStickyAction extends ActionBase { /** * {@inheritdoc} diff --git a/web/modules/webform/src/Plugin/Action/UnlockWebformSubmission.php b/web/modules/webform/src/Plugin/Action/WebformSubmissionUnlockAction.php similarity index 88% rename from web/modules/webform/src/Plugin/Action/UnlockWebformSubmission.php rename to web/modules/webform/src/Plugin/Action/WebformSubmissionUnlockAction.php index e94a673db2..2104a1abce 100644 --- a/web/modules/webform/src/Plugin/Action/UnlockWebformSubmission.php +++ b/web/modules/webform/src/Plugin/Action/WebformSubmissionUnlockAction.php @@ -10,11 +10,11 @@ * * @Action( * id = "webform_submission_make_unlock_action", - * label = @Translation("Unlock selected submission"), + * label = @Translation("Unlock submission"), * type = "webform_submission" * ) */ -class UnlockWebformSubmission extends ActionBase { +class WebformSubmissionUnlockAction extends ActionBase { /** * {@inheritdoc} diff --git a/web/modules/webform/src/Plugin/Action/UnstickyWebformSubmission.php b/web/modules/webform/src/Plugin/Action/WebformSubmissionUnstickyAction.php similarity index 87% rename from web/modules/webform/src/Plugin/Action/UnstickyWebformSubmission.php rename to web/modules/webform/src/Plugin/Action/WebformSubmissionUnstickyAction.php index 1bf047e7b5..1a45f25ad5 100644 --- a/web/modules/webform/src/Plugin/Action/UnstickyWebformSubmission.php +++ b/web/modules/webform/src/Plugin/Action/WebformSubmissionUnstickyAction.php @@ -10,11 +10,11 @@ * * @Action( * id = "webform_submission_make_unsticky_action", - * label = @Translation("Unstar/unflag selected submission"), + * label = @Translation("Unstar/unflag submission"), * type = "webform_submission" * ) */ -class UnstickyWebformSubmission extends ActionBase { +class WebformSubmissionUnstickyAction extends ActionBase { /** * {@inheritdoc} diff --git a/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerateTrait.php b/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerateTrait.php index 03f463f9b9..6af7c815dd 100644 --- a/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerateTrait.php +++ b/web/modules/webform/src/Plugin/DevelGenerate/WebformSubmissionDevelGenerateTrait.php @@ -239,7 +239,7 @@ protected function generateSubmissions(array $values) { $this->generateSubmission($values); $feedback = isset($values['feedback']) && is_int($values['feedback']) ? $values['feedback'] : 1000; if ($i % $feedback === 0) { - $now = $this->time->getRequestTime(); + $now = $this->time->getCurrentTime(); $dt_args = [ '@feedback' => $feedback, '@rate' => ($feedback * 60) / ($now - $start), diff --git a/web/modules/webform/src/Plugin/Field/FieldFormatter/WebformEntityReferenceEntityFormatter.php b/web/modules/webform/src/Plugin/Field/FieldFormatter/WebformEntityReferenceEntityFormatter.php index 11e70a1218..6bd1396c07 100644 --- a/web/modules/webform/src/Plugin/Field/FieldFormatter/WebformEntityReferenceEntityFormatter.php +++ b/web/modules/webform/src/Plugin/Field/FieldFormatter/WebformEntityReferenceEntityFormatter.php @@ -129,6 +129,9 @@ public function viewElements(FieldItemListInterface $items, $langcode) { || preg_match('/\.content_translation_add$/', $route_name) || in_array($route_name, ['entity.block_content.canonical'])); + // Same goes for entity add forms. + $is_entity_add_form = preg_match('/\.add$/', $route_name); + $is_paragraph = ($items_entity && $items_entity->getEntityTypeId() === 'paragraph'); $is_paragraph_current_source_entity = ($items_main_entity && $request_source_entity) @@ -137,9 +140,11 @@ public function viewElements(FieldItemListInterface $items, $langcode) { $is_paragraph_entity_edit_form = ($is_entity_edit_form && $is_paragraph && $is_paragraph_current_source_entity); + $is_paragraph_entity_add_form = ($is_entity_add_form && $is_paragraph); + $elements = []; foreach ($this->getEntitiesToView($items, $langcode) as $delta => $entity) { - if ($is_paragraph_entity_edit_form) { + if ($is_paragraph_entity_edit_form || $is_paragraph_entity_add_form) { // Webform can not be nested within node edit form because the nested // <form> tags will cause unexpected validation issues. $elements[$delta] = [ diff --git a/web/modules/webform/src/Plugin/WebformElement/DateBase.php b/web/modules/webform/src/Plugin/WebformElement/DateBase.php index 4c89c14671..f4e3871f1c 100644 --- a/web/modules/webform/src/Plugin/WebformElement/DateBase.php +++ b/web/modules/webform/src/Plugin/WebformElement/DateBase.php @@ -260,9 +260,17 @@ public function form(array $form, FormStateInterface $form_state) { $form['default']['default_value']['#description'] .= '<br /><br />' . $this->t("You may use tokens. Tokens should use the 'html_date' or 'html_datetime' date format. (i.e. @date_format)", ['@date_format' => '[current-user:field_date_of_birth:date:html_date]']); // Allow custom date formats to be entered. - $form['display']['format']['#type'] = 'webform_select_other'; - $form['display']['format']['#other__option_label'] = $this->t('Custom date format…'); - $form['display']['format']['#other__description'] = $this->t('A user-defined date format. See the <a href="http://php.net/manual/function.date.php">PHP manual</a> for available options.'); + $form['display']['item']['format']['#options']['custom'] = $this->t('Custom HTML/text…'); + $form['display']['item']['format']['#type'] = 'webform_select_other'; + $form['display']['item']['format']['#other__option_label'] = $this->t('Custom date format…'); + $form['display']['item']['format']['#other__description'] = $this->t('A user-defined date format. See the <a href="http://php.net/manual/function.date.php">PHP manual</a> for available options.'); + $format_custom_states = [ + 'visible' => [':input[name="properties[format][select]"]' => ['value' => 'custom']], + 'required' => [':input[name="properties[format][select]"]' => ['value' => 'custom']], + ]; + $form['display']['item']['format_html']['#states'] = $format_custom_states; + $form['display']['item']['format_text']['#states'] = $format_custom_states; + $form['display']['item']['twig']['#states'] = $format_custom_states; $form['date'] = [ '#type' => 'fieldset', diff --git a/web/modules/webform/src/Plugin/WebformElement/DateList.php b/web/modules/webform/src/Plugin/WebformElement/DateList.php index 8e2e86962c..bdcf75bfca 100644 --- a/web/modules/webform/src/Plugin/WebformElement/DateList.php +++ b/web/modules/webform/src/Plugin/WebformElement/DateList.php @@ -153,7 +153,7 @@ public function form(array $form, FormStateInterface $form_state) { ]; $form['date']['date_part_order'] = [ '#type' => 'webform_tableselect_sort', - '#header' => ['part' => 'Date part'], + '#header' => ['part' => $this->t('Date part')], '#options' => [ 'day' => ['part' => $this->t('Days')], 'month' => ['part' => $this->t('Months')], diff --git a/web/modules/webform/src/Plugin/WebformElement/OptionsBase.php b/web/modules/webform/src/Plugin/WebformElement/OptionsBase.php index c03d15a80d..898c696e69 100644 --- a/web/modules/webform/src/Plugin/WebformElement/OptionsBase.php +++ b/web/modules/webform/src/Plugin/WebformElement/OptionsBase.php @@ -270,7 +270,7 @@ public static function processOptionsProperties(&$element, FormStateInterface $f $options__properties = WebformElementHelper::removeIgnoredProperties($options__properties); foreach ($options__properties as $property => $value) { - $option_element =& $element[$option_key]; + $option_element = &$element[$option_key]; if (in_array($property, ['#attributes', '#wrapper_attributes', '#label_attributes'])) { // Apply attributes. $option_element += [$property => []]; diff --git a/web/modules/webform/src/Plugin/WebformElement/Password.php b/web/modules/webform/src/Plugin/WebformElement/Password.php index c97b692fde..6f74855d40 100644 --- a/web/modules/webform/src/Plugin/WebformElement/Password.php +++ b/web/modules/webform/src/Plugin/WebformElement/Password.php @@ -18,6 +18,19 @@ */ class Password extends WebformElementBase { + /** + * {@inheritdoc} + */ + protected function defineDefaultProperties() { + $properties = parent::defineDefaultProperties(); + unset( + $properties['format_items'], + $properties['format_items_html'], + $properties['format_items_text'] + ); + return $properties; + } + /** * {@inheritdoc} */ diff --git a/web/modules/webform/src/Plugin/WebformElement/WebformCustomComposite.php b/web/modules/webform/src/Plugin/WebformElement/WebformCustomComposite.php index 5eb92ffecd..00fd496134 100644 --- a/web/modules/webform/src/Plugin/WebformElement/WebformCustomComposite.php +++ b/web/modules/webform/src/Plugin/WebformElement/WebformCustomComposite.php @@ -2,6 +2,7 @@ namespace Drupal\webform\Plugin\WebformElement; +use Drupal\Component\Utility\NestedArray; use Drupal\Core\Form\FormStateInterface; use Drupal\webform\WebformSubmissionInterface; @@ -91,6 +92,35 @@ public function prepare(array &$element, WebformSubmissionInterface $webform_sub } } + /** + * {@inheritdoc} + */ + protected function prepareElementPreRenderCallbacks(array &$element, WebformSubmissionInterface $webform_submission = NULL) { + parent::prepareElementPreRenderCallbacks($element, $webform_submission); + + // Set custom wrapper type to theme wrappers. + // @see \Drupal\webform\Element\WebformMultiple::getInfo + // @see \Drupal\webform\Element\WebformCompositeFormElementTrait::preRenderWebformCompositeFormElement + if (isset($element['#wrapper_type'])) { + $element['#theme_wrappers'] = [$element['#wrapper_type']]; + + $element += ['#attributes' => []]; + switch ($element['#wrapper_type']) { + case 'fieldset': + $element['#attributes']['class'][] = 'fieldgroup'; + $element['#attributes']['class'][] = 'form-composite'; + break; + + case 'container': + // Apply wrapper attributes to attributes. + if (isset($element['#wrapper_attributes'])) { + $element['#attributes'] = NestedArray::mergeDeep($element['#attributes'], $element['#wrapper_attributes']); + } + break; + } + } + } + /** * {@inheritdoc} */ diff --git a/web/modules/webform/src/Plugin/WebformElement/WebformImageFile.php b/web/modules/webform/src/Plugin/WebformElement/WebformImageFile.php index ac84f22b9f..c3ebc54309 100644 --- a/web/modules/webform/src/Plugin/WebformElement/WebformImageFile.php +++ b/web/modules/webform/src/Plugin/WebformElement/WebformImageFile.php @@ -182,7 +182,7 @@ public function getEmailAttachments(array $element, WebformSubmissionInterface $ 'filemime' => $file->getMimeType(), // File URIs that are not supported return FALSE, when this happens // still use the file's URI as the file's path. - 'filepath' => $this->fileSystem->realpath($file->getFileUri()) ?: $file->getFileUri(), + 'filepath' => $this->fileSystem->realpath($file_uri) ?: $file_uri, // URL is used when debugging or resending messages. // @see \Drupal\webform\Plugin\WebformHandler\EmailWebformHandler::buildAttachments '_fileurl' => $file_url, diff --git a/web/modules/webform/src/Plugin/WebformElement/WebformManagedFileBase.php b/web/modules/webform/src/Plugin/WebformElement/WebformManagedFileBase.php index b32a799a10..c452e36548 100644 --- a/web/modules/webform/src/Plugin/WebformElement/WebformManagedFileBase.php +++ b/web/modules/webform/src/Plugin/WebformElement/WebformManagedFileBase.php @@ -442,7 +442,9 @@ public function getItemFormats() { * A file. */ protected function getFile(array $element, $value, array $options) { - if (empty($value)) { + // The value is an array when the posted back file has not been processed + // and it should ignored. + if (empty($value) || is_array($value)) { return NULL; } if ($value instanceof FileInterface) { diff --git a/web/modules/webform/src/Plugin/WebformElement/WebformSignature.php b/web/modules/webform/src/Plugin/WebformElement/WebformSignature.php index 6992bc113a..a19d78d3d1 100644 --- a/web/modules/webform/src/Plugin/WebformElement/WebformSignature.php +++ b/web/modules/webform/src/Plugin/WebformElement/WebformSignature.php @@ -228,7 +228,6 @@ public function postDelete(array &$element, WebformSubmissionInterface $webform_ $image_directory = "$image_base_directory/$element_key/$sid"; if (file_exists($image_directory)) { $this->fileSystem->deleteRecursive($image_directory); - $this->fileSystem->deleteRecursive($image_directory); } // Please node, the signature image (no results) directory is deleted when diff --git a/web/modules/webform/src/Plugin/WebformElement/WebformTable.php b/web/modules/webform/src/Plugin/WebformElement/WebformTable.php index bd95181be0..bbac2200c8 100644 --- a/web/modules/webform/src/Plugin/WebformElement/WebformTable.php +++ b/web/modules/webform/src/Plugin/WebformElement/WebformTable.php @@ -262,9 +262,18 @@ public function preview() { $this->t('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'], + [ + $this->t('Row 1 - Col 1'), + $this->t('Row 1 - Col 2'), + ], + [ + $this->t('Row 2 - Col 1'), + $this->t('Row 2 - Col 2'), + ], + [ + $this->t('Row 3 - Col 1'), + $this->t('Row 3 - Col 2'), + ], ], ]; } diff --git a/web/modules/webform/src/Plugin/WebformElement/WebformTableSelectSort.php b/web/modules/webform/src/Plugin/WebformElement/WebformTableSelectSort.php index a872a2c8a8..32ca04eca4 100644 --- a/web/modules/webform/src/Plugin/WebformElement/WebformTableSelectSort.php +++ b/web/modules/webform/src/Plugin/WebformElement/WebformTableSelectSort.php @@ -52,7 +52,7 @@ public function hasMultipleValues(array $element) { /** * {@inheritdoc} */ - public function getItemDefaultFormat() { + public function getItemsDefaultFormat() { return 'ol'; } diff --git a/web/modules/webform/src/Plugin/WebformElement/WebformTableSort.php b/web/modules/webform/src/Plugin/WebformElement/WebformTableSort.php index 5d280c87f1..4e270b40dc 100644 --- a/web/modules/webform/src/Plugin/WebformElement/WebformTableSort.php +++ b/web/modules/webform/src/Plugin/WebformElement/WebformTableSort.php @@ -51,7 +51,7 @@ public function hasMultipleValues(array $element) { /** * {@inheritdoc} */ - public function getItemDefaultFormat() { + public function getItemsDefaultFormat() { return 'ol'; } diff --git a/web/modules/webform/src/Plugin/WebformElementBase.php b/web/modules/webform/src/Plugin/WebformElementBase.php index 0f761d8799..420285f971 100644 --- a/web/modules/webform/src/Plugin/WebformElementBase.php +++ b/web/modules/webform/src/Plugin/WebformElementBase.php @@ -35,6 +35,7 @@ use Drupal\webform\Utility\WebformHtmlHelper; use Drupal\webform\Utility\WebformOptionsHelper; use Drupal\webform\Utility\WebformReflectionHelper; +use Drupal\webform\Utility\WebformXss; use Drupal\webform\WebformInterface; use Drupal\webform\WebformSubmissionConditionsValidator; use Drupal\webform\WebformSubmissionInterface; @@ -735,19 +736,6 @@ public function prepare(array &$element, WebformSubmissionInterface $webform_sub $element['#wrapper_attributes']['class'][] = 'webform-element--title-inline'; } - // Check markup properties. - $markup_properties = [ - '#description', - '#help', - '#more', - '#multiple__no_items_message', - ]; - foreach ($markup_properties as $markup_property) { - if (isset($element[$markup_property]) && !is_array($element[$markup_property])) { - $element[$markup_property] = WebformHtmlEditor::checkMarkup($element[$markup_property]); - } - } - // Add default description display. $default_description_display = $this->configFactory->get('webform.settings')->get('element.default_description_display'); if ($default_description_display && !isset($element['#description_display']) && $this->hasProperty('description_display')) { @@ -797,12 +785,32 @@ public function prepare(array &$element, WebformSubmissionInterface $webform_sub $element['#attributes']['data-webform-required-error'] = WebformHtmlHelper::toPlainText($element['#required_error']); $element['#required_error'] = WebformHtmlHelper::toHtmlMarkup($element['#required_error']); } + + // Convert #title to HTML markup so that it can displayed properly + // in error messages. + if (isset($element['#title'])) { + $element['#title'] = WebformHtmlHelper::toHtmlMarkup($element['#title'], WebformXss::getHtmlTagList()); + } } // Replace tokens for all properties. if ($webform_submission) { $this->replaceTokens($element, $webform_submission); } + + // Check markup properties after token replacement just-in-case markup + // is empty. + $markup_properties = [ + '#description', + '#help', + '#more', + '#multiple__no_items_message', + ]; + foreach ($markup_properties as $markup_property) { + if (!empty($element[$markup_property]) && !is_array($element[$markup_property])) { + $element[$markup_property] = WebformHtmlEditor::checkMarkup($element[$markup_property]); + } + } } /** @@ -2341,7 +2349,7 @@ public function form(array $form, FormStateInterface $form_state) { $form['element_description']['help'] = [ '#type' => 'details', '#title' => $this->t('Help'), - '#description' => $this->t("Displays a help tooltip after the element's title."), + '#description' => $this->t("Displays a Help tooltip after the element's title."), '#states' => [ 'invisible' => [ [':input[name="properties[title_display]"]' => ['value' => 'invisible']], @@ -2351,13 +2359,13 @@ public function form(array $form, FormStateInterface $form_state) { $form['element_description']['help']['help_title'] = [ '#type' => 'textfield', '#title' => $this->t('Help title'), - '#description' => $this->t("The text displayed in help tooltip after the element's title.") . '<br /><br />' . + '#description' => $this->t("The text displayed in Help tooltip after the element's title.") . '<br /><br />' . $this->t("Defaults to the element's title"), ]; $form['element_description']['help']['help'] = [ '#type' => 'webform_html_editor', '#title' => $this->t('Help text'), - '#description' => $this->t("The text displayed in help tooltip after the element's title."), + '#description' => $this->t("The text displayed in Help tooltip after the element's title."), ]; $form['element_description']['more'] = [ '#type' => 'details', @@ -2422,7 +2430,7 @@ public function form(array $form, FormStateInterface $form_state) { 'element_before' => $this->t('Before element'), 'element_after' => $this->t('After element'), ], - '#description' => $this->t('Determines the placement of the help tooltip.'), + '#description' => $this->t('Determines the placement of the Help tooltip.'), ]; if ($this->hasProperty('title_display')) { $form['form']['title_display_message'] = [ diff --git a/web/modules/webform/src/Plugin/WebformHandler/EmailWebformHandler.php b/web/modules/webform/src/Plugin/WebformHandler/EmailWebformHandler.php index 9d4501261a..a71ebbefb9 100644 --- a/web/modules/webform/src/Plugin/WebformHandler/EmailWebformHandler.php +++ b/web/modules/webform/src/Plugin/WebformHandler/EmailWebformHandler.php @@ -1095,6 +1095,20 @@ protected function getMessageAttachments(WebformSubmissionInterface $webform_sub $element_plugin = $this->elementManager->getElementInstance($element); $attachments = array_merge($attachments, $element_plugin->getEmailAttachments($element, $webform_submission)); } + + // For SwiftMailer && Mime Mail use filecontent and not the filepath. + // @see \Drupal\swiftmailer\Plugin\Mail\SwiftMailer::attachAsMimeMail + // @see \Drupal\mimemail\Utility\MimeMailFormatHelper::mimeMailFile + // @see https://www.drupal.org/project/webform/issues/3232756 + if ($this->moduleHandler->moduleExists('swiftmailer') + || $this->moduleHandler->moduleExists('mimemail')) { + foreach ($attachments as &$attachment) { + if (isset($attachment['filecontent']) && isset($attachment['filepath'])) { + unset($attachment['filepath']); + } + } + } + return $attachments; } @@ -1114,6 +1128,34 @@ public function sendMessage(WebformSubmissionInterface $webform_submission, arra $current_langcode = $this->languageManager->getCurrentLanguage()->getId(); + // @todo [Drupal 9.x] Remove below class exists check. + // Issue #84883: Unicode::mimeHeaderEncode() doesn't correctly + // follow RFC 2047. + // @see https://www.drupal.org/project/drupal/issues/84883 + // Don't send the message if the From address is not valid. + if (class_exists('\Symfony\Component\Mime\Address')) { + try { + \Symfony\Component\Mime\Address::create($from); + } + catch (\Exception $exception) { + if ($this->configuration['debug']) { + $t_args = [ + '%form' => $this->getWebform()->label(), + '%handler' => $this->label(), + '%from_email' => $from, + ]; + $this->messenger()->addWarning($this->t('%form: Email not sent for %handler handler because the <em>From</em> email (%from_email) is not valid.', $t_args), TRUE); + } + $context = [ + '@form' => $this->getWebform()->label(), + '@handler' => $this->label(), + '@from_email' => $from, + ]; + $this->getLogger('webform_submission')->error("@form: Email not sent for '@handler' handler because the 'From' email (@from_email) is not valid.", $context); + return; + } + } + // Don't send the message if To, CC, and BCC is empty. if (!$this->hasRecipient($webform_submission, $message)) { if ($this->configuration['debug']) { diff --git a/web/modules/webform/src/Plugin/WebformHandler/RemotePostWebformHandler.php b/web/modules/webform/src/Plugin/WebformHandler/RemotePostWebformHandler.php index b2deb7b0b1..ec4ad24960 100644 --- a/web/modules/webform/src/Plugin/WebformHandler/RemotePostWebformHandler.php +++ b/web/modules/webform/src/Plugin/WebformHandler/RemotePostWebformHandler.php @@ -154,6 +154,7 @@ public function defaultConfiguration() { 'excluded_data' => $excluded_data, 'custom_data' => '', 'custom_options' => '', + 'file_data' => TRUE, 'cast' => FALSE, 'debug' => FALSE, // States. @@ -294,6 +295,14 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta ], '#default_value' => $this->configuration['type'], ]; + $form['additional']['file_data'] = [ + '#type' => 'checkbox', + '#title' => $this->t('Include files as Base64 encoded post data'), + '#description' => $this->t('If checked, uploaded and attached file data will be included using Base64 encoding.'), + '#return_value' => TRUE, + '#default_value' => $this->configuration['file_data'], + '#access' => $this->getWebform()->hasAttachments(), + ]; $form['additional']['cast'] = [ '#type' => 'checkbox', '#title' => $this->t('Cast posted element value and custom data'), @@ -403,6 +412,24 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta '#message_close' => TRUE, '#message_id' => 'webform_node.references', '#message_storage' => WebformMessage::STORAGE_SESSION, + '#states' => [ + 'visible' => [ + ':input[name="settings[file_data]"]' => ['checked' => TRUE], + ], + ], + ]; + $form['submission_data']['managed_file_message_no_data'] = [ + '#type' => 'webform_message', + '#message_message' => $this->t('Upload files will include the file\'s id, name and uri.'), + '#message_type' => 'warning', + '#message_close' => TRUE, + '#message_id' => 'webform_node.references', + '#message_storage' => WebformMessage::STORAGE_SESSION, + '#states' => [ + 'visible' => [ + ':input[name="settings[file_data]"]' => ['checked' => FALSE], + ], + ], ]; } $form['submission_data']['excluded_data'] = [ @@ -753,7 +780,9 @@ protected function getRequestFileData($fid, $prefix = '') { $data[$prefix . 'uri'] = $file->getFileUri(); $data[$prefix . 'mime'] = $file->getMimeType(); $data[$prefix . 'uuid'] = $file->uuid(); - $data[$prefix . 'data'] = base64_encode(file_get_contents($file->getFileUri())); + if ($this->configuration['file_data']) { + $data[$prefix . 'data'] = base64_encode(file_get_contents($file->getFileUri())); + } return $data; } diff --git a/web/modules/webform/src/Twig/WebformTwigExtension.php b/web/modules/webform/src/Twig/WebformTwigExtension.php index c797fa01c3..63a1781962 100644 --- a/web/modules/webform/src/Twig/WebformTwigExtension.php +++ b/web/modules/webform/src/Twig/WebformTwigExtension.php @@ -99,7 +99,9 @@ public function webformDebug($data) { * * @see \Drupal\Core\Utility\Token::replace */ - public function webformToken($token, EntityInterface $entity = NULL, array $data = [], array $options = []) { + public function webformToken($token, EntityInterface $entity = NULL, array $data = [], array $options = NULL) { + $options = $options ?: []; + // Allow the webform_token function to be tested during validation without // a valid entity. if (!$entity) { diff --git a/web/modules/webform/src/Utility/WebformDateHelper.php b/web/modules/webform/src/Utility/WebformDateHelper.php index 65c32cf23b..593c26ebdd 100644 --- a/web/modules/webform/src/Utility/WebformDateHelper.php +++ b/web/modules/webform/src/Utility/WebformDateHelper.php @@ -51,7 +51,7 @@ class WebformDateHelper { * * @see \Drupal\Core\Datetime\DateFormatterInterface::format */ - public static function format($timestamp, $type = 'fallback', $format = '', $timezone = NULL, $langcode = NULL) { + public static function format($timestamp, $type = 'medium', $format = '', $timezone = NULL, $langcode = NULL) { /** @var \Drupal\Core\Datetime\DateFormatterInterface $date_formatter */ $date_formatter = \Drupal::service('date.formatter'); return $timestamp ? $date_formatter->format($timestamp, $type, $format, $timezone, $langcode) : ''; diff --git a/web/modules/webform/src/Utility/WebformElementHelper.php b/web/modules/webform/src/Utility/WebformElementHelper.php index 536248752b..8389fe8caa 100644 --- a/web/modules/webform/src/Utility/WebformElementHelper.php +++ b/web/modules/webform/src/Utility/WebformElementHelper.php @@ -613,7 +613,7 @@ public static function &getElement(array &$elements, $name) { return $elements[$element_name]; } elseif (is_array($elements[$element_name])) { - $child_elements =& $elements[$element_name]; + $child_elements = &$elements[$element_name]; if ($element = &static::getElement($child_elements, $name)) { return $element; } diff --git a/web/modules/webform/src/WebformAddonsManager.php b/web/modules/webform/src/WebformAddonsManager.php index 875dafa46c..7a0a0cbc15 100644 --- a/web/modules/webform/src/WebformAddonsManager.php +++ b/web/modules/webform/src/WebformAddonsManager.php @@ -269,6 +269,14 @@ protected function initProjects() { 'category' => 'element', ]; + // Element: Webform Javascript Field. + $projects['webform_javascript_field'] = [ + 'title' => $this->t('Webform Javascript Field'), + 'description' => $this->t('Provides ability to specify JavaScript snippet for Webform components.'), + 'url' => Url::fromUri('https://www.drupal.org/project/webform_javascript_field'), + 'category' => 'element', + ]; + // Element: Webform Layout Container. $projects['webform_layout_container'] = [ 'title' => $this->t('Webform Layout Container'), @@ -481,6 +489,15 @@ protected function initProjects() { 'category' => 'enhancement', ]; + + // Enhancement: Webform GeoIP Restriction. + $projects['webform_geoip_restriction'] = [ + 'title' => $this->t('Webform GeoIP Restriction'), + 'description' => $this->t('Adds the possibility of restricting access to webforms by country using the geoip system.'), + 'url' => Url::fromUri('https://www.drupal.org/project/webform_geoip_restriction'), + 'category' => 'enhancement', + ]; + // Enhancement: Webform IP Geo. $projects['webform_ip_geo'] = [ 'title' => $this->t('Webform IP Geo'), @@ -690,6 +707,14 @@ protected function initProjects() { 'category' => 'integration', ]; + // Integrations: (Google) Datalayer Webform. + $projects['datalayer_webform'] = [ + 'title' => $this->t('(Google) Datalayer Webform'), + 'description' => $this->t('Send datalayer events on Webform submission.'), + 'url' => Url::fromUri('https://www.drupal.org/sandbox/mistermoper/3199908'), + 'category' => 'integration', + ]; + // Integrations: Group Webform. $projects['group_webform'] = [ 'title' => $this->t('Group Webform'), @@ -1013,10 +1038,18 @@ protected function initProjects() { 'category' => 'integration', ]; + // Integrations: OS Tickets Webform Handler. + $projects['ostickets'] = [ + 'title' => $this->t('OS Tickets Webform Handler'), + 'description' => $this->t('Provides a webform handler that will POST OS tickets on submissions.'), + 'url' => Url::fromUri('https://www.drupal.org/project/ostickets'), + 'category' => 'integration', + ]; + // Integrations: Webform Pardot. $projects['webform_pardot'] = [ 'title' => $this->t('Webform Pardot'), - 'description' => $this->t('Links commerce products to webform elements.'), + 'description' => $this->t('Provides a webform handler for posting submissions to Pardot.'), 'url' => Url::fromUri('https://www.drupal.org/project/webform_pardot'), 'category' => 'integration', ]; @@ -1024,7 +1057,7 @@ protected function initProjects() { // Integrations: Webform Product. $projects['webform_product'] = [ 'title' => $this->t('Webform Product'), - 'description' => $this->t('Provides a webform handler for posting submissions to Pardot.'), + 'description' => $this->t('Links commerce products to webform elements.'), 'url' => Url::fromUri('https://github.com/chx/webform_product'), 'category' => 'integration', ]; @@ -1466,6 +1499,14 @@ protected function initProjects() { 'category' => 'submission', ]; + // Submissions: Webform Submission Anonymisation. + $projects['webform_submission_anonymisation'] = [ + 'title' => $this->t('Webform Submission Anonymisation'), + 'description' => $this->t('Remove personal datas from webform submissions.'), + 'url' => Url::fromUri('https://www.drupal.org/project/webform_submission_anonymisation'), + 'category' => 'submission', + ]; + // Submissions: Webform Submission Change History. $projects['webform_submission_change_history'] = [ 'title' => $this->t('Webform Submission Change History'), @@ -1663,6 +1704,14 @@ protected function initProjects() { // Web services. /**************************************************************************/ + // Web services: Decoupled Kit. + $projects['decoupled_kit'] = [ + 'title' => $this->t('Decoupled Kit'), + 'description' => $this->t('allows to solve some tasks of the decoupled Drupal.'), + 'url' => Url::fromUri('https://www.drupal.org/project/decoupled_kit'), + 'category' => 'web_services', + ]; + // Web services: Gatsby Drupal Webform. $projects['gatsby_drupal_webform'] = [ 'title' => $this->t('Gatsby Drupal Webform'), @@ -1705,7 +1754,6 @@ protected function initProjects() { 'description' => $this->t('Provide revisions and moderation for Webforms.'), 'url' => Url::fromUri('https://www.drupal.org/project/config_entity_revisions'), 'category' => 'workflow', - 'recommended' => TRUE, ]; // Workflow: Maestro. @@ -1714,7 +1762,6 @@ protected function initProjects() { 'description' => $this->t('A business process workflow solution that allows you to create and automate a sequence of tasks representing any business, document approval or collaboration process.'), 'url' => Url::fromUri('https://www.drupal.org/project/maestro'), 'category' => 'workflow', - 'recommended' => TRUE, ]; // Workflow: Workflows Field. @@ -1723,9 +1770,17 @@ protected function initProjects() { 'description' => $this->t('A business process workflow solution that allows you to create and automate a sequence of tasks representing any business, document approval or collaboration process.'), 'url' => Url::fromUri('https://www.drupal.org/project/workflows_field'), 'category' => 'workflow', - 'recommended' => TRUE, ]; + // Workflow: Webform Workflows Element. + $projects['webform_workflows_element'] = [ + 'title' => $this->t('Webform Workflows Element'), + 'description' => $this->t('provides a new element type for Webforms (D8+) that uses the core Workflows functionality to move submissions through a webform.'), + 'url' => Url::fromUri('https://www.drupal.org/project/webform_workflows_element'), + 'category' => 'workflow', + ]; + + /**************************************************************************/ // Development. /**************************************************************************/ diff --git a/web/modules/webform/src/WebformEntityDeleteForm.php b/web/modules/webform/src/WebformEntityDeleteForm.php index 3f07353eeb..10f5dc818e 100644 --- a/web/modules/webform/src/WebformEntityDeleteForm.php +++ b/web/modules/webform/src/WebformEntityDeleteForm.php @@ -13,6 +13,7 @@ class WebformEntityDeleteForm extends WebformConfigEntityDeleteFormBase { * {@inheritdoc} */ public function getDescription() { + // @see \Drupal\webform\Form\WebformEntityDeleteMultipleForm::getDescription return [ 'title' => [ '#markup' => $this->t('This action will…'), diff --git a/web/modules/webform/src/WebformEntityListBuilder.php b/web/modules/webform/src/WebformEntityListBuilder.php index d92062c786..e8b69e5e9f 100644 --- a/web/modules/webform/src/WebformEntityListBuilder.php +++ b/web/modules/webform/src/WebformEntityListBuilder.php @@ -63,6 +63,13 @@ class WebformEntityListBuilder extends ConfigEntityListBuilder { */ protected $state; + /** + * Bulk operations. + * + * @var bool + */ + protected $bulkOperations; + /** * {@inheritdoc} */ @@ -85,9 +92,12 @@ public static function createInstance(ContainerInterface $container, EntityTypeI protected function initialize() { $query = $this->request->query; $config = $this->configFactory->get('webform.settings'); + $this->keys = ($query->has('search')) ? $query->get('search') : ''; $this->category = ($query->has('category')) ? $query->get('category') : $config->get('form.filter_category'); $this->state = ($query->has('state')) ? $query->get('state') : $config->get('form.filter_state'); + $this->bulkOperations = $config->get('settings.webform_bulk_form') ?: FALSE; + $this->limit = $config->get('form.limit') ?: 50; } /** @@ -114,6 +124,11 @@ public function render() { $build['table']['#sticky'] = TRUE; $build['table']['#attributes']['class'][] = 'webform-forms'; + // Bulk operations. + if ($this->bulkOperations && $this->currentUser->hasPermission('administer webform')) { + $build['table'] = \Drupal::formBuilder()->getForm('\Drupal\webform\Form\WebformEntityBulkForm', $build['table']); + } + // Attachments. // Must preload libraries required by (modal) dialogs. WebformDialogHelper::attachLibraries($build); @@ -208,7 +223,7 @@ public function buildHeader() { 'specifier' => 'status', 'field' => 'status', ]; - $header['author'] = [ + $header['owner'] = [ 'data' => $this->t('Author'), 'class' => [RESPONSIVE_PRIORITY_LOW], 'specifier' => 'uid', @@ -301,10 +316,12 @@ public function buildRow(EntityInterface $entity) { // Results. $result_total = $this->storage->getTotalNumberOfResults($entity->id()); - $results_access = $entity->access('submission_view_any'); $results_disabled = $entity->isResultsDisabled(); + $results_access = $entity->access('submission_view_any'); if ($results_disabled || !$results_access) { - $row['results'] = $result_total . ($entity->isResultsDisabled() ? ' ' . $this->t('(Disabled)') : ''); + $row['results'] = ($result_total ? $result_total : '') + . ($result_total && $results_disabled ? ' ' : '') + . ($results_disabled ? $this->t('(Disabled)') : ''); } else { $row['results'] = [ @@ -315,7 +332,6 @@ public function buildRow(EntityInterface $entity) { 'aria-label' => $this->formatPlural($result_total, '@count result for @label', '@count results for @label', ['@label' => $entity->label()]), ], '#url' => $entity->toUrl('results-submissions'), - '#suffix' => ($entity->isResultsDisabled() ? ' ' . $this->t('(Disabled)') : ''), ], ]; } diff --git a/web/modules/webform/src/WebformHelpManager.php b/web/modules/webform/src/WebformHelpManager.php index 5fdeaf0f33..30682971a0 100644 --- a/web/modules/webform/src/WebformHelpManager.php +++ b/web/modules/webform/src/WebformHelpManager.php @@ -1782,6 +1782,10 @@ protected function initHelp() { $t_args[$command_name] = str_replace('-', ':', $command); } } + $t_args += [ + ':href_5x' => 'https://git.drupalcode.org/sandbox/jrockowitz-2941983/-/raw/8.x-5.x/libraries.zip', + ':href_6x' => 'https://git.drupalcode.org/sandbox/jrockowitz-2941983/-/raw/6.x/libraries.zip', + ]; $help['config_libraries_help'] = [ 'group' => 'configuration', 'title' => $this->t('Configuration: Libraries: Help'), @@ -1793,14 +1797,14 @@ protected function initHelp() { '<p>' . $this->t('There are several ways to download the needed third-party libraries.') . '</p>' . '<p><strong>' . $this->t('Recommended') . '</strong></p>' . '<ul>' . - '<li>' . $this->t('Use the <a href="https://github.com/wikimedia/composer-merge-plugin">Composer Merge plugin</a> to include the Webform module\'s <a href="https://cgit.drupalcode.org/webform/tree/composer.libraries.json">composer.libraries.json</a> or generate a custom file using <code>drush @webform-libraries-composer > DRUPAL_ROOT/composer.libraries.json</code>.', $t_args) . '<br/><strong>' . t('<a href="https://www.drupal.org/node/3003140">Learn more »</a>') . '</strong>'. '</li>' . + '<li>' . $this->t('Use the <a href="https://github.com/wikimedia/composer-merge-plugin">Composer Merge plugin</a> to include the Webform module\'s <a href="https://cgit.drupalcode.org/webform/tree/composer.libraries.json">composer.libraries.json</a> or generate a custom file using <code>drush @webform-libraries-composer > DRUPAL_ROOT/composer.libraries.json</code>.', $t_args) . '<br/><strong>' . $this->t('<a href="https://www.drupal.org/node/3003140">Learn more »</a>') . '</strong>'. '</li>' . '</ul>' . '<p><strong>' . $this->t('Alternatives') . '</strong></p>' . '<ul>' . '<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>' . + '<li>' . $this->t('Download and extract a zipped archive containing all webform libraries (<a href=":href_5x">8.x-5.x</a> and <a href=":href_6x">6.x</a>) and extract the directories and files to /libraries or /web/libraries', $t_args) . '</li>' . '</ul>', 'message_type' => 'info', 'message_close' => TRUE, diff --git a/web/modules/webform/src/WebformLibrariesManager.php b/web/modules/webform/src/WebformLibrariesManager.php index 086ba4871d..83f7ecc4af 100644 --- a/web/modules/webform/src/WebformLibrariesManager.php +++ b/web/modules/webform/src/WebformLibrariesManager.php @@ -118,8 +118,8 @@ public function requirements($cli = FALSE) { continue; } - $library_exists = $this->exists($library_name); - $library_path = ($library_exists) ? '/' . $this->find($library_name) : '/libraries/' . $library_name; + $library_exists = $this->exists($library['name']); + $library_path = ($library_exists) ? '/' . $this->find($library['name']) : '/libraries/' . $library['name']; $t_args = [ '@title' => $library['title'], @@ -152,7 +152,7 @@ public function requirements($cli = FALSE) { $stats['@missing']++; $title = $this->t('<span class="color-warning"><strong>@title @version</strong> (CDN).</span>', $t_args); $description = $this->t('Please download the <a href=":homepage_href">@title</a> library from <a href=":download_href">:download_href</a> and copy it to <b>@path</b> or use <a href=":install_href">Drush</a> to install this library.', $t_args); - $severity = REQUIREMENT_WARNING; + $severity = REQUIREMENT_ERROR; } else { // CDN. @@ -191,12 +191,15 @@ public function requirements($cli = FALSE) { } // Description. - $description = [ - 'info' => $info, - ]; - if (!$cli && $severity === REQUIREMENT_WARNING) { - $description['cdn'] = ['#markup' => $this->t('<a href=":href">Disable CDN warning</a>', [':href' => Url::fromRoute('webform.config.advanced')->toString()])]; + $description = []; + if (!$cli && $severity === REQUIREMENT_ERROR) { + $description['cdn'] = [ + '#markup' => '<hr/>' . + $this->t('Relying on a CDN for external libraries can cause unexpected issues with Ajax and BigPipe support. For more information see: <a href=":href">Issue #1988968</a>', [':href' => 'https://www.drupal.org/project/drupal/issues/1988968']) . '<br/>' . + $this->t('<a href=":href">Disable CDN warning</a>', [':href' => Url::fromRoute('webform.config.advanced')->toString()]), + ]; } + $description['info'] = $info; return [ 'webform_libraries' => [ @@ -546,19 +549,22 @@ protected function initLibraries() { // Sort libraries by key. ksort($libraries); - // Map ckeditor plugin libraries and support CKEditor plugins without - // the ckeditor.* prefix. + // Update ckeditor plugin libraries to support CKEditor plugins installed + // without the ckeditor.* prefix. // @see https://www.drupal.org/project/fakeobjects // @see https://www.drupal.org/project/anchor_link foreach ($libraries as $library_name => $library) { + // Add name to all libraries, so that it can be modified if a ckeditor + // plugin is installed without the ckeditor.* prefix. + $libraries[$library_name]['name'] = $library_name; if (strpos($library_name, 'ckeditor.') === 0) { - $library_path = $this->find($library_name) - ?: $this->find(str_replace('ckeditor.', '', $library_name)); + $ckeditor_library_name = str_replace('ckeditor.', '', $library_name); + $library_path = $this->find($ckeditor_library_name); if ($library_path) { + $libraries[$library_name]['name'] = $ckeditor_library_name; $libraries[$library_name]['plugin_path'] = str_replace('libraries/' . $library_name, $library_path, $library['plugin_path']); } } - } // Move deprecated libraries last. diff --git a/web/modules/webform/src/WebformSubmissionConditionsValidator.php b/web/modules/webform/src/WebformSubmissionConditionsValidator.php index 658bb9293b..6291254de1 100644 --- a/web/modules/webform/src/WebformSubmissionConditionsValidator.php +++ b/web/modules/webform/src/WebformSubmissionConditionsValidator.php @@ -111,7 +111,7 @@ public function buildForm(array &$form, FormStateInterface $form_state) { } // Process state/negate. - list($state, $negate) = $this->processState($original_state); + [$state, $negate] = $this->processState($original_state); // If hide/show we need to make sure that validation is not triggered. if (strpos($state, 'visible') === 0) { @@ -300,6 +300,7 @@ public function replaceCrossPageTargets(array $conditions, WebformSubmissionInte * @see \Drupal\webform\WebformSubmissionForm::validateForm */ public function validateForm(array &$form, FormStateInterface $form_state) { + $this->processForm($form, $form_state); $this->validateFormRecursive($form, $form_state); } @@ -383,13 +384,29 @@ protected function validateFormElement(array $element, FormStateInterface $form_ } /****************************************************************************/ - // Submit form methods. + // Submit form method. /****************************************************************************/ /** * {@inheritdoc} */ public function submitForm(array &$form, FormStateInterface $form_state) { + $this->processForm($form, $form_state); + } + + /****************************************************************************/ + // Process form methods. + /****************************************************************************/ + + /** + * Process form and unset submission data for form elements that are hidden. + * + * @param array $form + * An associative array containing the structure of the form. + * @param \Drupal\Core\Form\FormStateInterface $form_state + * The current state of the form. + */ + protected function processForm(array &$form, FormStateInterface $form_state) { /** @var \Drupal\webform\WebformSubmissionInterface $webform_submission */ $webform_submission = $form_state->getFormObject()->getEntity(); @@ -403,7 +420,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) { // Recursive through the form and unset unset submission data for // form elements that are hidden. - $this->submitFormRecursive($form, $webform_submission, $data, $check_access); + $this->processFormRecursive($form, $webform_submission, $data, $check_access); // Set submission data. $webform_submission->setData($data); @@ -424,7 +441,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) { * @param bool $visible * Flag that determine if the currrent form elements are visible. */ - protected function submitFormRecursive(array $elements, WebformSubmissionInterface $webform_submission, array &$data, $check_access, $visible = TRUE) { + protected function processFormRecursive(array $elements, WebformSubmissionInterface $webform_submission, array &$data, $check_access, $visible = TRUE) { foreach ($elements as $key => &$element) { if (!WebformElementHelper::isElement($element, $key)) { continue; @@ -449,7 +466,7 @@ protected function submitFormRecursive(array $elements, WebformSubmissionInterfa $data[$key] = (is_array($data[$key])) ? [] : ''; } - $this->submitFormRecursive($element, $webform_submission, $data, $check_access, $element_visible); + $this->processFormRecursive($element, $webform_submission, $data, $check_access, $element_visible); } } @@ -506,7 +523,7 @@ public function isElementVisible(array $element, WebformSubmissionInterface $web } // Process state/negate. - list($state, $negate) = $this->processState($state); + [$state, $negate] = $this->processState($state); $result = $this->validateConditions($conditions, $webform_submission); // Skip invalid conditions. @@ -539,7 +556,7 @@ public function isElementEnabled(array $element, WebformSubmissionInterface $web } // Process state/negate. - list($state, $negate) = $this->processState($state); + [$state, $negate] = $this->processState($state); $result = $this->validateConditions($conditions, $webform_submission); // Skip invalid conditions. @@ -568,7 +585,7 @@ public function isElementEnabled(array $element, WebformSubmissionInterface $web */ public function validateState($state, array $conditions, WebformSubmissionInterface $webform_submission) { // Process state/negate. - list($state, $negate) = $this->processState($state); + [$state, $negate] = $this->processState($state); // Validation conditions. $result = $this->validateConditions($conditions, $webform_submission); @@ -751,7 +768,7 @@ protected function checkCondition(array $element, $selector, array $condition, W } // Process trigger state/negate. - list($trigger, $trigger_negate) = $this->processState($trigger); + [$trigger, $trigger_negate] = $this->processState($trigger); // Process triggers (aka remote conditions). // @see \Drupal\webform\Element\WebformElementStates::processWebformStates @@ -833,7 +850,7 @@ protected function checkConditionTrigger($trigger, $trigger_value, $element_valu $greater = $trigger_value; } else { - list($greater, $less) = explode(':', $trigger_value); + [$greater, $less] = explode(':', $trigger_value); } $is_greater_than = ($greater === NULL || $greater === '' || floatval($element_value) >= floatval($greater)); $is_less_than = ($less === NULL || $less === '' || floatval($element_value) <= floatval($less)); @@ -888,10 +905,10 @@ protected function processState($state) { */ protected function &getBuildElements(array &$form) { if (isset($form['#webform_id']) && isset($form['elements'])) { - $form_elements =& $form['elements']; + $form_elements = &$form['elements']; } else { - $form_elements =& $form; + $form_elements = &$form; } $elements = []; diff --git a/web/modules/webform/src/WebformSubmissionExporter.php b/web/modules/webform/src/WebformSubmissionExporter.php index df7ebc764d..9a3c9d5d5d 100644 --- a/web/modules/webform/src/WebformSubmissionExporter.php +++ b/web/modules/webform/src/WebformSubmissionExporter.php @@ -273,6 +273,7 @@ public function getDefaultExportOptions() { 'range_latest' => '', 'range_start' => '', 'range_end' => '', + 'uid' => '', 'order' => 'asc', 'state' => 'all', 'locked' => '', @@ -595,6 +596,7 @@ public function buildExportOptionsForm(array &$form, FormStateInterface $form_st '#options' => [ 'all' => $this->t('All'), 'latest' => $this->t('Latest'), + 'uid' => $this->t('Submitted by'), 'serial' => $this->t('Submission number'), 'sid' => $this->t('Submission ID'), 'date' => $this->t('Created date'), @@ -618,6 +620,26 @@ public function buildExportOptionsForm(array &$form, FormStateInterface $form_st '#default_value' => $export_options['range_latest'], ], ]; + $form['export']['download']['submitted_by'] = [ + '#type' => 'container', + '#attributes' => ['class' => ['container-inline']], + '#states' => [ + 'visible' => [ + ':input[name="range_type"]' => ['value' => 'uid'], + ], + ], + 'uid' => [ + '#type' => 'entity_autocomplete', + '#title' => $this->t('User'), + '#target_type' => 'user', + '#default_value' => $export_options['uid'], + '#states' => [ + 'visible' => [ + ':input[name="range_type"]' => ['value' => 'uid'], + ], + ], + ], + ]; $ranges = [ 'serial' => ['#type' => 'number'], 'sid' => ['#type' => 'number'], @@ -929,6 +951,11 @@ public function getQuery() { break; } + // Filter by UID. + if ($export_options['uid'] !== '') { + $query->condition('uid', $export_options['uid'], '='); + } + // Filter by (completion) state. switch ($export_options['state']) { case 'draft': diff --git a/web/modules/webform/src/WebformSubmissionForm.php b/web/modules/webform/src/WebformSubmissionForm.php index 5e8f03606d..d608e70464 100644 --- a/web/modules/webform/src/WebformSubmissionForm.php +++ b/web/modules/webform/src/WebformSubmissionForm.php @@ -9,6 +9,8 @@ use Drupal\Core\Cache\Cache; use Drupal\Core\Entity\EntityInterface; use Drupal\Core\Entity\ContentEntityForm; +use Drupal\Core\Entity\FieldableEntityInterface; +use Drupal\Core\Form\FormBuilderInterface; use Drupal\Core\Form\FormState; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Messenger\MessengerInterface; @@ -478,6 +480,24 @@ protected function overrideSettings(WebformSubmissionInterface $webform_submissi if ($this->isSharePage() && !$webform->getSetting('ajax', TRUE)) { $webform->setSettingOverride('ajax', TRUE); } + + // Apply source entity open/close state to the webform before + // it is rendered. + $source_entity = $webform_submission->getSourceEntity(); + if ($webform->isOpen() && $source_entity && $source_entity instanceof FieldableEntityInterface) { + foreach ($source_entity->getFieldDefinitions() as $fieldName => $fieldDefinition) { + if ($fieldDefinition->getType() === 'webform') { + $item = $source_entity->get($fieldName); + if ($item->target_id === $webform->id()) { + $webform + ->setOverride() + ->set('open', $item->open) + ->set('close', $item->close) + ->setStatus($item->status); + } + } + } + } } /** @@ -627,6 +647,18 @@ public function form(array $form, FormStateInterface $form_state) { // Add a reference to the webform's id to the $form render array. $form['#webform_id'] = $webform->id(); + // Move form settings to properties. + $settings_to_properties = [ + 'form_method' => '#method', + 'form_action' => '#action', + 'form_attributes' => '#attributes', + ]; + foreach ($settings_to_properties as $setting_name => $property_name) { + if ($this->getWebformSetting($setting_name)) { + $form[$property_name] = $this->getWebformSetting($setting_name); + } + } + // Track current page name or index by setting the // "data-webform-wizard-page" // attribute which is used Drupal.behaviors.webformWizardTrackPage. @@ -673,7 +705,9 @@ public function form(array $form, FormStateInterface $form_state) { $class[] = "webform-submission-$webform_id-$source_entity_type-$source_entity_id-$operation-form"; } array_walk($class, ['\Drupal\Component\Utility\Html', 'getClass']); - $form['#attributes']['class'] = $class; + $form += ['#attributes' => []]; + $form['#attributes'] += ['class' => []]; + $form['#attributes']['class'] = array_merge($class, $form['#attributes']['class']); // Get last class, which is the most specific, as #states prefix. // @see \Drupal\webform\WebformSubmissionForm::addStatesPrefix @@ -1014,7 +1048,7 @@ protected function displayMessages(array $form, FormStateInterface $form_state) && $this->operation === 'add' && $this->getWebformSetting('draft') !== WebformInterface::DRAFT_NONE && $this->getWebformSetting('draft_multiple', FALSE) - && ($previous_draft_total = $this->getStorage()->getTotal($webform, $this->sourceEntity, $this->currentUser(), ['in_draft' => TRUE])) + && ($previous_draft_total = $this->getStorage()->getTotal($webform, $this->sourceEntity, $this->currentUser(), ['in_draft' => TRUE, 'check_source_entity' => TRUE])) ) { if ($previous_draft_total > 1) { $this->getMessageManager()->display(WebformMessageManagerInterface::DRAFT_PENDING_MULTIPLE); @@ -2057,7 +2091,11 @@ protected function setFormPropertiesFromElements(array &$form, array &$elements) else { $form[$key] = $value; } - unset($elements[$key]); + // Remove the properties from the $elements and $form['elements'] array. + unset( + $elements[$key], + $form['elements'][$key] + ); } } // Replace token in #attributes. @@ -2239,7 +2277,7 @@ protected function displayCurrentPage(array &$form, FormStateInterface $form_sta $pages = $this->getWebform()->getPages($this->operation); foreach ($pages as $page_key => $page) { if (isset($form['elements'][$page_key])) { - $page_element =& $form['elements'][$page_key]; + $page_element = &$form['elements'][$page_key]; $page_element_plugin = $this->elementManager->getElementInstance($page_element); if ($page_element_plugin instanceof WebformElementWizardPageInterface) { if ($page_key != $current_page) { @@ -2320,7 +2358,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); - $this->setTrustedRedirectUrl($form_state, $redirect_url); + $form_state->setRedirectUrl($redirect_url); return; case WebformInterface::CONFIRMATION_URL: diff --git a/web/modules/webform/src/WebformSubmissionListBuilder.php b/web/modules/webform/src/WebformSubmissionListBuilder.php index 9ec25a8675..2cf427da6d 100644 --- a/web/modules/webform/src/WebformSubmissionListBuilder.php +++ b/web/modules/webform/src/WebformSubmissionListBuilder.php @@ -547,7 +547,7 @@ protected function buildEntityList() { // Customize buttons. if ($this->customize) { - $build['custom_top'] = $this->buildCustomizeButton(); + $build['customize'] = $this->buildCustomizeButton(); } // Display info. @@ -560,15 +560,16 @@ protected function buildEntityList() { $build['table']['#sticky'] = TRUE; $build['table']['#attributes']['class'][] = 'webform-results-table'; - // Customize. - // Only displayed when more than 20 submissions are being displayed. - if ($this->customize && isset($build['table']['#rows']) && count($build['table']['#rows']) >= 20) { - $build['custom_bottom'] = $this->buildCustomizeButton(); - if (isset($build['pager'])) { - $build['pager']['#weight'] = 10; - } + // Bulk operations only visible on webform submissions pages. + $webform_submission_bulk_form = $this->configFactory->get('webform.settings')->get('settings.webform_submission_bulk_form'); + if ($webform_submission_bulk_form + && !$this->account + && $this->webform + && $this->webform->access('submission_update_any')) { + $build['table'] = \Drupal::formBuilder()->getForm('\Drupal\webform\Form\WebformSubmissionBulkForm', $build['table'], $this->webform->access('submission_delete_any')); } + // Must preload libraries required by (modal) dialogs. // Must preload libraries required by (modal) dialogs. WebformDialogHelper::attachLibraries($build); diff --git a/web/modules/webform/src/WebformSubmissionStorage.php b/web/modules/webform/src/WebformSubmissionStorage.php index 0b380aef4a..45e23677e3 100644 --- a/web/modules/webform/src/WebformSubmissionStorage.php +++ b/web/modules/webform/src/WebformSubmissionStorage.php @@ -548,6 +548,7 @@ public function getSourceEntityAsOptions(WebformInterface $webform, $entity_type protected function getTerminusSubmission(WebformInterface $webform, EntityInterface $source_entity = NULL, AccountInterface $account = NULL, array $options = [], $terminus = 'first') { $options += ['in_draft' => FALSE]; $query = $this->getQuery(); + $query->accessCheck(TRUE); $this->addQueryConditions($query, $webform, $source_entity, $account, $options); $query->sort('sid', ($terminus === 'first') ? 'ASC' : 'DESC'); $query->range(0, 1); @@ -575,6 +576,7 @@ protected function getSiblingSubmission(WebformSubmissionInterface $webform_subm $webform = $webform_submission->getWebform(); $query = $this->getQuery(); + $query->accessCheck(TRUE); $this->addQueryConditions($query, $webform, $source_entity, $account, $options); if ($direction === 'previous') { diff --git a/web/modules/webform/src/WebformSubmissionViewsData.php b/web/modules/webform/src/WebformSubmissionViewsData.php index 267e3682b6..baa950f252 100644 --- a/web/modules/webform/src/WebformSubmissionViewsData.php +++ b/web/modules/webform/src/WebformSubmissionViewsData.php @@ -15,7 +15,9 @@ class WebformSubmissionViewsData extends EntityViewsData { public function getViewsData() { $data = parent::getViewsData(); - $data['webform_submission']['table']['base']['access query tag'] = 'webform_submission_access'; + // Disable hook_webform_submission_query_access_alter() to remove + // performance issues related to loading all webforms. + // $data['webform_submission']['table']['base']['access query tag'] = 'webform_submission_access'; $data['webform_submission']['webform_submission_bulk_form'] = [ 'title' => $this->t('Webform submission operations bulk form'), diff --git a/web/modules/webform/src/WebformTranslationConfigManager.php b/web/modules/webform/src/WebformTranslationConfigManager.php index 0652a8d425..009e496beb 100644 --- a/web/modules/webform/src/WebformTranslationConfigManager.php +++ b/web/modules/webform/src/WebformTranslationConfigManager.php @@ -2,6 +2,7 @@ namespace Drupal\webform; +use Drupal\block\Entity\Block; use Drupal\Component\Utility\NestedArray; use Drupal\Component\Utility\Unicode; use Drupal\Core\Config\TypedConfigManagerInterface; @@ -109,7 +110,7 @@ public function alterForm(&$form, FormStateInterface $form_state) { if ($config_name === 'webform.settings') { $this->alterConfigSettingsForm($config_name, $config_element); } - elseif ($config_name === 'block.block.webform') { + elseif (strpos($config_name, 'block.block.') === 0) { $this->alterConfigBlockForm($config_name, $config_element); } elseif (strpos($config_name, 'field.field.') === 0) { @@ -151,6 +152,11 @@ protected function alterConfigSettingsForm($config_name, array &$config_element) * The webform block configuration element. */ protected function alterConfigBlockForm($config_name, array &$config_element) { + $block = Block::load(str_replace('block.block.', '', $config_name)); + if (!$block || $block->getPluginId() !== 'webform_block') { + return; + } + $this->alterTypedConfigElements($config_element['settings'], "block.settings.webform_block"); } @@ -319,7 +325,7 @@ public static function validateWebformForm(&$form, FormStateInterface $form_stat * The current state of the form. */ protected function alterConfigWebformFormHandlers($config_name, &$config_element, &$form, $form_state) { - $handlers =& $config_element['handlers']; + $handlers = &$config_element['handlers']; // Verify if the webform has any handler. if(!isset($handlers)){ return; @@ -375,7 +381,7 @@ protected function alterConfigWebformFormElements($config_name, &$config_element $source_elements = $this->translationManager->getSourceElements($webform); $translation_elements = $this->translationManager->getTranslationElements($webform, $translation_langcode); - $elements =& $config_element['elements']; + $elements = &$config_element['elements']; // Remove the #theme and source properties so that just the // translation details element is rendered. @@ -437,7 +443,7 @@ protected function buildConfigWebformFormElements(array $element, array $transla // NOTE: It is possible that all the below code could be moved into // the WebformElement plugin but this would create more abstraction. // For now, it is easier to keep all the logic in this one class/service. - if (is_array($property_value) && !WebformArrayHelper::isMultidimensional($property_value)) { + if (is_array($property_value) && !WebformArrayHelper::isMultidimensional($property_value) && !Element::properties($property_value)) { // Options. $elements[$property_key] = $this->buildConfigWebformFormOptionsPropertyElement( $element, @@ -854,8 +860,8 @@ protected function alterSchemaElementsRecursive(array &$elements, array $schema_ continue; } - $element =& $elements[$element_key]; - $schema =& $schema_mapping[$element_key]; + $element = &$elements[$element_key]; + $schema = &$schema_mapping[$element_key]; if (isset($schema['type']) && $schema['type'] === 'mapping') { $this->alterSchemaElementsRecursive($element, $schema['mapping']); @@ -926,6 +932,7 @@ protected function alterTextareaElement(array &$element, $mode = 'yaml') { '#mode' => $mode, '#value' => $source_value, '#disabled' => TRUE, + '#skip_validation' => TRUE, '#attributes' => ['readonly' => TRUE], ]; unset($element['source']['#markup']); diff --git a/web/modules/webform/src/WebformTranslationManager.php b/web/modules/webform/src/WebformTranslationManager.php index 01012f91bd..26409cea89 100644 --- a/web/modules/webform/src/WebformTranslationManager.php +++ b/web/modules/webform/src/WebformTranslationManager.php @@ -12,6 +12,7 @@ use Drupal\webform\Utility\WebformElementHelper; use Drupal\webform\Utility\WebformYaml; use Drupal\Core\Routing\RouteMatchInterface; +use Drupal\webform\Plugin\WebformElement\WebformCustomComposite; /** * Defines a class to translate webform elements. @@ -210,6 +211,7 @@ protected function removeUnTranslatablePropertiesFromElement(array &$element) { $element_type = (isset($element['#type'])) ? $element['#type'] : NULL; $translatable_properties = $this->getTranslatableProperties($element_type); + $element_plugin = $this->elementManager->getElementInstance($element); foreach ($element as $property_key => $property_value) { $translatable_property_key = $property_key; @@ -223,7 +225,7 @@ protected function removeUnTranslatablePropertiesFromElement(array &$element) { // Unset options and answers that are webform option ids. unset($element[$property_key]); } - elseif ($translatable_property_key === '#element' && $element_type === 'webform_custom_composite') { + elseif ($translatable_property_key === '#element' && $element_plugin instanceof WebformCustomComposite) { foreach ($element[$property_key] as &$composite_element_value) { $this->removeUnTranslatablePropertiesFromElement($composite_element_value); } 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 cc42a9e140..efc1148bc4 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -19,6 +20,7 @@ elements: | '#title': textfield '#type': textfield '#required': true + css: '' javascript: '' settings: @@ -60,6 +62,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 56d9088682..59ab6ec219 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -20,6 +21,7 @@ elements: | test: '#type': textfield '#title': test + css: '' javascript: '' settings: @@ -61,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 7990959301..0a6e02cacf 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -20,6 +21,7 @@ elements: | test: '#type': textfield '#title': test + css: '' javascript: '' settings: @@ -61,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 b835ec6e0b..03792ec6e1 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -20,6 +21,7 @@ elements: | test: '#type': textfield '#title': test + css: '' javascript: '' settings: @@ -61,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 1933b14afa..3919ec6923 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -20,6 +21,7 @@ elements: | test: '#type': textfield '#title': test + css: '' javascript: '' settings: @@ -61,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 98f25cc5fd..5d3ec04c84 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -17,6 +18,7 @@ category: 'Test: Ajax' elements: | description: '#markup': 'This webform will redirect to the homepage when submitted.' + css: '' javascript: '' settings: @@ -58,6 +60,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 f303ac17f5..c7ae172a92 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -20,6 +21,7 @@ elements: | test: '#type': textfield '#title': test + css: '' javascript: '' settings: @@ -61,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 a9334e633f..b8a77a4572 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -103,6 +104,7 @@ elements: | one: One two: Two three: Three + css: '' javascript: '' settings: @@ -144,6 +146,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 226efaa588..9b32e381d2 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -65,6 +66,35 @@ elements: | martial_status: Single employment_status: Unemployed age: 20 + webform_custom_composite_fieldset: + '#type': webform_custom_composite + '#title': webform_custom_composite_fieldset + '#wrapper_type': fieldset + '#wrapper_attributes': + class: + - custom-class + '#element': + first_name: + '#type': textfield + '#title': 'First name' + last_name: + '#type': textfield + '#title': 'Last name' + webform_custom_composite_container: + '#type': webform_custom_composite + '#title': webform_custom_composite_container + '#wrapper_type': container + '#wrapper_attributes': + class: + - custom-class + '#element': + first_name: + '#type': textfield + '#title': 'First name' + last_name: + '#type': textfield + '#title': 'Last name' + css: '' javascript: '' settings: @@ -106,6 +136,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 19ed0e88d5..f19b89d2ef 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -36,6 +37,7 @@ elements: | managed_file: '#type': managed_file '#title': managed_file + css: '' javascript: '' settings: @@ -77,6 +79,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 288f4fa9f6..c8bf90aff8 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -455,6 +456,7 @@ elements: | q2: 1 q3: 1 '#format': table + css: '' javascript: '' settings: @@ -496,6 +498,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 43975e995e..4166a99183 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -711,6 +712,7 @@ elements: | phone: '+1 212-333-4444' ext: 0 '#format_items': table + css: '' javascript: '' settings: @@ -752,6 +754,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 8a5af98181..439997f51c 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -20,6 +21,7 @@ elements: | test: '#type': textfield '#title': test + css: '' javascript: '' settings: @@ -61,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 893d866dcb..6e8e006240 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -20,6 +21,7 @@ elements: | test: '#type': textfield '#title': test + css: '' javascript: '' settings: @@ -61,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 649b73ac0d..e595b56a1f 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -20,6 +21,7 @@ elements: | test: '#type': textfield '#title': test + css: '' javascript: '' settings: @@ -61,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 c31af3b6a0..f16834d5fa 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -20,6 +21,7 @@ elements: | test: '#type': textfield '#title': test + css: '' javascript: '' settings: @@ -61,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 eaee10f06a..77e6f4882f 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -20,6 +21,7 @@ elements: | test: '#type': textfield '#title': test + css: '' javascript: '' settings: @@ -61,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 95e5d3bc56..e36cf5a92b 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -20,6 +21,7 @@ elements: | test: '#type': textfield '#title': test + css: '' javascript: '' settings: @@ -61,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 c4739e72e9..b5ea8f0bc6 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -17,6 +18,7 @@ category: 'Test: Confirmation' elements: | description: '#markup': 'This webform will redirect to the homepage when submitted.' + css: '' javascript: '' settings: @@ -58,6 +60,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 065b11e720..df74d75fb0 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -20,6 +21,7 @@ elements: | test: '#type': textfield '#title': test + css: '' javascript: '' settings: @@ -61,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 bdcdfb32cc..c0a0478b53 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -63,6 +64,7 @@ elements: | '#default_value': | {textarea line 1} {textarea line 2} + textfield: '#type': textfield '#title': textfield @@ -129,10 +131,7 @@ elements: | range: '#type': range '#title': range - '#min': 0 - '#max': 10 - '#step': 1 - '#default_value': 1 + '#default_value': '1' tel: '#type': tel '#title': tel @@ -204,7 +203,9 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true - '#default_value': 1 + filter: + type: _none + '#default_value': '1' entity_autocomplete_users: '#type': entity_autocomplete '#title': entity_autocomplete_users @@ -213,6 +214,8 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true + filter: + type: _none '#default_value': - 1 - 2 @@ -236,7 +239,7 @@ elements: | '#default_value': - 1 - 2 - + css: '' javascript: '' settings: @@ -278,6 +281,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 e9426a5f1a..42393df627 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -119,6 +120,7 @@ elements: | fieldset_textfield_access: '#type': textfield '#title': fieldset_textfield_access + css: '' javascript: '' settings: @@ -160,6 +162,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 8b61932753..646543d0ad 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -157,6 +158,7 @@ elements: | '#draft_hide': true '#wizard_prev_hide': true '#wizard_next_hide': true + css: '' javascript: '' settings: @@ -198,6 +200,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 aeffa9c303..889f440945 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -58,6 +59,7 @@ elements: | class: - preview_next_button_attributes style: 'color: orange' + css: '' javascript: '' settings: @@ -99,6 +101,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 7f9748ee9c..c970183127 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -70,6 +71,7 @@ elements: | administrative_area: CA country_code: US langcode: en + css: '' javascript: '' settings: @@ -111,6 +113,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 e2d00ea8fe..2b88068b4b 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -19,6 +20,7 @@ elements: | '#type': item '#title': 'Below markup contains HTML tags' '#markup': 'Hello <ignored></tag><b>…Goodbye</b>' + css: '' javascript: '' settings: @@ -60,6 +62,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 7e2388bf23..31d44f7e50 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -22,6 +23,7 @@ elements: | one two three + '#class__description': 'This is a custom class description.' '#style__description': 'This is a custom style description.' '#attributes__description': 'This is a custom attributes description.' @@ -30,8 +32,19 @@ elements: | - one - two - four + - five style: 'color: red' custom: test + webform_element_attributes_no_classes: + '#type': webform_element_attributes + '#title': webform_element_attributes_no_classes + '#default_value': + class: + - one + - two + - four + - five + css: '' javascript: '' settings: @@ -73,6 +86,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 668ed1c857..d76638dc2b 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -37,6 +38,7 @@ elements: | '#autocomplete_existing': true '#autocomplete_limit': 5 '#autocomplete_match': 1 + css: '' javascript: '' settings: @@ -78,6 +80,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 54c67447e4..3f7ab552a1 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -40,6 +41,7 @@ elements: | captcha_recaptcha: '#type': captcha '#captcha_type': recaptcha/reCAPTCHA + css: '' javascript: '' settings: @@ -81,6 +83,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 1b0cf772e1..a272a7facd 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -31,6 +32,7 @@ elements: | '#title': checkbox_return_value_raw '#return_value': custom_return_value_raw '#format': raw + css: '' javascript: '' settings: @@ -72,6 +74,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 ab1eab9ef2..29b951d1cd 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -34,6 +35,7 @@ elements: | One: One Two: Two Three: Three + css: '' javascript: '' settings: @@ -75,6 +77,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 ee2bf963ac..6833840cac 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -208,6 +209,7 @@ elements: | '#disabled': true three: '#disabled': true + css: '' javascript: '' settings: @@ -249,6 +251,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 c6c757da68..72ae628fd5 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -68,6 +69,7 @@ elements: | include_anonymous: true '#default_value': - 1 + css: '' javascript: '' settings: @@ -109,6 +111,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 7fbb1c5d2b..e353bb4d9a 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -54,6 +55,20 @@ elements: | one: One two: Two three: Three + yaml_indexed_array: + '#type': webform_codemirror + '#mode': yaml + '#title': yaml_indexed_array + '#description': 'Pass an indexed array as the default value' + '#default_value': + - one + yaml_indexed_associative_array: + '#type': webform_codemirror + '#mode': yaml + '#title': yaml_indexed_associative_array + '#description': 'Pass an indexed associative array as the default value' + '#default_value': + - one: One yaml_decode_value: '#type': webform_codemirror '#mode': yaml @@ -102,6 +117,7 @@ elements: | {% set value = "Hello" %} {{ value }} + css: '' javascript: '' settings: @@ -143,6 +159,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 78e0c3fee2..4f7d1db494 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -57,6 +58,7 @@ elements: | '#field_suffix': ' yrs. old' '#min': 1 '#max': 125 + css: '' javascript: '' settings: @@ -98,6 +100,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 5a60c0b025..c3ab78d710 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -133,6 +134,7 @@ elements: | visible: ':input[name="states_checkbox"]': checked: true + css: '' javascript: '' settings: @@ -174,6 +176,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 339b4afdb0..284fdfa5c7 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -90,6 +91,7 @@ elements: | {% endspaceless %} '#ajax': true + css: '' javascript: '' settings: @@ -131,6 +133,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 ce2de25780..b6ff8ff92f 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -153,6 +154,7 @@ elements: | <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: @@ -194,6 +196,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 eedf757dc5..98ef65a6df 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -70,6 +71,7 @@ elements: | '#display_on': none '#store': true '#template': 'sid: [webform_submission:sid]' + css: '' javascript: '' settings: @@ -111,6 +113,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 54d19bf031..db808c3c57 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -97,6 +98,7 @@ elements: | '#title': webform_computed_twig_spaceless '#whitespace': spaceless '#template': ' <em>This is spaceless</em> <br/> ' + css: '' javascript: '' settings: @@ -138,6 +140,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 fe3fb07a63..a03de66877 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -74,6 +75,7 @@ elements: | fieldset_title_display_invisible_textfield: '#type': textfield '#title': fieldset_title_display_invisible_textfield + css: '' javascript: '' settings: @@ -115,6 +117,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 407f9ce5cb..149cabda67 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -87,6 +88,7 @@ elements: | '#counter_type': word '#counter_maximum': 10 '#counter_maximum_message': '%d character(s) remaining. This is custom text' + css: '' javascript: '' settings: @@ -128,6 +130,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 7266cf29a6..7a86280220 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -82,6 +83,7 @@ elements: | '#title': date_datepicker_placeholder '#datepicker': true '#placeholder': '{date}' + css: '' javascript: '' settings: @@ -123,6 +125,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 258f91c533..e7adc24828 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -95,6 +96,7 @@ elements: | '#title': datelist '#default_value': - datelist: '2009-08-18T01:00:00-05:00' + css: '' javascript: '' settings: @@ -136,6 +138,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 a42d67ab34..289119718a 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -153,6 +154,7 @@ elements: | '#autocomplete': 'off' '#default_value': - datetime: '2009-08-18T01:00:00-05:00' + css: '' javascript: '' settings: @@ -194,6 +196,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_description.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_description.yml index 60b597932d..d588ca3966 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_description.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_description.yml @@ -1,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -67,6 +68,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' @@ -98,6 +102,8 @@ settings: 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 @@ -153,6 +159,8 @@ settings: results_customize: false token_view: false token_update: false + token_delete: false + serial_disabled: false access: create: roles: 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 940b14586a..a125491a5f 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -514,6 +515,7 @@ elements: | '#title': 'Machine name' '#description': 'This is a description for the ''machine_name'' element.' '#description_display': tooltip + css: '' javascript: '' settings: @@ -555,6 +557,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 8b398240e7..6415321636 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -46,6 +47,7 @@ elements: | '#open': true details_help_markup: '#markup': '<p>This is some markup</p>' + css: '' javascript: '' settings: @@ -87,6 +89,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 8d947bd1e7..e6a1b32744 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -365,6 +366,7 @@ elements: | '#type': webform_video_file '#title': 'Video file' '#disabled': true + css: '' javascript: '' settings: @@ -406,6 +408,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 e30e653d0c..02c5841723 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -42,6 +43,7 @@ elements: | '#type': webform_email_confirm '#title': email_confirm_flexbox '#flexbox': 1 + css: '' javascript: '' settings: @@ -83,6 +85,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 1f0938b711..adffe28352 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -27,6 +28,7 @@ elements: | '#type': webform_email_multiple '#title': email_multiple_three '#cardinality': 3 + css: '' javascript: '' settings: @@ -68,6 +70,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 4f4ee7c2d5..ac06847440 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -85,6 +86,7 @@ elements: | auto_create: true auto_create_bundle: tags '#default_value': 1 + css: '' javascript: '' settings: @@ -126,6 +128,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 027b8dc127..186f6144a6 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -62,6 +63,7 @@ elements: | include_anonymous: true '#default_value': - 1 + css: '' javascript: '' settings: @@ -103,6 +105,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 4e045b14e6..c24a20827e 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -29,6 +30,7 @@ elements: | '#title': webform_excluded_columns '#default_value': webform_excluded_columns: webform_excluded_columns + css: '' javascript: '' settings: @@ -70,6 +72,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 d82f2e4d39..21d2b94e8d 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -37,6 +38,7 @@ elements: | '#default_value': webform_excluded_elements: webform_excluded_elements webform_excluded_elements_markup: webform_excluded_elements_markup + css: '' javascript: '' settings: @@ -78,6 +80,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 18553ad018..463bfa2640 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -60,6 +61,7 @@ elements: | '#field_suffix': suffix fieldset_markup: '#markup': '<p>This is some markup</p>' + css: '' javascript: '' settings: @@ -101,6 +103,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 e2748475f7..12f92a75e8 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -978,6 +979,7 @@ elements: | toggle_rating: '#type': rating '#title': rating + css: '' javascript: '' settings: @@ -1019,6 +1021,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 56080f24fd..20c18ced27 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -805,6 +806,7 @@ elements: | style: 'padding: 30px; background: #ccc; text-align: center' flex: '#markup': 1 + css: '' javascript: '' settings: @@ -846,6 +848,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 cde553dfd7..73d7aed9d0 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -1365,6 +1366,7 @@ elements: | '#title': 'Machine name (Raw value)' '#default_value': loremipsum '#format': raw + css: '' javascript: '' settings: @@ -1406,6 +1408,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 837b78212a..feb4b905a2 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -213,6 +214,7 @@ elements: | '#type': textfield '#title': fieldset_custom_children_textfield '#default_value': '{fieldset_custom_children_textfield}' + css: '' javascript: '' settings: @@ -254,6 +256,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 f53ea0bec7..6fdebec134 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -1919,6 +1920,7 @@ elements: | '#multiple': true '#file_extensions': txt '#format_items': ul + css: '' javascript: '' settings: @@ -1960,6 +1962,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 c50422fa7b..7199259785 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -26,6 +27,7 @@ elements: | - 1 - 2 - 3 + css: '' javascript: '' settings: @@ -67,6 +69,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 8a5be1f335..2f5b5da134 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -84,6 +85,7 @@ elements: | '#title': height_select_empty_required '#height_type': select '#required': true + css: '' javascript: '' settings: @@ -125,6 +127,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 a25d185e04..432640a965 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -37,6 +38,10 @@ elements: | '#type': textfield '#title': help_xss '#help': '{This is an example of help with <b>XSS <script>alert("XSS")</b>}' + help_empty: + '#type': textfield + '#title': help_empty + '#help': '[webform_submission:values:not_valid:clear]' help_checkbox: '#type': checkbox '#title': help_checkbox @@ -132,6 +137,7 @@ elements: | '#help_display': element_after help_after_details: '#markup': '{This is markup}' + css: '' javascript: '' settings: @@ -173,6 +179,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 2b9f77c1ae..68aebc0dbb 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -2085,6 +2086,7 @@ elements: | '#help_display': element_after machine_name_hr: '#type': webform_horizontal_rule + css: '' javascript: '' settings: @@ -2126,6 +2128,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 b2a81f0a6f..70bdcb37c1 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -101,6 +102,7 @@ elements: | '#attributes': class: - webform-horizontal-rule--glyph + css: '' javascript: '' settings: @@ -142,6 +144,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 c17f49bb43..a655e5e06f 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -41,6 +42,7 @@ elements: | '#required': true '#default_value': 'Hello <b>World!!!</b>' '#format': false + css: '' javascript: '' settings: @@ -82,6 +84,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 ee840de175..0ac6552d87 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -546,6 +547,7 @@ elements: | table: '#type': table '#title': 'Table | <script>alert(''This markup is not escaped properly!!!'') </script>' + css: '' javascript: '' settings: @@ -587,6 +589,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 34fd12ed83..76488b098b 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -549,6 +550,7 @@ elements: | table: '#type': table '#title': '<u>Table</u>' + css: '' javascript: '' settings: @@ -590,6 +592,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 825493dd64..2ae37a2468 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -69,6 +70,7 @@ elements: | '#title': custom_composite_textfield '#pre_render': - webform_test_ignored_element_callback + css: '' javascript: '' settings: @@ -110,6 +112,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 644807fc16..e7b7b1efd0 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -22,6 +23,7 @@ elements: | '#type': webform_image_file '#title': 'webform_image_file_advanced (max: 20x20)' '#max_resolution': 20x20 + css: '' javascript: '' settings: @@ -63,6 +65,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 6e32b3ffa3..65d07947d8 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -20,6 +21,7 @@ elements: | '#title': webform_image_file_attachment '#file_extensions': gif '#attachment_image_style': thumbnail + css: '' javascript: '' settings: @@ -61,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 340a3fa941..779c019677 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -25,6 +26,7 @@ elements: | '#height_title': '{height_title}' '#width_title': '{width_title}' '#default_value': 300x400 + css: '' javascript: '' settings: @@ -66,6 +68,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 25ca4e127d..07815ca1c0 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -93,6 +94,7 @@ elements: | '#type': textfield '#title': module '#input_mask': '999' + css: '' javascript: '' settings: @@ -134,6 +136,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 dfad27b2e3..bff4ed6873 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -56,6 +57,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 f14085641c..dd97a75486 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -97,6 +98,7 @@ elements: | 1: 'Option 1' 2: 'Option 2' 3: 'Option 3' + css: '' javascript: '' settings: @@ -138,6 +140,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 6a2810df5e..f9f123583b 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -69,6 +70,7 @@ elements: | '#geolocation': true '#hidden': true '#geocomplete': true + css: '' javascript: '' settings: @@ -110,6 +112,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 836ac25592..4f00bb5763 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -68,6 +69,7 @@ elements: | '#type': managed_file '#title': managed_file_extensions '#file_extensions': 'txt, text' + css: '' javascript: '' settings: @@ -109,6 +111,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 5bc2a4cf28..b45e50c286 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -19,6 +20,7 @@ elements: | '#type': managed_file '#title': managed_file '#file_extensions': txt + css: '' javascript: '' settings: @@ -60,6 +62,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 c3efc01b42..7068db7f1f 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -64,6 +65,7 @@ elements: | '#type': managed_file '#title': managed_file_help_none '#file_help': none + css: '' javascript: '' settings: @@ -105,6 +107,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 9a2404ab39..b91f64019a 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -34,6 +35,7 @@ elements: | managed_file: '#type': managed_file '#title': managed_file + css: '' javascript: '' settings: @@ -75,6 +77,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '1 MB' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 d12f631b78..7893e2fdb9 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -31,6 +32,7 @@ elements: | '#type': managed_file '#title': 'File truncate (255)' '#file_name': file_truncate_123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 + css: '' javascript: '' settings: @@ -72,6 +74,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 127947c63d..7d62c701db 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -59,6 +60,7 @@ elements: | '#file_preview': url '#file_extensions': txt '#multiple': true + css: '' javascript: '' settings: @@ -100,6 +102,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 1abaad0d2d..115f7ee528 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -130,6 +131,7 @@ elements: | two: Two three: Three '#destination__type': webform_email_multiple + css: '' javascript: '' settings: @@ -171,6 +173,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 b3e3d8c798..284f5cb2c5 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -33,6 +34,7 @@ elements: | '#type': webform_markup '#markup': '<p>Alter this markup.</p>' '#display_on': both + css: '' javascript: '' settings: @@ -74,6 +76,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 c76a7536e3..a132123cc4 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -71,6 +72,7 @@ elements: | '#type': webform_video_file '#title': 'video_file (mp4)' '#file_extensions': mp4 + css: '' javascript: '' settings: @@ -112,6 +114,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 55d59d3c59..1df6ecd173 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -91,6 +92,7 @@ elements: | '#message_close': true '#message_id': webform_test_message_custom '#message_storage': custom + css: '' javascript: '' settings: @@ -132,6 +134,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 48d61b4503..37172184ca 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -64,6 +65,7 @@ elements: | '#more': '{This is an example of more}' '#description': '{This is a description}' '#description_display': tooltip + css: '' javascript: '' settings: @@ -105,6 +107,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 76a1ce7913..253958e004 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -278,6 +279,7 @@ elements: | '#attributes': class: - custom-element + css: '' javascript: '' settings: @@ -319,6 +321,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 6154d75164..dbe1cda540 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -39,6 +40,7 @@ elements: | '#type': datelist '#title': datelist_basic '#multiple': true + css: '' javascript: '' settings: @@ -80,6 +82,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_header.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_header.yml index 108763911c..253f9431e7 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_header.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_element_multiple_header.yml @@ -96,7 +96,7 @@ elements: | email: '#type': email '#title': email - + css: '' javascript: '' settings: @@ -138,6 +138,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' @@ -226,6 +229,7 @@ settings: results_customize: false token_view: false token_update: false + token_delete: false serial_disabled: false access: create: 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 c4618176ee..2caa0f34e5 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -50,6 +51,7 @@ elements: | '#title': webform_element_multiple_custom_access '#default_value': 5 '#access': false + css: '' javascript: '' settings: @@ -91,6 +93,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 475d69d4c3..53493e1f71 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -82,6 +83,7 @@ elements: | '#type': number '#title': number_basic '#multiple': true + css: '' javascript: '' settings: @@ -123,6 +125,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 37d90b9db7..fa03d05ddb 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -75,6 +76,7 @@ elements: | '#title': webform_element_options_custom_type_multiple '#custom__type': webform_multiple '#default_value': { } + css: '' javascript: '' settings: @@ -116,6 +118,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 990a1764bb..66ebd99db1 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -156,6 +157,7 @@ elements: | Two: Two Three: Three '#wrapper_type': container + css: '' javascript: '' settings: @@ -197,6 +199,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 9174fe5c2b..ae71f7f4ed 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -47,6 +48,7 @@ elements: | '#type': managed_file '#title': managed_file_prepopulate_02 '#prepopulate': true + css: '' javascript: '' settings: @@ -88,6 +90,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 1e3a8115d0..8a5098985d 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -23,6 +24,7 @@ elements: | '#type': textfield '#title': private '#private': true + css: '' javascript: '' settings: @@ -64,6 +66,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 0620a0a9be..a242c420d1 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -237,6 +238,7 @@ elements: | '#prefix': '<div><strong>Group 1</strong></div>' three: '#prefix': '<div><strong>Group 2</strong></div>' + css: '' javascript: '' settings: @@ -278,6 +280,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 09f989b418..c9842885ee 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -70,6 +71,7 @@ elements: | '#output': right '#output__field_prefix': $ '#output__field_suffix': '.00' + css: '' javascript: '' settings: @@ -111,6 +113,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 f45be46e50..f71dead5ca 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -33,6 +34,7 @@ elements: | '#type': webform_rating '#title': rating_required '#required': true + css: '' javascript: '' settings: @@ -74,6 +76,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 fe5c15852c..708ef67959 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -23,6 +24,7 @@ elements: | '#type': textarea '#title': textarea '#readonly': true + css: '' javascript: '' settings: @@ -64,6 +66,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 fab80d87a2..29c6102291 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -88,6 +89,7 @@ elements: | '#title': textfield_multiple_destination '#multiple': true '#required': true + css: '' javascript: '' settings: @@ -129,6 +131,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 1e0322b2e8..8d6fc9fd08 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -59,6 +60,7 @@ elements: | '#scale_type': flexbox '#min_text': '1 = disagree' '#max_text': 'agree = 5' + css: '' javascript: '' settings: @@ -100,6 +102,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 c61662b6c5..67e9b1c89e 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -62,6 +63,7 @@ elements: | '#title': webform_section_description_display_invisible '#description': 'Display invisible description.' '#description_display': invisible + css: '' javascript: '' settings: @@ -103,6 +105,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 079874db39..7fe2eaa116 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -371,6 +372,7 @@ elements: | three: Three four: Four five: Five + css: '' javascript: '' settings: @@ -412,6 +414,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 8079404a84..18d14b69d9 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -41,6 +42,7 @@ elements: | '#type': webform_signature '#title': signature_readonly '#readonly': true + css: '' javascript: '' settings: @@ -82,6 +84,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 04e6f941dc..1c0855ee0f 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -123,6 +124,7 @@ elements: | custom_selector: value: pattern: '[a-z0-9]+' + css: '' javascript: '' settings: @@ -164,6 +166,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 6cdcd9699f..a4222b4b22 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -46,6 +47,7 @@ elements: | - entity.webform.results_submissions node_routes: - entity.node.webform.results_submissions + css: '' javascript: '' settings: @@ -87,6 +89,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 f3ec8a1798..4b97cb72ac 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -40,6 +41,7 @@ elements: | - entity.webform.results_submissions node_routes: - entity.node.webform.results_submissions + css: '' javascript: '' settings: @@ -81,6 +83,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 26d2450469..5e55488305 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -54,6 +55,7 @@ elements: | - one - two - three + css: '' javascript: '' settings: @@ -95,6 +97,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 34effab0be..df73bd52e2 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -192,6 +193,7 @@ elements: | table_advanced_04_textfield: '#type': textfield '#title': 'textfield (4)' + css: '' javascript: '' settings: @@ -233,6 +235,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 index 5b7688c86d..1d11a6b760 100644 --- 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 @@ -1,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -68,6 +69,7 @@ elements: | three: Three four: Four five: Five + css: '' javascript: '' settings: @@ -109,6 +111,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 acbcb406de..7791597307 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -156,6 +157,7 @@ elements: | '#default_value': five: five three: three + css: '' javascript: '' settings: @@ -197,6 +199,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 9a07be86e3..3e10a7212a 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -44,6 +45,7 @@ elements: | '#international': true '#international_preferred_countries': - ZW + css: '' javascript: '' settings: @@ -85,6 +87,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 66b55fb5fd..4199766614 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -120,6 +121,7 @@ elements: | '#breadcrumb_delimiter': ' » ' '#format': breadcrumb '#format_items': ul + css: '' javascript: '' settings: @@ -161,6 +163,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 921c6a9d70..c9927777c2 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -33,6 +34,7 @@ elements: | '#terms_type': slideout '#terms_title': terms_of_service_slideout '#terms_content': 'These are the terms of service.' + css: '' javascript: '' settings: @@ -74,6 +76,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 8e77275246..96e58d6c9c 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -30,6 +31,7 @@ elements: | '#title': text_format_description_more '#description': 'This is a description' '#more': 'This is more' + css: '' javascript: '' settings: @@ -71,6 +73,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 05f0511fef..670482807d 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -67,6 +68,7 @@ elements: | '#title': time_timepicker_placeholder '#timepicker': true '#placeholder': '{time}' + css: '' javascript: '' settings: @@ -108,6 +110,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 7f0b1bc4e9..cf26aaf5c0 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -1657,6 +1658,7 @@ elements: | '#title_display': none machine_name_hr: '#type': webform_horizontal_rule + css: '' javascript: '' settings: @@ -1698,6 +1700,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 9e570b9a7f..2b475af7e7 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -32,6 +33,7 @@ elements: | '#include_anonymous': false '#default_value': authenticated: authenticated + css: '' javascript: '' settings: @@ -73,6 +75,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 a135f8d1a8..f9fba9d7fb 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -26,6 +27,7 @@ elements: | '#minlength': 5 '#required': true '#default_value': value + css: '' javascript: '' settings: @@ -67,6 +69,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 bfc1766fc6..1bf58eb48f 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -78,6 +79,7 @@ elements: | '#title': webform_element_multiple_managed_file_two '#select2': true '#multiple': 2 + css: '' javascript: '' settings: @@ -119,6 +121,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 d3718fa83e..fe15babd25 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -37,6 +38,7 @@ elements: | '#title': pattern_unicode '#pattern': \u2E8F '#description': 'Enter unicode CJK characters ''⺏''' + css: '' javascript: '' settings: @@ -78,6 +80,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 f9ef3b769e..41e25c346d 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -12,28 +13,33 @@ template: false archive: false id: test_element_validate_required title: 'Test: Element: Validate Required' -description: 'Test #required_error element validation support.' +description: 'Test #required and #required_error element validation support.' category: 'Test: Element' elements: | - required_textfield: + required_textfield_html: + '#type': textfield + '#title': 'required_error_textfield_<em>html</em>' + '#required': true + required_error_textfield: '#type': textfield - '#title': required_textfield + '#title': required_error_textfield '#required': true '#required_error': 'This is a custom required message' - required_textfield_html: + required_error_textfield_html: '#type': textfield - '#title': required_textfield_html + '#title': required_error_textfield_html '#required': true '#required_error': 'This is a <em>custom required message</em>' - required_radios: + required_error_radios: '#type': radios - '#title': required_radios + '#title': required_error_radios '#options': one: One two: Two three: Three '#required': true '#required_error': 'This is a custom required message' + css: '' javascript: '' settings: @@ -75,6 +81,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 143d75e4a8..fd70edda7e 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -55,6 +56,7 @@ elements: | '#options': 1: one 2: two + css: '' javascript: '' settings: @@ -96,6 +98,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 1b3a8e55ff..8cb39f30d0 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -90,6 +91,7 @@ elements: | textfield_03: '#type': textfield '#title': textfield_03 + css: '' javascript: '' settings: @@ -131,6 +133,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 3c05cdc694..a79e1d6510 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -24,6 +25,7 @@ elements: | '#display_id': default '#arguments': - '[webform:id]' + css: '' javascript: '' settings: @@ -65,6 +67,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 9283a9e50d..7395245591 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -549,6 +550,7 @@ elements: | table: '#type': table '#title': Table + css: '' javascript: '' settings: @@ -590,6 +592,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 17236a0537..02b0e936be 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -83,8 +84,6 @@ elements: | '#options': Male: Male Female: Female - '#multiple': true - '#multiple__header': true webform_likert_example: '#type': details '#title': Likert @@ -170,6 +169,7 @@ 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: @@ -211,6 +211,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_exporter_archive.yml b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_exporter_archive.yml index 1c861582f3..ba7890cc76 100644 --- a/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_exporter_archive.yml +++ b/web/modules/webform/tests/modules/webform_test/config/install/webform.webform.test_exporter_archive.yml @@ -1,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -26,7 +27,7 @@ elements: | '#template': | <?xml version="1.0"?> <textfield>{value}</textfield> - + css: '' javascript: '' settings: @@ -68,6 +69,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' @@ -156,6 +160,8 @@ settings: results_customize: false token_view: false token_update: false + token_delete: false + serial_disabled: false access: create: roles: 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 24ea2c2fe7..77428fa78d 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -33,6 +34,7 @@ elements: | '#selection_handler': 'default:user' '#selection_settings': include_anonymous: true + css: '' javascript: '' settings: @@ -74,6 +76,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 de0c51c5f6..d4543998d6 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -43,6 +44,7 @@ elements: | one: One two: Two three: Three + css: '' javascript: '' settings: @@ -84,6 +86,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 38864a0760..beeb1cb4bb 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -18,6 +19,7 @@ elements: | textfield: '#type': textfield '#title': textfield + css: '' javascript: '' settings: @@ -59,6 +61,9 @@ settings: form_access_denied_message: 'Please login to access <b>[webform:title]</b>.' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 3ed8401a8f..b3c4ec8320 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -118,6 +119,7 @@ elements: | '#options': 1: Administrator 0: Anonymous + css: '' javascript: '' settings: @@ -159,6 +161,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 132d882ce6..ab27923de7 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -17,6 +18,7 @@ category: 'Test: Webform' elements: | description: '#markup': 'This webform is archived.' + css: '' javascript: '' settings: @@ -58,6 +60,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 6dee88a4bd..de84812709 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -18,6 +19,7 @@ elements: | test: '#type': textfield '#title': 'Text field' + css: | .webform-submission-form { background-color: #cccccc; @@ -71,6 +73,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 659433da76..c87cdc6cdd 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -21,6 +22,7 @@ elements: | textfield_excluded: '#type': textfield '#title': textfield_excluded + css: '' javascript: '' settings: @@ -62,6 +64,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 24de079675..ac05c096fe 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -18,6 +19,7 @@ elements: | test: '#type': textfield '#title': 'First input' + css: '' javascript: '' settings: @@ -59,6 +61,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 01457518a1..22b235629f 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,3 +1,4 @@ +uuid: null langcode: en status: closed dependencies: @@ -17,6 +18,7 @@ category: 'Test: Webform' elements: | description: '#markup': 'This message should not be displayed' + css: '' javascript: '' settings: @@ -58,6 +60,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 a5221993c5..2718e7d528 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -18,6 +19,7 @@ elements: | name: '#type': textfield '#title': Name + css: '' javascript: '' settings: @@ -59,6 +61,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 6e90823e5b..aa3c89c461 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -25,6 +26,7 @@ elements: | '#title': 'Details 02' details_02: '#markup': 'Detail 02 Markup' + css: '' javascript: '' settings: @@ -66,6 +68,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 98415fb960..8e9f55829d 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -20,6 +21,7 @@ elements: | test: '#type': email '#title': 'Test autocompletion is disabled.' + css: '' javascript: '' settings: @@ -61,6 +63,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 f24d095614..c67dbec7f7 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -345,6 +346,7 @@ elements: | element_100: '#type': textfield '#title': 'Element #100' + css: '' javascript: '' settings: @@ -386,6 +388,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 d66bc8dd89..0e3356bf75 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -19,6 +20,7 @@ elements: | '#type': textfield '#title': textfield '#required': true + css: '' javascript: '' settings: @@ -60,6 +62,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 53e61c8794..ac296823be 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -22,6 +23,7 @@ elements: | comment: '#type': textarea '#title': Comment + css: '' javascript: '' settings: @@ -63,6 +65,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 5ffa77fb9c..52281ee6d1 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -22,6 +23,7 @@ elements: | comment: '#type': textarea '#title': Comment + css: '' javascript: '' settings: @@ -63,6 +65,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 bac504ee12..095f9b6384 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -22,6 +23,7 @@ elements: | comment: '#type': textarea '#title': Comment + css: '' javascript: '' settings: @@ -63,6 +65,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 1c697c7bfb..710daee520 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -126,6 +127,7 @@ elements: | 1: 'Option 1' 2: 'Option 2' 3: 'Option 3' + css: '' javascript: '' settings: @@ -167,6 +169,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 0fd8da4008..ecf060e5fd 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -39,6 +40,7 @@ elements: | name: '#type': textfield '#title': Name + css: '' javascript: '' settings: @@ -80,6 +82,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 7ee691e7f4..5ae9b3e484 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -18,6 +19,7 @@ elements: | name: '#type': textfield '#title': Name + css: '' javascript: '' settings: @@ -59,6 +61,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 4be550f70c..eefd6416a6 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -18,6 +19,7 @@ elements: | name: '#type': textfield '#title': Name + css: '' javascript: '' settings: @@ -59,6 +61,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 1d99c3baf0..67704d35ec 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -18,6 +19,7 @@ elements: | name: '#type': textfield '#title': Name + css: '' javascript: '' settings: @@ -59,6 +61,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 1c5259b1b0..df4fa2d199 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -315,6 +316,7 @@ elements: | element_100: '#type': textfield '#title': 'Element #100' + css: '' javascript: '' settings: @@ -356,6 +358,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 6e481aaa2d..4357dd8993 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -615,6 +616,7 @@ elements: | element_200: '#type': textfield '#title': 'Element #200' + css: '' javascript: '' settings: @@ -656,6 +658,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 485c60e256..c5c8d7c510 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -915,6 +916,7 @@ elements: | element_300: '#type': textfield '#title': 'Element #300' + css: '' javascript: '' settings: @@ -956,6 +958,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 225826b00a..94820d652c 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -22,6 +23,7 @@ elements: | '#title': 'Test required element with a custom error message.' '#required': true '#required_error': 'A custom error message' + css: '' javascript: '' settings: @@ -63,6 +65,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 6acbc94ae0..f059a22f6c 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,3 +1,4 @@ +uuid: null langcode: en status: scheduled dependencies: @@ -17,6 +18,7 @@ category: 'Test: Webform' elements: | description: '#markup': 'This message should not be displayed' + css: '' javascript: '' settings: @@ -58,6 +60,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 1dbc9cc8e9..7826357887 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -38,6 +39,7 @@ 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: @@ -79,6 +81,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 857befa9a9..7054dbcfc5 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -51,6 +52,7 @@ elements: | '#format_attributes': class: - format-attributes-class + css: | .format-attributes-class { border: 1px dashed #ccc; @@ -97,6 +99,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 738af29fae..425ff533f9 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -15,21 +16,15 @@ title: 'Test: Webform: Properties' description: 'Test custom webform properties.' category: 'Test: Webform' elements: | - '#method': get - '#action': 'https://www.google.com/search' '#prefix': 'Form prefix' '#suffix': 'Form suffix' - '#attributes': - invalid: invalid - class: - test-form-properties: test-form-properties - style: 'border: 10px solid red; padding: 1em;' '#validate': this_will_be_ignored description: '#markup': 'This webform has #prefix, #suffix, #attributes.class, #attributes.style, and #attributes.invalid properties.' q: '#type': search '#title': 'Search Google' + css: '' javascript: '' settings: @@ -71,6 +66,13 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: get + form_action: 'https://www.google.com/search' + form_attributes: + invalid: invalid + class: + test-form-properties: test-form-properties + style: 'border: 10px solid red; padding: 1em;' share: false share_node: false share_theme_name: '' 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 a628ff9941..e3becb4817 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -18,6 +19,7 @@ elements: | name: '#type': textfield '#title': Name + css: '' javascript: '' settings: @@ -59,6 +61,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 ccc217c615..35b31e1d17 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -19,6 +20,7 @@ elements: | '#type': textfield '#title': textfield '#required': true + css: '' javascript: '' settings: @@ -60,6 +62,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 5797b9ac96..9ced013278 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -19,6 +20,7 @@ elements: | '#type': textfield '#title': 'Text field' '#required': true + css: '' javascript: '' settings: @@ -60,6 +62,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 50a7c578b5..228f4932ba 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -17,6 +18,7 @@ category: 'Test: Form' elements: | description: '#markup': 'This webform will not save any submissions.' + css: '' javascript: '' settings: @@ -58,6 +60,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 935e9e4011..b8b31ff518 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -29,6 +30,7 @@ elements: | '#title': 'Element 2' '#type': textfield '#default_value': '{element_2}' + css: '' javascript: '' settings: @@ -70,6 +72,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 4a11c0f8b4..6b733ae34e 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -26,6 +27,7 @@ elements: | wizard_3: '#type': webform_wizard_page '#title': 'Wizard page #3' + css: '' javascript: '' settings: @@ -67,6 +69,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 e0f53bcd80..4f15ea8c45 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -19,6 +20,7 @@ elements: | '#type': webform_actions '#title': 'Submit button(s)' '#submit__label': 'Custom submit text' + css: '' javascript: '' settings: @@ -60,6 +62,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 749ab23b8f..d46c435f26 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,3 +1,4 @@ +uuid: null langcode: en status: closed dependencies: @@ -17,6 +18,7 @@ category: 'Test: Webform' elements: | description: '#markup': 'This webform is a template' + css: '' javascript: '' settings: @@ -58,6 +60,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 d619fb8f34..d80b0bd51b 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -23,6 +24,7 @@ elements: | text_format: '#type': text_format '#title': text_format + css: '' javascript: '' settings: @@ -64,6 +66,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 908833be94..6952c5dde0 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -27,6 +28,7 @@ elements: | testfield_2: '#type': textfield '#title': textfield_2 + css: '' javascript: '' settings: @@ -68,6 +70,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 46c8665289..ecd11c097f 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -18,6 +19,7 @@ elements: | custom: '#title': 'Custom Field' '#type': textfield + css: '' javascript: '' settings: @@ -59,6 +61,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 df9c04ea46..4d6ab5b69f 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -56,6 +57,7 @@ elements: | '#type': textfield '#title': textfield_private '#default_value': '{textfield_private}' + css: '' javascript: '' settings: @@ -97,6 +99,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 0e6e3fe261..cd69d047c4 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -60,6 +61,7 @@ elements: | '#type': textarea '#required': true '#default_value': 'Here is some feedback' + css: '' javascript: '' settings: @@ -101,6 +103,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 aacd91c617..fc08778e89 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -29,6 +30,7 @@ elements: | '#title': 'Element 2' '#type': textfield '#default_value': '{element_2}' + css: '' javascript: '' settings: @@ -70,6 +72,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 91c6def06f..0f7acf68b5 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -98,6 +99,7 @@ elements: | unchecked: true page_5_markup: '#markup': 'This is page 5.' + css: '' javascript: '' settings: @@ -139,6 +141,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 3077224eff..34fe9495b1 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -61,6 +62,7 @@ elements: | '#type': webform_actions '#title': 'Submit button(s)' '#submit__label': Apply + css: '' javascript: '' settings: @@ -102,6 +104,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 949b36e954..e745343b56 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -29,6 +30,7 @@ elements: | '#title': 'Element 2' '#type': textfield '#default_value': '{element_2}' + css: '' javascript: '' settings: @@ -70,6 +72,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 b15a1a4e3e..188ef44e80 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -345,6 +346,7 @@ elements: | element_100: '#type': textfield '#title': 'Element #100' + css: '' javascript: '' settings: @@ -386,6 +388,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 c7c0df10ef..6a37f41168 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -675,6 +676,7 @@ elements: | element_200: '#type': textfield '#title': 'Element #200' + css: '' javascript: '' settings: @@ -716,6 +718,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 3c33e86de3..ce2884c31d 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -1005,6 +1006,7 @@ elements: | element_300: '#type': textfield '#title': 'Element #300' + css: '' javascript: '' settings: @@ -1046,6 +1048,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 b6b7c279e3..6244018682 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -58,6 +59,7 @@ elements: | wizard_3: '#type': webform_wizard_page '#title': 'Wizard page #3' + css: '' javascript: '' settings: @@ -99,6 +101,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 acc2e5ec5e..f1ab90fae4 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -106,6 +107,7 @@ elements: | wizard_3: '#type': webform_wizard_page '#title': 'Wizard page #3' + css: '' javascript: '' settings: @@ -147,6 +149,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 03d9b17f0b..31f7d0e73c 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -47,6 +48,7 @@ elements: | '#attributes': readonly: readonly style: 'background-color: #eee' + css: '' javascript: '' settings: @@ -88,6 +90,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 f152ad66c1..2b779d285f 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -40,6 +41,7 @@ elements: | '#type': textarea '#required': true '#default_value': '{message}' + css: '' javascript: '' settings: @@ -81,6 +83,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 92abea0b86..a36cf3675a 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -55,6 +56,7 @@ elements: | '#title': Notes '#private': true '#default_value': 'These notes are private.' + css: '' javascript: '' settings: @@ -96,6 +98,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 dfdcaccc1b..56b7a17cc5 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -30,6 +31,7 @@ elements: | '#title': radios_other '#options': sex '#description': 'Check and enter ''Other'' to trigger an email.' + css: '' javascript: '' settings: @@ -71,6 +73,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 2791180c62..9bf7837881 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -22,6 +23,7 @@ elements: | authenticated: 'Authenticated (authenticated)' administrator: 'Administrator (administrator)' other: Other + css: '' javascript: '' settings: @@ -63,6 +65,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 9b1913b233..9e6754196d 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -17,6 +18,7 @@ category: 'Test: Handler' elements: | message: '#markup': 'Click ''Save Draft'' and ''Submit'' to send emails triggered by submissions state.' + css: '' javascript: '' settings: @@ -58,6 +60,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 7ed79befbb..82d6f382af 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -40,6 +41,7 @@ elements: | '#type': textarea '#required': true '#default_value': '{message}' + css: '' javascript: '' settings: @@ -81,6 +83,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 489867959a..418e9d2ae3 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -60,6 +61,7 @@ elements: | '#type': textfield '#title': 'Draft loaded message' '#default_value': '{Custom draft loaded message}' + css: '' javascript: '' settings: @@ -101,6 +103,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 761eda3cd2..34eee48221 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -84,6 +85,7 @@ elements: | signature: '#type': webform_signature '#title': Signature + css: '' javascript: '' settings: @@ -125,6 +127,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 db9b928af3..d5319fa3f6 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -49,6 +50,7 @@ elements: | '#default_value': value: '<p><em>{default_value}</em></p>' format: basic_html + css: '' javascript: '' settings: @@ -90,6 +92,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 5fb3a88416..7014903e12 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -159,6 +160,7 @@ elements: | kitten_3: text: 'Cute Kitten 3' src: 'http://placekitten.com/130/200' + css: '' javascript: '' settings: @@ -200,6 +202,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 246cacecbf..3d8b91f532 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -1016,6 +1017,7 @@ elements: | required: ':input[name="trigger"]': checked: true + css: '' javascript: '' settings: @@ -1057,6 +1059,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 67ca393b28..7d1007f1ac 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -829,6 +830,7 @@ elements: | invisible: ':input[name="trigger"]': checked: true + css: '' javascript: '' settings: @@ -870,6 +872,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 5a9bac88c4..833513e2c9 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -146,6 +147,7 @@ elements: | two: Two three: Three '#required': true + css: '' javascript: '' settings: @@ -187,6 +189,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 48d3662418..3c39b8c6bd 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -1057,6 +1058,7 @@ elements: | required: ':input[name="trigger"]': checked: true + css: '' javascript: '' settings: @@ -1098,6 +1100,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 ec9c1199f4..7bef9e3c90 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -45,6 +46,7 @@ elements: | checked: true ':input[name="trigger_2"]': checked: true + css: '' javascript: '' settings: @@ -86,6 +88,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 df5254a23b..c22b4d32b0 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -59,6 +60,7 @@ elements: | disabled: ':input[name="disabled"]': checked: true + css: '' javascript: '' settings: @@ -100,6 +102,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 3cd8a74a19..74b031dcb2 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -102,6 +103,7 @@ elements: | '#type': textfield '#title': dependent_details_textfield '#default_value': '{dependent_details_textfield}' + css: '' javascript: '' settings: @@ -143,6 +145,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 f9c57c8c33..9877f8c8ef 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -76,6 +77,7 @@ elements: | '#first__title': webform_name_nested_first '#last__required': true '#last__title': webform_name_nested_last + css: '' javascript: '' settings: @@ -117,6 +119,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 48cf5ad6ab..8fc16c7ff1 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -73,6 +74,7 @@ elements: | checked: true ':input[name="visible_slide_textfield"]': filled: true + css: '' javascript: '' settings: @@ -114,6 +116,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 3c4d4ed07b..732f8f20c0 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -149,6 +150,7 @@ elements: | visible-slide: ':input[name="trigger_visible_slide"]': checked: true + css: '' javascript: '' settings: @@ -190,6 +192,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 97be7de50a..f715c7a86c 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -25,6 +26,7 @@ elements: | required: ':input[name="files[trigger_file]"]': filled: true + css: '' javascript: '' settings: @@ -66,6 +68,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 1e5f013013..c928057f45 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -138,6 +139,7 @@ elements: | invisible: ':input[name="trigger_checkbox"]': checked: true + css: '' javascript: '' settings: @@ -179,6 +181,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 b0cabed396..68d0dc2107 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -33,6 +34,7 @@ elements: | visible: ':input[name="trigger_likert"]': checked: true + css: '' javascript: '' settings: @@ -74,6 +76,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 7417dcaea5..2fb6188f4c 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -27,6 +28,7 @@ elements: | required: ':input[name="trigger_required"]': checked: true + css: '' javascript: '' settings: @@ -68,6 +70,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 e77c84e769..e8c7ab82d2 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -58,6 +59,7 @@ elements: | checked: true ':input[name="b"]': checked: true + css: '' javascript: '' settings: @@ -99,6 +101,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 b7516ea887..2b5664b233 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -52,6 +53,7 @@ elements: | '#type': textfield '#title': nested_textfield '#default_value': '{value}' + css: '' javascript: '' settings: @@ -93,6 +95,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 3e40e4dcb7..4ef71dc8b6 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -446,6 +447,7 @@ elements: | required: ':input[name="composite_sub_elements_required_trigger"]': value: b + css: '' javascript: '' settings: @@ -487,6 +489,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 f61047073f..0874c24851 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -70,6 +71,7 @@ elements: | '#type': textfield '#title': dependent_details_textfield '#default_value': '{dependent_details_textfield}' + css: '' javascript: '' settings: @@ -111,6 +113,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 ed7fd63a58..c0b8612d93 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -233,6 +234,7 @@ elements: | '#default_value': '{default_value}' '#required': '{default_value}' '#description': '<b>Required:</b> page_01_trigger_checkbox:checked' + css: '' javascript: '' settings: @@ -274,6 +276,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 177d156622..0eb45bd891 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -68,6 +69,7 @@ elements: | - ':input[name="some_number"]': value: between: '1:10' + css: '' javascript: '' settings: @@ -109,6 +111,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 0ceaaee813..43944855af 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -43,10 +44,10 @@ elements: | '#markup': 'Checked multiple triggered using AND operator' '#states': visible: - - ':input[name="checked_multiple_and_trigger[one]"]': - checked: true - - ':input[name="checked_multiple_and_trigger[two]"]': - checked: true + ':input[name="checked_multiple_and_trigger[one]"]': + checked: true + ':input[name="checked_multiple_and_trigger[two]"]': + checked: true checked_multiple_or: '#type': details '#title': 'Test Trigger: Checked multiple using OR operator' @@ -64,6 +65,7 @@ elements: | visible: - ':input[name="checked_multiple_or_trigger[one]"]': checked: true + - or - ':input[name="checked_multiple_or_trigger[two]"]': checked: true checked_multiple_xor: @@ -116,20 +118,7 @@ elements: | visible: ':input[name="filled_trigger"]': filled: true - collapsed: - '#type': details - '#title': 'Test Trigger: Collapsed' - '#description': 'Below example is not working.' - collapsed_trigger: - '#type': details - '#title': 'Trigger collapsed' - collapsed_markup: - '#type': webform_markup - '#markup': 'Collapsed triggered' - '#states': - visible: - 'details[data-webform-key="collapsed_trigger"]': - collapsed: true + css: '' javascript: '' settings: @@ -171,6 +160,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 b7cdfcebbe..e05d6ab5cb 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -19,6 +20,7 @@ elements: | '#type': textfield '#title': Name '#required': true + css: '' javascript: '' settings: @@ -60,6 +62,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 2fd098585d..7ce478f70b 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -18,6 +19,7 @@ elements: | value: '#type': textfield '#title': 'Enter a value' + css: '' javascript: '' settings: @@ -59,6 +61,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 d3d18c1257..34b9cf5881 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -18,6 +19,7 @@ elements: | textfield: '#type': textfield '#title': textfield + css: '' javascript: '' settings: @@ -59,6 +61,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 4f1c00ed08..76589ec47d 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -125,6 +126,7 @@ elements: | Summary: [webform_submission:node:summary] Title: [webform_submission:node:title] URL: [webform_submission:node:url] + css: '' javascript: '' settings: @@ -166,6 +168,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 07cd561f91..cad7aad158 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -18,7 +19,7 @@ elements: | textfield: '#type': textfield '#title': textfield - + css: '' javascript: '' settings: @@ -60,6 +61,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' @@ -124,7 +128,7 @@ settings: <p>You can view your submission via <a href="[webform_submission:token-view-url]">[webform_submission:token-view-url:relative]</a></p> <p>You can update your submission via <a href="[webform_submission:token-update-url]">[webform_submission:token-update-url:relative]</a></p> <p>You can delete your submission via <a href="[webform_submission:token-delete-url]">[webform_submission:token-delete-url:relative]</a></p> - + confirmation_url: '' confirmation_attributes: { } confirmation_back: true @@ -227,7 +231,7 @@ handlers: <a href="[webform_submission:token-view-url]">[webform_submission:token-view-url]</a><br/> <a href="[webform_submission:token-update-url]">[webform_submission:token-update-url]</a><br/> <a href="[webform_submission:token-delete-url]">[webform_submission:token-delete-url]</a> - + excluded_elements: { } ignore_access: false exclude_empty: true 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 01c3ebcebd..a0422bb119 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -141,6 +142,7 @@ elements: | '#type': textfield '#title': script '#default_value': '<script>alert(''hi'');</script>' + css: '' javascript: '' settings: @@ -182,6 +184,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 b5bb577c5d..bc0809e0a2 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -19,6 +20,7 @@ elements: | '#type': webform_variant '#title': test_offcanvas_width '#variant': test_offcanvas_width + css: '' javascript: '' settings: @@ -60,6 +62,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 26c3419826..020a273b6f 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -33,6 +34,7 @@ elements: | '#wrapper_attributes': style: 'display: inline-block; margin: 0; padding: 0 20px; font-size: 100px; ' '#markup': '{0}' + css: '' javascript: '' settings: @@ -74,6 +76,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 905ba30994..5e96fbe071 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -23,6 +24,7 @@ elements: | textfield: '#type': textfield '#title': textfield + css: '' javascript: '' settings: @@ -64,6 +66,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 75e7597c1f..c186c89418 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,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -25,6 +26,7 @@ elements: | '#attributes': style: 'display: inline-block; margin: 0; padding: 0 20px; font-size: 100px;' '#markup': '{X}' + css: '' javascript: '' settings: @@ -66,6 +68,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 25e5865c73..7cd6914452 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 83b694736b..d0fd9dc0fa 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 f8275450bd..ac2cce1ea5 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 2179671b18..9da168fc77 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 2856bb74d6..1b493bfbfd 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 99ee4a7562..77094c2550 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 c94d4fdb0c..36a70f290d 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 881ab90456..df0f02d88f 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/tests/modules/webform_test_element/config/install/webform.webform.test_element_comp_file_plugin.yml b/web/modules/webform/tests/modules/webform_test_element/config/install/webform.webform.test_element_comp_file_plugin.yml index 8963d3ff69..ac6ceafccb 100644 --- a/web/modules/webform/tests/modules/webform_test_element/config/install/webform.webform.test_element_comp_file_plugin.yml +++ b/web/modules/webform/tests/modules/webform_test_element/config/install/webform.webform.test_element_comp_file_plugin.yml @@ -70,6 +70,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/tests/modules/webform_test_element/config/install/webform.webform.test_element_composite_plugin.yml b/web/modules/webform/tests/modules/webform_test_element/config/install/webform.webform.test_element_composite_plugin.yml index 1e7bb95782..796dfd821f 100644 --- a/web/modules/webform/tests/modules/webform_test_element/config/install/webform.webform.test_element_composite_plugin.yml +++ b/web/modules/webform/tests/modules/webform_test_element/config/install/webform.webform.test_element_composite_plugin.yml @@ -70,6 +70,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/tests/modules/webform_test_element/config/install/webform.webform.test_element_plugin.yml b/web/modules/webform/tests/modules/webform_test_element/config/install/webform.webform.test_element_plugin.yml index 496af8c171..5bb5e5bc65 100644 --- a/web/modules/webform/tests/modules/webform_test_element/config/install/webform.webform.test_element_plugin.yml +++ b/web/modules/webform/tests/modules/webform_test_element/config/install/webform.webform.test_element_plugin.yml @@ -19,11 +19,12 @@ elements: | description: '#markup': | <p>This webform includes a #test elememt which will trigger all methods associated with a WebformElement plugin.</p> + test: '#type': webform_test_element '#title': 'This is a test element' '#default_value': '{default_value}' - + css: '' javascript: '' settings: @@ -65,6 +66,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 4c48a1a64c..9ae0eb6fe0 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 09d7b60f59..b298473eb0 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/tests/modules/webform_test_entity_reference_views/config/install/webform.webform.test_element_entity_reference_vs.yml b/web/modules/webform/tests/modules/webform_test_entity_reference_views/config/install/webform.webform.test_element_entity_reference_vs.yml index 315c6caade..096aa10ba7 100644 --- a/web/modules/webform/tests/modules/webform_test_entity_reference_views/config/install/webform.webform.test_element_entity_reference_vs.yml +++ b/web/modules/webform/tests/modules/webform_test_entity_reference_views/config/install/webform.webform.test_element_entity_reference_vs.yml @@ -176,6 +176,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 1ce13e1aa4..e86cdb2200 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 3a41b49f8c..b89779792f 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_conditions.yml b/web/modules/webform/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_conditions.yml index 5a22169212..dd5c8e59df 100644 --- a/web/modules/webform/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_conditions.yml +++ b/web/modules/webform/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_conditions.yml @@ -66,6 +66,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' diff --git a/web/modules/webform/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_test.yml b/web/modules/webform/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_test.yml index e2ca66d110..abb4f827de 100644 --- a/web/modules/webform/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_test.yml +++ b/web/modules/webform/tests/modules/webform_test_handler/config/install/webform.webform.test_handler_test.yml @@ -64,6 +64,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 19c69ec357..0601760a45 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 eb89cefdb0..712eaa2a2a 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_get.yml b/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_get.yml index 1b4599dc66..118735cbf0 100644 --- a/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_get.yml +++ b/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_get.yml @@ -80,6 +80,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' @@ -260,6 +263,7 @@ handlers: custom_header: 'true' cast: false + file_data: true debug: true completed_url: 'http://webform-test-handler-remote-post/completed' completed_custom_data: | diff --git a/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post.yml b/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post.yml index c2c9a30f90..d3fe878467 100644 --- a/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post.yml +++ b/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post.yml @@ -83,6 +83,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' @@ -264,6 +267,7 @@ handlers: custom_header: 'true' cast: false + file_data: true debug: true completed_url: 'http://webform-test-handler-remote-post/completed' completed_custom_data: | diff --git a/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post_cast.yml b/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post_cast.yml index 2d91bfebc5..218edf2cad 100644 --- a/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post_cast.yml +++ b/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post_cast.yml @@ -81,6 +81,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' @@ -260,7 +263,6 @@ handlers: float: '(float) 100.01' custom_options: '' - debug: true completed_url: 'http://webform-test-handler-remote-post/completed' completed_custom_data: '' updated_url: 'http://webform-test-handler-remote-post/updated' @@ -277,4 +279,6 @@ handlers: messages: { } error_url: '' cast: true + file_data: true + debug: true variants: { } diff --git a/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post_error.yml b/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post_error.yml index 46e0089278..3ce78a771c 100644 --- a/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post_error.yml +++ b/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post_error.yml @@ -1,3 +1,4 @@ +uuid: null langcode: en status: open dependencies: @@ -22,6 +23,7 @@ elements: | '#title': 'Response type' '#type': value '#value': 500 + css: '' javascript: '' settings: @@ -63,6 +65,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' @@ -125,7 +130,7 @@ settings: confirmation_title: '' confirmation_message: | <p>Your confirmation number is [webform_submission:values:confirmation_number].</p> - + confirmation_url: '' confirmation_attributes: { } confirmation_back: true @@ -238,6 +243,7 @@ handlers: custom_data: '' custom_options: '' cast: false + file_data: true debug: true completed_url: 'http://webform-test-handler-remote-post/completed' completed_custom_data: '' @@ -253,5 +259,5 @@ handlers: converted_custom_data: '' message: '' messages: { } - error_url: '/error_url' + error_url: /error_url variants: { } diff --git a/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post_file.yml b/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post_file.yml index fbad48119d..1e54820c97 100644 --- a/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post_file.yml +++ b/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_post_file.yml @@ -69,6 +69,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' @@ -244,6 +247,7 @@ handlers: custom_data: '' custom_options: '' cast: false + file_data: true debug: true completed_url: 'http://webform-test-handler-remote-post/completed' completed_custom_data: '' diff --git a/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_put.yml b/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_put.yml index c9724b868b..3185911fae 100644 --- a/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_put.yml +++ b/web/modules/webform/tests/modules/webform_test_handler_remote_post/config/install/webform.webform.test_handler_remote_put.yml @@ -80,6 +80,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' @@ -260,6 +263,7 @@ handlers: custom_header: 'true' cast: false + file_data: true debug: true completed_url: 'http://webform-test-handler-remote-post/completed' completed_custom_data: | 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 ca2cdbf057..004deaee4e 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 0fc65c43c1..829c05f14e 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 60c5023ecf..75e2f0c98b 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/tests/modules/webform_test_options/config/install/webform.webform.test_options.yml b/web/modules/webform/tests/modules/webform_test_options/config/install/webform.webform.test_options.yml index 105dc83f95..6f39307aad 100644 --- a/web/modules/webform/tests/modules/webform_test_options/config/install/webform.webform.test_options.yml +++ b/web/modules/webform/tests/modules/webform_test_options/config/install/webform.webform.test_options.yml @@ -266,6 +266,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 c67dba30e9..4929c5981c 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 6077d39698..3cd9e999aa 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 2bf9b40a6e..8807882125 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 86087b1b30..18b2c93014 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/tests/modules/webform_test_submissions/config/install/webform.webform.test_submissions.yml b/web/modules/webform/tests/modules/webform_test_submissions/config/install/webform.webform.test_submissions.yml index beb224c146..d7db98dc90 100644 --- a/web/modules/webform/tests/modules/webform_test_submissions/config/install/webform.webform.test_submissions.yml +++ b/web/modules/webform/tests/modules/webform_test_submissions/config/install/webform.webform.test_submissions.yml @@ -101,6 +101,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' 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 d95ce2edfb..a909c0c6ff 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 4a95a72d5a..363649df4c 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/tests/modules/webform_test_translation/config/install/language/es/webform.settings.yml b/web/modules/webform/tests/modules/webform_test_translation/config/install/language/es/webform.settings.yml index a41ad004cb..b0e9d293cb 100644 --- a/web/modules/webform/tests/modules/webform_test_translation/config/install/language/es/webform.settings.yml +++ b/web/modules/webform/tests/modules/webform_test_translation/config/install/language/es/webform.settings.yml @@ -16,11 +16,11 @@ mail: default_body: | Enviada [webform_submission:created] Presentado por:[webform_submission:user] - + Los valores presentados son: - + [webform_submission:values] - + test: types: | checkbox: @@ -77,7 +77,7 @@ test: webform_time: - '09:00' - '17:00' - + names: | first_name: - 'John' diff --git a/web/modules/webform/tests/modules/webform_test_translation/config/install/language/es/webform.webform.test_translation.yml b/web/modules/webform/tests/modules/webform_test_translation/config/install/language/es/webform.webform.test_translation.yml index 2fed9bbd67..88e88dd870 100644 --- a/web/modules/webform/tests/modules/webform_test_translation/config/install/language/es/webform.webform.test_translation.yml +++ b/web/modules/webform/tests/modules/webform_test_translation/config/install/language/es/webform.webform.test_translation.yml @@ -41,8 +41,8 @@ elements: | '#title': Edad '#field_suffix': 'años. antiguo' address: - '#title': 'Dirección' - '#address__title': 'Dirección' + '#title': Dirección + '#address__title': Dirección '#address_2__title': 'Dirección 2' '#city__title': 'Ciudad / Pueblo' '#state_province__title': 'Estado / Provincia' @@ -65,6 +65,7 @@ variants: elements: | textfield: '#title': 'Campo de texto - Variante' + ˚weight: 0 dependencies: enforced: 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 91551411d1..6488012a5b 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 @@ -97,7 +97,7 @@ elements: | '#type': webform_actions '#title': 'Submit button(s)' '#submit__label': 'Send message' - + css: '' javascript: '' settings: @@ -139,6 +139,9 @@ settings: form_access_denied_message: '' form_access_denied_attributes: { } form_file_limit: '' + form_method: '' + form_action: '' + form_attributes: { } share: false share_node: false share_theme_name: '' @@ -329,6 +332,6 @@ variants: textfield: '#title': 'Text field - Variant' '#type': textarea - + handlers: { } debug: false 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 ebda1e56dc..917af9b1d4 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 42dbf387e6..919b5b173f 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 495ce940f4..15a13b65b2 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 845cec1c32..2823513a99 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 3521dee35b..e04cea017f 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 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 3ac3a7b308..37f0ae0d86 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/tests/src/Functional/Composite/WebformCompositeCustomTest.php b/web/modules/webform/tests/src/Functional/Composite/WebformCompositeCustomTest.php index e4c590b74d..d6073688a2 100644 --- a/web/modules/webform/tests/src/Functional/Composite/WebformCompositeCustomTest.php +++ b/web/modules/webform/tests/src/Functional/Composite/WebformCompositeCustomTest.php @@ -39,6 +39,13 @@ public function testCustom() { // Check advanced custom composite. $this->assertRaw('<span class="field-suffix"> yrs. old</span>'); + // Check composite in fieldset. + $this->assertRaw('<fieldset class="fieldgroup form-composite js-webform-type-webform-custom-composite webform-type-webform-custom-composite js-form-item form-item js-form-wrapper form-wrapper" data-drupal-selector="edit-webform-custom-composite-fieldset" id="edit-webform-custom-composite-fieldset">'); + $this->assertRaw('<span class="fieldset-legend">webform_custom_composite_fieldset</span>'); + + // Check composite in container. + $this->assertRaw('<div id="webform_custom_composite_container_table"><div class="custom-class js-form-wrapper form-wrapper" data-drupal-selector="edit-webform-custom-composite-container" id="edit-webform-custom-composite-container">'); + /* Processing */ // Check contact composite value. diff --git a/web/modules/webform/tests/src/Functional/Composite/WebformCompositeTest.php b/web/modules/webform/tests/src/Functional/Composite/WebformCompositeTest.php index a480142c24..23531c79b2 100644 --- a/web/modules/webform/tests/src/Functional/Composite/WebformCompositeTest.php +++ b/web/modules/webform/tests/src/Functional/Composite/WebformCompositeTest.php @@ -34,7 +34,7 @@ public function testComposite() { $this->drupalGet('/webform/test_composite'); // Check webform contact basic. - $this->assertRaw('<fieldset data-drupal-selector="edit-contact-basic" id="edit-contact-basic--wrapper" class="webform-contact--wrapper fieldgroup form-composite webform-composite-hidden-title required js-webform-type-webform-contact webform-type-webform-contact js-form-item form-item js-form-wrapper form-wrapper">'); + $this->assertRaw('<fieldset data-drupal-selector="edit-contact-basic" id="edit-contact-basic--wrapper" class="webform-contact--wrapper fieldgroup form-composite webform-composite-hidden-title required js-webform-type-webform-contact webform-type-webform-contact js-form-item form-item js-form-wrapper form-wrapper" aria-required="true">'); $this->assertRaw('<span class="visually-hidden fieldset-legend js-form-required form-required">Contact basic</span>'); $this->assertRaw('<label for="edit-contact-basic-name" class="js-form-required form-required">Name</label>'); $this->assertRaw('<input data-drupal-selector="edit-contact-basic-name" type="text" id="edit-contact-basic-name" name="contact_basic[name]" value="John Smith" size="60" maxlength="255" class="form-text required" required="required" aria-required="true" />'); @@ -53,8 +53,8 @@ public function testComposite() { // Check link multiple in table. $this->assertRaw('<label>Link multiple</label>'); - $this->assertRaw('<th class="link_multiple-table--title webform-multiple-table--title">Link Title<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">Link Title</div><div class="webform-element-help--content">This is link title help</div>"><span aria-hidden="true">?</span></span>'); - $this->assertRaw('<th class="link_multiple-table--url webform-multiple-table--url">Link URL<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">Link URL</div><div class="webform-element-help--content">This is link url help</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<th class="link_multiple-table--title webform-multiple-table--title">Link Title<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="Link Title" data-webform-help="<div class="webform-element-help--title">Link Title</div><div class="webform-element-help--content">This is link title help</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<th class="link_multiple-table--url webform-multiple-table--url">Link URL<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="Link URL" data-webform-help="<div class="webform-element-help--title">Link URL</div><div class="webform-element-help--content">This is link url help</div>"><span aria-hidden="true">?</span></span>'); /* Processing */ diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementAddressTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementAddressTest.php index c27ac23103..f7a37592c4 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementAddressTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementAddressTest.php @@ -46,7 +46,7 @@ public function testAddress() { // Check advanced fieldset, legend, help, and description. $this->assertRaw('<fieldset data-drupal-selector="edit-address-advanced" aria-describedby="edit-address-advanced--wrapper--description" id="edit-address-advanced--wrapper" class="address--wrapper fieldgroup form-composite webform-composite-visible-title webform-element-help-container--title webform-element-help-container--title-after js-webform-type-address webform-type-address js-form-item form-item js-form-wrapper form-wrapper">'); - $this->assertRaw('<span class="fieldset-legend">address_advanced<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">address_advanced</div><div class="webform-element-help--content">This is help text</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<span class="fieldset-legend">address_advanced<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="address_advanced" data-webform-help="<div class="webform-element-help--title">address_advanced</div><div class="webform-element-help--content">This is help text</div>"><span aria-hidden="true">?</span></span>'); if (floatval(\Drupal::VERSION) >= 9) { $this->assertRaw('<div class="description"><div id="edit-address-advanced--wrapper--description" data-drupal-field-elements="description" class="webform-element-description">This is a description</div>'); } diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementAttributesTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementAttributesTest.php index c72d5f1ce4..7c53d5932e 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementAttributesTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementAttributesTest.php @@ -20,6 +20,18 @@ class WebformElementAttributesTest extends WebformElementBrowserTestBase { * Tests element attributes. */ public function testAttributes() { + /* Rendering */ + + $this->drupalGet('/webform/test_element_attributes'); + + // Check four and five are merged in class select other text field. + $this->assertFieldByName('webform_element_attributes[class][other]', 'four five'); + + // Check one, two, four, and five are merged in class text field. + $this->assertFieldByName('webform_element_attributes_no_classes[class]', 'one two four five'); + + /* Submit */ + // Check default value handling. $this->drupalPostForm('/webform/test_element_attributes', [], 'Submit'); $this->assertRaw("webform_element_attributes: @@ -27,8 +39,15 @@ class: - one - two - four + - five style: 'color: red' - custom: test"); + custom: test +webform_element_attributes_no_classes: + class: + - one + - two + - four + - five"); } } diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementCodeMirrorTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementCodeMirrorTest.php index 62c1848fd8..55cf55c230 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementCodeMirrorTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementCodeMirrorTest.php @@ -51,6 +51,10 @@ public function testCodeMirror() { one: One two: Two three: Three +yaml_indexed_array: + - one +yaml_indexed_associative_array: + - one: One yaml_decode_value: test: hello"); diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementCompositeTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementCompositeTest.php index 22765c5092..0c14f0e5c9 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementCompositeTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementCompositeTest.php @@ -118,10 +118,10 @@ public function testComposite() { $this->drupalGet('/webform/test_element_composite_wrapper'); // Check fieldset wrapper. - $this->assertRaw('<fieldset data-drupal-selector="edit-radios-wrapper-fieldset" id="edit-radios-wrapper-fieldset--wrapper" class="radios--wrapper fieldgroup form-composite webform-composite-visible-title required js-webform-type-radios webform-type-radios js-form-item form-item js-form-wrapper form-wrapper">'); + $this->assertRaw('<fieldset data-drupal-selector="edit-radios-wrapper-fieldset" id="edit-radios-wrapper-fieldset--wrapper" class="radios--wrapper fieldgroup form-composite webform-composite-visible-title required js-webform-type-radios webform-type-radios js-form-item form-item js-form-wrapper form-wrapper" aria-required="true">'); // Check fieldset wrapper with hidden title. - $this->assertRaw('<fieldset data-drupal-selector="edit-radios-wrapper-fieldset-hidden-title" id="edit-radios-wrapper-fieldset-hidden-title--wrapper" class="radios--wrapper fieldgroup form-composite webform-composite-hidden-title required js-webform-type-radios webform-type-radios js-form-item form-item js-form-wrapper form-wrapper">'); + $this->assertRaw('<fieldset data-drupal-selector="edit-radios-wrapper-fieldset-hidden-title" id="edit-radios-wrapper-fieldset-hidden-title--wrapper" class="radios--wrapper fieldgroup form-composite webform-composite-hidden-title required js-webform-type-radios webform-type-radios js-form-item form-item js-form-wrapper form-wrapper" aria-required="true">'); // Check form element wrapper. $this->assertRaw('<div class="js-form-item form-item js-form-type-radios form-item-radios-wrapper-form-element js-form-item-radios-wrapper-form-element">'); diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementDetailsTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementDetailsTest.php index 08debedb21..980c32d9c5 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementDetailsTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementDetailsTest.php @@ -26,7 +26,7 @@ public function testDetails() { // and more. Also, check that invalid 'required' and 'aria-required' // attributes are removed. $this->assertRaw('<details data-webform-key="details" data-drupal-selector="edit-details" aria-describedby="edit-details--description" id="edit-details" class="js-form-wrapper form-wrapper required webform-element-help-container--title webform-element-help-container--title-after" open="open">'); - $this->assertRaw('<summary role="button" aria-controls="edit-details" aria-expanded="true" aria-pressed="true" class="js-form-required form-required">details<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">details</div><div class="webform-element-help--content">This is help text.</div>"><span aria-hidden="true">?</span>'); + $this->assertRaw('<summary role="button" aria-controls="edit-details" aria-expanded="true" aria-pressed="true" class="js-form-required form-required">details<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="details" data-webform-help="<div class="webform-element-help--title">details</div><div class="webform-element-help--content">This is help text.</div>"><span aria-hidden="true">?</span>'); $this->assertRaw('<div id="edit-details--description" class="webform-element-description">This is a description.</div>'); $this->assertRaw('<div id="edit-details--more" class="js-webform-element-more webform-element-more">'); diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementFieldsetTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementFieldsetTest.php index cd23072598..e928ab6a04 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementFieldsetTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementFieldsetTest.php @@ -25,8 +25,8 @@ public function testFieldset() { // Check fieldset with help, field prefix, field suffix, description, // and more. Also, check that invalid 'required' and 'aria-required' // attributes are removed. - $this->assertRaw('<fieldset class="webform-has-field-prefix webform-has-field-suffix required webform-element-help-container--title webform-element-help-container--title-after js-webform-type-fieldset webform-type-fieldset js-form-item form-item js-form-wrapper form-wrapper" data-drupal-selector="edit-fieldset" aria-describedby="edit-fieldset--description" id="edit-fieldset">'); - $this->assertRaw('<span class="fieldset-legend js-form-required form-required">fieldset<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">fieldset</div><div class="webform-element-help--content">This is help text.</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<fieldset class="webform-has-field-prefix webform-has-field-suffix required webform-element-help-container--title webform-element-help-container--title-after js-webform-type-fieldset webform-type-fieldset js-form-item form-item js-form-wrapper form-wrapper" data-drupal-selector="edit-fieldset" aria-describedby="edit-fieldset--description" id="edit-fieldset" aria-required="true">'); + $this->assertRaw('<span class="fieldset-legend js-form-required form-required">fieldset<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="fieldset" data-webform-help="<div class="webform-element-help--title">fieldset</div><div class="webform-element-help--content">This is help text.</div>"><span aria-hidden="true">?</span></span>'); $this->assertRaw('<span class="field-prefix">prefix</span>'); $this->assertRaw('<span class="field-suffix">suffix</span>'); $this->assertRaw('<div class="description">'); diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementHelpTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementHelpTest.php index 96a7e4027b..d6c56f3095 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementHelpTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementHelpTest.php @@ -23,47 +23,50 @@ public function testHelp() { $this->drupalGet('/webform/test_element_help'); // Check basic help. - $this->assertRaw('<label for="edit-help">help<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">help</div><div class="webform-element-help--content">{This is an example of help}</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<label for="edit-help">help<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="help" data-webform-help="<div class="webform-element-help--title">help</div><div class="webform-element-help--content">{This is an example of help}</div>"><span aria-hidden="true">?</span></span>'); // Check help with required. - $this->assertRaw('<label for="edit-help-required" class="js-form-required form-required">help_required<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">help_required</div><div class="webform-element-help--content">{This is an example of help for a required element}</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<label for="edit-help-required" class="js-form-required form-required">help_required<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="help_required" data-webform-help="<div class="webform-element-help--title">help_required</div><div class="webform-element-help--content">{This is an example of help for a required element}</div>"><span aria-hidden="true">?</span></span>'); // Check help with custom title. - $this->assertRaw('<label for="edit-help-title">help_title<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">{Help custom title}</div><div class="webform-element-help--content">{This is an example of help with a custom help title}</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<label for="edit-help-title">help_title<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="{Help custom title}" data-webform-help="<div class="webform-element-help--title">{Help custom title}</div><div class="webform-element-help--content">{This is an example of help with a custom help title}</div>"><span aria-hidden="true">?</span></span>'); // Check help with HTML markup. - $this->assertRaw('<label for="edit-help-html">help_html<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">help_html</div><div class="webform-element-help--content">{This is an example of help with <b>HTML markup</b>}</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<label for="edit-help-html">help_html<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="help_html" data-webform-help="<div class="webform-element-help--title">help_html</div><div class="webform-element-help--content">{This is an example of help with <b>HTML markup</b>}</div>"><span aria-hidden="true">?</span></span>'); // Check help with XSS. - $this->assertRaw('<label for="edit-help-xss">help_xss<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">help_xss</div><div class="webform-element-help--content">{This is an example of help with <b>XSS alert("XSS")</b>}</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<label for="edit-help-xss">help_xss<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="help_xss" data-webform-help="<div class="webform-element-help--title">help_xss</div><div class="webform-element-help--content">{This is an example of help with <b>XSS alert("XSS")</b>}</div>"><span aria-hidden="true">?</span></span>'); + + // Check help empty. + $this->assertRaw('<label for="edit-help-empty">help_empty</label>'); // Check help with inline title. - $this->assertRaw('<label for="edit-help-checkbox" class="option">help_checkbox<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">help_checkbox</div><div class="webform-element-help--content">{This is an example of help}</div>"><span aria-hidden="true">?</span></span>'); - $this->assertRaw('<label for="edit-help-inline"><span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">help_inline</div><div class="webform-element-help--content">{This is an example of help with an inline title}</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<label for="edit-help-checkbox" class="option">help_checkbox<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="help_checkbox" data-webform-help="<div class="webform-element-help--title">help_checkbox</div><div class="webform-element-help--content">{This is an example of help}</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<label for="edit-help-inline"><span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="help_inline" data-webform-help="<div class="webform-element-help--title">help_inline</div><div class="webform-element-help--content">{This is an example of help with an inline title}</div>"><span aria-hidden="true">?</span></span>'); // Check radios (fieldset). - $this->assertRaw('<span class="fieldset-legend">help_radios<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">help_radios</div><div class="webform-element-help--content">{This is an example of help for radio buttons}</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<span class="fieldset-legend">help_radios<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="help_radios" data-webform-help="<div class="webform-element-help--title">help_radios</div><div class="webform-element-help--content">{This is an example of help for radio buttons}</div>"><span aria-hidden="true">?</span></span>'); // Check fieldset. - $this->assertRaw('<span class="fieldset-legend">help_radios<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">help_radios</div><div class="webform-element-help--content">{This is an example of help for radio buttons}</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<span class="fieldset-legend">help_radios<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="help_radios" data-webform-help="<div class="webform-element-help--title">help_radios</div><div class="webform-element-help--content">{This is an example of help for radio buttons}</div>"><span aria-hidden="true">?</span></span>'); // Check details. - $this->assertRaw('<summary role="button" aria-controls="edit-help-details" aria-expanded="false" aria-pressed="false">help_details<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">help_details</div><div class="webform-element-help--content">{This is an example of help for a details element}</div>"><span aria-hidden="true">?</span>'); + $this->assertRaw('<summary role="button" aria-controls="edit-help-details" aria-expanded="false" aria-pressed="false">help_details<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="help_details" data-webform-help="<div class="webform-element-help--title">help_details</div><div class="webform-element-help--content">{This is an example of help for a details element}</div>"><span aria-hidden="true">?</span>'); // Check section. - $this->assertRaw('<h2 class="webform-section-title">help_section<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">help_section</div><div class="webform-element-help--content">{This is an example of help for a section element}</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<h2 class="webform-section-title">help_section<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="help_section" data-webform-help="<div class="webform-element-help--title">help_section</div><div class="webform-element-help--content">{This is an example of help for a section element}</div>"><span aria-hidden="true">?</span></span>'); // Check help display title after. - $this->assertRaw('<label for="edit-help-after-title">help_after_title<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">help_after_title</div><div class="webform-element-help--content">{This is an example of help}</div>"><span aria-hidden="true">?</span></span></label>'); + $this->assertRaw('<label for="edit-help-after-title">help_after_title<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="help_after_title" data-webform-help="<div class="webform-element-help--title">help_after_title</div><div class="webform-element-help--content">{This is an example of help}</div>"><span aria-hidden="true">?</span></span></label>'); // Check help display title before. - $this->assertRaw('<label for="edit-help-before-title"><span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">help_before_title</div><div class="webform-element-help--content">{This is an example of help}</div>"><span aria-hidden="true">?</span></span>help_before_title</label>'); + $this->assertRaw('<label for="edit-help-before-title"><span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="help_before_title" data-webform-help="<div class="webform-element-help--title">help_before_title</div><div class="webform-element-help--content">{This is an example of help}</div>"><span aria-hidden="true">?</span></span>help_before_title</label>'); // Check help display element after. - $this->assertRaw('<span class="field-suffix"><span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">help_after_element</div><div class="webform-element-help--content">{This is an example of help}</div>"><span aria-hidden="true">?</span></span></span>'); + $this->assertRaw('<span class="field-suffix"><span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="help_after_element" data-webform-help="<div class="webform-element-help--title">help_after_element</div><div class="webform-element-help--content">{This is an example of help}</div>"><span aria-hidden="true">?</span></span></span>'); // Check help display element before. - $this->assertRaw('<span class="field-prefix"><span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">help_before_element</div><div class="webform-element-help--content">{This is an example of help}</div>"><span aria-hidden="true">?</span></span></span>'); + $this->assertRaw('<span class="field-prefix"><span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="help_before_element" data-webform-help="<div class="webform-element-help--title">help_before_element</div><div class="webform-element-help--content">{This is an example of help}</div>"><span aria-hidden="true">?</span></span></span>'); } } diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementLikertTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementLikertTest.php index 0c107bab9b..40552f801e 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementLikertTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementLikertTest.php @@ -45,9 +45,9 @@ public function testLikertElement() { $this->assertRaw('<span class="webform-likert-description hidden">This is a description</span>'); // Check likert with help. - $this->assertRaw('<th>Option 1<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">Option 1</div><div class="webform-element-help--content">This is help text</div>"><span aria-hidden="true">?</span></span>'); - $this->assertRaw('<label>Question 1<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">Question 1</div><div class="webform-element-help--content">This is help text</div>"><span aria-hidden="true">?</span></span>'); - $this->assertRaw('<label for="edit-likert-help-q1--2" class="option"><span class="webform-likert-label visually-hidden">Option 2<span class="webform-likert-help hidden"><span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">Option 2</div><div class="webform-element-help--content">This is help text</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<th>Option 1<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="Option 1" data-webform-help="<div class="webform-element-help--title">Option 1</div><div class="webform-element-help--content">This is help text</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<label>Question 1<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="Question 1" data-webform-help="<div class="webform-element-help--title">Question 1</div><div class="webform-element-help--content">This is help text</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<label for="edit-likert-help-q1--2" class="option"><span class="webform-likert-label visually-hidden">Option 2<span class="webform-likert-help hidden"><span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="Option 2" data-webform-help="<div class="webform-element-help--title">Option 2</div><div class="webform-element-help--content">This is help text</div>"><span aria-hidden="true">?</span></span>'); // Check likert with custom required error. $this->drupalPostForm('/webform/test_element_likert', [], 'Submit'); diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementMappingTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementMappingTest.php index 5dfa8b0a30..52189dfe26 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementMappingTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementMappingTest.php @@ -31,7 +31,7 @@ public function testMappingElement() { $this->assertRaw('<td>One →<div class="description js-form-wrapper form-wrapper" data-drupal-selector="edit-table-one-source-data-description" id="edit-table-one-source-data-description">This is a description. This is a <a href="https://google.com">link</a></div>'); // Check source help. - $this->assertRaw('<td>One<span data-drupal-selector="edit-table-one-source-data-help" class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">One</div><div class="webform-element-help--content">This is help. This is a <a href="https://google.com">link</a></div>"><span aria-hidden="true">?</span></span> →</td>'); + $this->assertRaw('<td>One<span data-drupal-selector="edit-table-one-source-data-help" class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="One" data-webform-help="<div class="webform-element-help--title">One</div><div class="webform-element-help--content">This is help. This is a <a href="https://google.com">link</a></div>"><span aria-hidden="true">?</span></span> →</td>'); // Check custom element. $this->assertRaw('<th>{Custom source} »</th>'); diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementPluginPropertiesTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementPluginPropertiesTest.php index 8518c2d907..8c7f75f8c8 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementPluginPropertiesTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementPluginPropertiesTest.php @@ -4607,10 +4607,10 @@ protected function getExpectedElementDefaultProperties() { field_prefix: '' field_suffix: '' flex: 1 - format: ol + format: value format_attributes: { } format_html: '' - format_items: comma + format_items: ol format_items_html: '' format_items_text: '' format_text: '' @@ -4661,10 +4661,10 @@ protected function getExpectedElementDefaultProperties() { field_prefix: '' field_suffix: '' flex: 1 - format: ol + format: value format_attributes: { } format_html: '' - format_items: comma + format_items: ol format_items_html: '' format_items_text: '' format_text: '' diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementRadiosTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementRadiosTest.php index 2fa5078f07..ea1b859b48 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementRadiosTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementRadiosTest.php @@ -31,7 +31,7 @@ public function testElementRadios() { // Check radios with help text display. $this->assertRaw('<input data-drupal-selector="edit-radios-help-one" type="radio" id="edit-radios-help-one" name="radios_help" value="one" class="form-radio" />'); - $this->assertRaw('<label for="edit-radios-help-one" class="option">One<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">One</div><div class="webform-element-help--content">This is a description</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<label for="edit-radios-help-one" class="option">One<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="One" data-webform-help="<div class="webform-element-help--title">One</div><div class="webform-element-help--content">This is a description</div>"><span aria-hidden="true">?</span></span>'); // Check radios displayed as buttons. $this->assertRaw('<div id="edit-radios-buttons" class="js-webform-radios webform-options-display-buttons"><div class="webform-options-display-buttons-wrapper">'); diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementSectionTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementSectionTest.php index fe71408838..5e10689c1f 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementSectionTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementSectionTest.php @@ -24,7 +24,7 @@ public function testSection() { // Check section element. $this->assertRaw('<section data-drupal-selector="edit-webform-section" aria-describedby="edit-webform-section--description" id="edit-webform-section" class="required webform-element-help-container--title webform-element-help-container--title-after js-form-item form-item js-form-wrapper form-wrapper webform-section" required="required" aria-required="true">'); - $this->assertRaw('<h2 class="webform-section-title js-form-required form-required">webform_section<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">webform_section</div><div class="webform-element-help--content">This is help text.</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<h2 class="webform-section-title js-form-required form-required">webform_section<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="webform_section" data-webform-help="<div class="webform-element-help--title">webform_section</div><div class="webform-element-help--content">This is help text.</div>"><span aria-hidden="true">?</span></span>'); $this->assertRaw('<div class="description"><div id="edit-webform-section--description" class="webform-element-description">This is a description.</div>'); $this->assertRaw('<div id="edit-webform-section--more" class="js-webform-element-more webform-element-more">'); diff --git a/web/modules/webform/tests/src/Functional/Element/WebformElementValidateRequiredTest.php b/web/modules/webform/tests/src/Functional/Element/WebformElementValidateRequiredTest.php index edf0358a66..a8711866bf 100644 --- a/web/modules/webform/tests/src/Functional/Element/WebformElementValidateRequiredTest.php +++ b/web/modules/webform/tests/src/Functional/Element/WebformElementValidateRequiredTest.php @@ -22,10 +22,11 @@ class WebformElementValidateRequiredTest extends WebformElementBrowserTestBase { public function testPattern() { // Check that HTML tags are stripped from required error attribute. $this->drupalGet('/webform/test_element_validate_required'); - $this->assertRaw(' <input data-webform-required-error="This is a custom required message" data-drupal-selector="edit-required-textfield-html" type="text" id="edit-required-textfield-html" name="required_textfield_html" value="" size="60" maxlength="255" class="form-text required" required="required" aria-required="true" />'); + $this->assertRaw('<input data-webform-required-error="This is a custom required message" data-drupal-selector="edit-required-error-textfield" type="text" id="edit-required-error-textfield" name="required_error_textfield" value="" size="60" maxlength="255" class="form-text required" required="required" aria-required="true" />'); // Check that HTML tags are rendered in validation message. $this->drupalPostForm('/webform/test_element_validate_required', [], 'Submit'); + $this->assertRaw(' <li>required_error_textfield_<em>html</em> field is required.</li>'); $this->assertRaw('<li>This is a <em>custom required message</em></li>'); } diff --git a/web/modules/webform/tests/src/Functional/Form/WebformFormPropertiesTest.php b/web/modules/webform/tests/src/Functional/Form/WebformFormPropertiesTest.php index 29737ebf94..7ae269372b 100644 --- a/web/modules/webform/tests/src/Functional/Form/WebformFormPropertiesTest.php +++ b/web/modules/webform/tests/src/Functional/Form/WebformFormPropertiesTest.php @@ -32,18 +32,18 @@ public function testProperties() { $this->drupalGet('/webform/test_form_properties'); $this->assertPattern('/Form prefix<form /'); $this->assertPattern('/<\/form>\s+Form suffix/'); - $this->assertRaw('<form class="webform-submission-form webform-submission-add-form webform-submission-test-form-properties-form webform-submission-test-form-properties-add-form test-form-properties js-webform-details-toggle webform-details-toggle" invalid="invalid" style="border: 10px solid red; padding: 1em;" data-drupal-selector="webform-submission-test-form-properties-add-form" action="https://www.google.com/search" method="get" id="webform-submission-test-form-properties-add-form" accept-charset="UTF-8">'); + $this->assertRaw('<form invalid="invalid" class="webform-submission-form webform-submission-add-form webform-submission-test-form-properties-form webform-submission-test-form-properties-add-form test-form-properties js-webform-details-toggle webform-details-toggle" style="border: 10px solid red; padding: 1em;" data-drupal-selector="webform-submission-test-form-properties-add-form" action="https://www.google.com/search" method="get" id="webform-submission-test-form-properties-add-form" accept-charset="UTF-8">'); // Check editing webform settings style attributes and custom properties // updates the element's root properties. $this->drupalLogin($this->rootUser); $edit = [ - 'attributes[class][select][]' => ['form--inline clearfix', '_other_'], - 'attributes[class][other]' => 'test-form-properties', - 'attributes[style]' => 'border: 10px solid green; padding: 1em;', - 'attributes[attributes]' => '', - 'method' => '', - 'action' => '', + 'form_attributes[class][select][]' => ['form--inline clearfix', '_other_'], + 'form_attributes[class][other]' => 'test-form-properties', + 'form_attributes[style]' => 'border: 10px solid green; padding: 1em;', + 'form_attributes[attributes]' => '', + 'form_method' => '', + 'form_action' => '', 'custom' => "'suffix': 'Form suffix TEST' 'prefix': 'Form prefix TEST'", ]; diff --git a/web/modules/webform/tests/src/Functional/Handler/WebformHandlerRemotePostTest.php b/web/modules/webform/tests/src/Functional/Handler/WebformHandlerRemotePostTest.php index b9828df0e5..2c896d9cd2 100644 --- a/web/modules/webform/tests/src/Functional/Handler/WebformHandlerRemotePostTest.php +++ b/web/modules/webform/tests/src/Functional/Handler/WebformHandlerRemotePostTest.php @@ -301,6 +301,29 @@ public function testRemotePostHandler() { uuid: $files_uuid data: dGhpcyBpcyBhIHNhbXBsZSB0eHQgZmlsZQppdCBoYXMgdHdvIGxpbmVzCg=="); + // Check the file data is NOT appended to form params. + $handler = $webform->getHandler('remote_post'); + $handler->setSetting('file_data', FALSE); + $webform->save(); + $this->drupalPostForm("/admin/structure/webform/manage/test_handler_remote_post_file/submission/$sid/edit", [], t('Save')); + $this->assertRaw("form_params: + file: 1 + files: + - 2 + _file: + id: $file_id + name: file.txt + uri: 'private://webform/test_handler_remote_post_file/$sid/file.txt' + mime: text/plain + uuid: $file_uuid + _files: + - + id: $files_id + name: files.txt + uri: 'private://webform/test_handler_remote_post_file/$sid/files.txt' + mime: text/plain + uuid: $files_uuid"); + /**************************************************************************/ // POST cast. /**************************************************************************/ diff --git a/web/modules/webform/tests/src/Functional/Settings/WebformSettingsAdminTest.php b/web/modules/webform/tests/src/Functional/Settings/WebformSettingsAdminTest.php index 15fac79352..118a56b0c9 100644 --- a/web/modules/webform/tests/src/Functional/Settings/WebformSettingsAdminTest.php +++ b/web/modules/webform/tests/src/Functional/Settings/WebformSettingsAdminTest.php @@ -106,11 +106,11 @@ public function testAdminSettings() { // Check moving #description to #help for webform admin routes. $this->drupalPostForm('/admin/structure/webform/config/advanced', ['ui[description_help]' => TRUE], 'Save configuration'); - $this->assertRaw('<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">Display element description as help text (tooltip)</div><div class="webform-element-help--content">If checked, all element descriptions will be moved to help text (tooltip).</div>"><span aria-hidden="true">?</span></span>'); + $this->assertRaw('<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="Display element description as help text (tooltip)" data-webform-help="<div class="webform-element-help--title">Display element description as help text (tooltip)</div><div class="webform-element-help--content">If checked, all element descriptions will be moved to help text (tooltip).</div>"><span aria-hidden="true">?</span></span>'); // Check moving #description to #help for webform admin routes. $this->drupalPostForm('/admin/structure/webform/config/advanced', ['ui[description_help]' => FALSE], 'Save configuration'); - $this->assertNoRaw('<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" data-webform-help="<div class="webform-element-help--title">Display element description as help text (tooltip)</div><div class="webform-element-help--content">If checked, all element descriptions will be moved to help text (tooltip).</div>"><span aria-hidden="true">?</span></span>'); + $this->assertNoRaw('<span class="webform-element-help js-webform-element-help" role="tooltip" tabindex="0" aria-label="Display element description as help text (tooltip)" data-webform-help="<div class="webform-element-help--title">Display element description as help text (tooltip)</div><div class="webform-element-help--content">If checked, all element descriptions will be moved to help text (tooltip).</div>"><span aria-hidden="true">?</span></span>'); /* Toolbar */ diff --git a/web/modules/webform/tests/src/Functional/Views/WebformViewsBulkFormTest.php b/web/modules/webform/tests/src/Functional/Views/WebformViewsBulkFormTest.php index 24c9d8afe3..e8423ff793 100644 --- a/web/modules/webform/tests/src/Functional/Views/WebformViewsBulkFormTest.php +++ b/web/modules/webform/tests/src/Functional/Views/WebformViewsBulkFormTest.php @@ -88,7 +88,8 @@ public function testViewsBulkForm() { 'action' => 'webform_submission_delete_action', ]; $this->drupalPostForm('/admin/structure/webform/test/views_bulk_form', $edit, 'Apply to selected items'); - $this->drupalPostForm(NULL, [], 'Delete'); + $this->drupalPostForm(NULL, ['confirm_input' => TRUE], 'Delete'); + $webform_submission = $this->loadSubmission($webform_submission->id()); $this->assertNull($webform_submission, '1: Webform submission has been deleted'); diff --git a/web/modules/webform/tests/src/Functional/WebformEditorTest.php b/web/modules/webform/tests/src/Functional/WebformEditorTest.php index 3f648174e5..230294ed7e 100644 --- a/web/modules/webform/tests/src/Functional/WebformEditorTest.php +++ b/web/modules/webform/tests/src/Functional/WebformEditorTest.php @@ -168,7 +168,7 @@ public function testWebformSettingsFiles() { $this->assertFalse($images[0]->isTemporary()); // Delete the webform. - Webform::load('contact')->delete(); + $this->reloadWebform('contact')->delete(); $this->reloadImages($images); // Check that file is temporary after the webform is deleted. diff --git a/web/modules/webform/tests/src/Functional/WebformEntityTranslationTest.php b/web/modules/webform/tests/src/Functional/WebformEntityTranslationTest.php index 3869d030bb..2f92c5e99e 100644 --- a/web/modules/webform/tests/src/Functional/WebformEntityTranslationTest.php +++ b/web/modules/webform/tests/src/Functional/WebformEntityTranslationTest.php @@ -271,6 +271,7 @@ public function testWebformTranslate() { // Make sure the site language is English (en). \Drupal::configFactory()->getEditable('system.site')->set('default_langcode', 'en')->save(); + drupal_flush_all_caches(); $language_manager = \Drupal::languageManager(); @@ -304,6 +305,7 @@ public function testWebformTranslate() { // Make sure the site language is English (en). \Drupal::configFactory()->getEditable('system.site')->set('default_langcode', 'en')->save(); + drupal_flush_all_caches(); // Duplicate translated webform. $edit = [ diff --git a/web/modules/webform/tests/src/Functional/WebformListBuilderTest.php b/web/modules/webform/tests/src/Functional/WebformListBuilderTest.php index 4b62f5283f..c8b395c20a 100644 --- a/web/modules/webform/tests/src/Functional/WebformListBuilderTest.php +++ b/web/modules/webform/tests/src/Functional/WebformListBuilderTest.php @@ -17,9 +17,9 @@ class WebformListBuilderTest extends WebformBrowserTestBase { public static $modules = ['node', 'webform', 'webform_test_submissions']; /** - * Tests the webform overview filter. + * Tests the webform overview filter and limit. */ - public function testFilter() { + public function testFilterAndLimit() { $this->drupalLogin($this->rootUser); // Check filter default category and state. @@ -42,6 +42,168 @@ public function testFilter() { $this->drupalGet('/admin/structure/webform', ['query' => ['category' => '', 'state' => '']]); $this->assertOptionSelected('edit-category', ''); $this->assertOptionSelected('edit-state', ''); + + // Clear the filters. + \Drupal::configFactory()->getEditable('webform.settings') + ->set('form.filter_category', '') + ->set('form.filter_state', '') + ->save(); + + // Check that two webforms are displayed when the limit is 50. + $this->drupalGet('/admin/structure/webform'); + $this->assertFieldByName('items[contact]'); + $this->assertFieldByName('items[test_submissions]'); + $this->assertNoCssSelect('.pager'); + + // Create 1 extra webform and set the limit to 1. + \Drupal::configFactory()->getEditable('webform.settings') + ->set('form.limit', 1) + ->save(); + + // Check the now only one webform is displayed. + $this->drupalGet('/admin/structure/webform'); + $this->assertFieldByName('items[contact]'); + $this->assertNoFieldByName('items[test_submissions]'); + $this->assertCssSelect('.pager'); + } + + /** + * Tests the webform overview bulk operations. + */ + public function testBulkOperations() { + // Add three test webforms. + /** @var \Drupal\webform\Entity\Webform[] $webforms */ + $webforms = [ + $this->createWebform(['id' => 'one']), + $this->createWebform(['id' => 'two']), + $this->createWebform(['id' => 'three']), + ]; + + $this->drupalLogin($this->rootUser); + + // Check bulk operation access. + $this->drupalGet('/admin/structure/webform'); + $this->assertCssSelect('#webform-bulk-form'); + $this->assertCssSelect('#edit-items-one'); + $this->assertCssSelect('#edit-items-two'); + $this->assertCssSelect('#edit-items-three'); + + // Check available actions when NOT filtered by archived webforms. + $this->drupalGet('/admin/structure/webform'); + $this->assertCssSelect('option[value="webform_open_action"]'); + $this->assertCssSelect('option[value="webform_close_action"]'); + $this->assertCssSelect('option[value="webform_archive_action"]'); + $this->assertNoCssSelect('option[value="webform_unarchive_action"]'); + $this->assertCssSelect('option[value="webform_delete_action"]'); + + // Check available actions when filtered by archived webforms. + $this->drupalGet('/admin/structure/webform', ['query' => ['state' => 'archived']]); + $this->assertNoCssSelect('option[value="webform_open_action"]'); + $this->assertNoCssSelect('option[value="webform_close_action"]'); + $this->assertNoCssSelect('option[value="webform_archive_action"]'); + $this->assertCssSelect('option[value="webform_unarchive_action"]'); + $this->assertCssSelect('option[value="webform_delete_action"]'); + + /**************************************************************************/ + // Disable/Enable. + /**************************************************************************/ + + // Check bulk operation disable. + \Drupal::configFactory()->getEditable('webform.settings') + ->set('settings.webform_bulk_form', FALSE) + ->save(); + $this->drupalGet('/admin/structure/webform'); + $this->assertNoCssSelect('#webform-bulk-form'); + + // Re-enable bulk operations. + \Drupal::configFactory()->getEditable('webform.settings') + ->set('settings.webform_bulk_form', TRUE) + ->save(); + + /**************************************************************************/ + // Open/Close. + /**************************************************************************/ + + // Check webform one is opened. + $this->assertTrue($webforms[0]->isOpen()); + + // Check webform close action. + $edit = [ + 'action' => 'webform_close_action', + 'items[one]' => TRUE, + ]; + $this->drupalPostForm('/admin/structure/webform', $edit, 'Apply to selected items', [], 'webform-bulk-form'); + $this->assertRaw('<em class="placeholder">Close webform</em> was applied to 1 item.'); + $this->assertCssSelect('#edit-items-one'); + $this->assertCssSelect('#edit-items-two'); + $this->assertCssSelect('#edit-items-three'); + + // Check webform one is now closed. + $webforms[0] = $this->reloadWebform('one'); + $this->assertTrue($webforms[0]->isClosed()); + + // Check webform close action. + $edit = [ + 'action' => 'webform_open_action', + 'items[one]' => TRUE, + ]; + $this->drupalPostForm('/admin/structure/webform', $edit, 'Apply to selected items', [], 'webform-bulk-form'); + $this->assertRaw('<em class="placeholder">Open webform</em> was applied to 1 item.'); + + // Check webform one is now open. + $webforms[0] = $this->reloadWebform('one'); + $this->assertTrue($webforms[0]->isOpen()); + + /**************************************************************************/ + // Archive/Restore. + /**************************************************************************/ + + // Check webform archive action. + $edit = [ + 'action' => 'webform_archive_action', + 'items[one]' => TRUE, + ]; + $this->drupalPostForm('/admin/structure/webform', $edit, 'Apply to selected items', [], 'webform-bulk-form'); + $this->assertRaw('<em class="placeholder">Archive webform</em> was applied to 1 item.'); + $this->assertNoCssSelect('#edit-items-one'); + + // Check webform one is now archived. + $webforms[0] = $this->reloadWebform('one'); + $this->assertTrue($webforms[0]->isArchived()); + $this->drupalGet('/admin/structure/webform', ['query' => ['state' => 'archived']]); + $this->assertCssSelect('#edit-items-one'); + + // Check webform unarchive action. + $edit = [ + 'action' => 'webform_unarchive_action', + 'items[one]' => TRUE, + ]; + $this->drupalPostForm('/admin/structure/webform', $edit, 'Apply to selected items', ['query' => ['state' => 'archived']], 'webform-bulk-form'); + $this->assertRaw('<em class="placeholder">Restore webform</em> was applied to 1 item.'); + + // Check webform one is now archived. + $webforms[0] = $this->reloadWebform('one'); + $this->assertFalse($webforms[0]->isArchived()); + + /**************************************************************************/ + // Delete. + /**************************************************************************/ + + // Check webform delete action. + $edit = [ + 'action' => 'webform_delete_action', + 'items[one]' => TRUE, + ]; + $this->drupalPostForm('/admin/structure/webform', $edit, 'Apply to selected items', [], 'webform-bulk-form'); + $edit = [ + 'confirm_input' => TRUE, + ]; + $this->drupalPostForm(NULL, $edit, 'Delete'); + $this->assertRaw('Deleted 1 item.'); + + // Check webform one is now deleted. + $webforms[0] = $this->reloadWebform('one'); + $this->assertNull($webforms[0]); } /** diff --git a/web/modules/webform/tests/src/Functional/WebformOptionsTest.php b/web/modules/webform/tests/src/Functional/WebformOptionsTest.php index aaa9ac5deb..64a9d52411 100644 --- a/web/modules/webform/tests/src/Functional/WebformOptionsTest.php +++ b/web/modules/webform/tests/src/Functional/WebformOptionsTest.php @@ -129,6 +129,10 @@ public function testWebformOptions() { $this->assertResponse(200); $this->drupalGet('/admin/structure/webform/options/manage/add'); $this->assertResponse(200); + + // Check duplicate copies dynamic options. + $this->drupalGet('/admin/structure/webform/options/time_zones/duplicate'); + $this->assertRaw('Africa/Abidjan: Africa/Abidjan'); } } diff --git a/web/modules/webform/tests/src/Functional/WebformResultsExportOptionsTest.php b/web/modules/webform/tests/src/Functional/WebformResultsExportOptionsTest.php index c6a970c24c..4e6e17db71 100644 --- a/web/modules/webform/tests/src/Functional/WebformResultsExportOptionsTest.php +++ b/web/modules/webform/tests/src/Functional/WebformResultsExportOptionsTest.php @@ -159,6 +159,13 @@ public function testExportOptions() { $this->assertRaw('Abraham,Lincoln'); $this->assertNoRaw('Hillary,Clinton'); + // Check uid. + $submissions[0]->setOwner($admin_submission_user)->save(); + $this->getExport($webform, ['uid' => $admin_submission_user->id()]); + $this->assertRaw('George,Washington'); + $this->assertNoRaw('Abraham,Lincoln'); + $this->assertNoRaw('Hillary,Clinton'); + // Check date range. $this->getExport($webform, ['range_type' => 'date', 'range_start' => '2000-01-01', 'range_end' => '2001-01-01']); $this->assertRaw('George,Washington'); diff --git a/web/modules/webform/tests/src/Functional/WebformSubmissionListBuilderBulkOperationsTest.php b/web/modules/webform/tests/src/Functional/WebformSubmissionListBuilderBulkOperationsTest.php new file mode 100644 index 0000000000..d326a80716 --- /dev/null +++ b/web/modules/webform/tests/src/Functional/WebformSubmissionListBuilderBulkOperationsTest.php @@ -0,0 +1,185 @@ +<?php + +namespace Drupal\Tests\webform\Functional; + +use Drupal\webform\Entity\Webform; + +/** + * Tests for webform submission list builder. + * + * @group webform + */ +class WebformSubmissionListBuilderBulkOperationsTest extends WebformBrowserTestBase { + + /** + * Modules to enable. + * + * @var array + */ + public static $modules = ['node', 'webform', 'webform_test_submissions']; + + /** + * Webforms to load. + * + * @var array + */ + protected static $testWebforms = ['test_submissions']; + + /** + * Tests results. + */ + public function testResults() { + $admin_submission_user = $this->drupalCreateUser([ + 'administer webform submission', + ]); + + $update_submission_user = $this->drupalCreateUser([ + 'view any webform submission', + 'edit any webform submission', + ]); + + /** @var \Drupal\webform\WebformInterface $webform */ + $webform = Webform::load('test_submissions'); + + /** @var \Drupal\webform\WebformSubmissionInterface[] $submissions */ + $submissions = array_values(\Drupal::entityTypeManager()->getStorage('webform_submission')->loadByProperties(['webform_id' => 'test_submissions'])); + + $path = '/admin/structure/webform/manage/' . $webform->id() . '/results/submissions'; + + /**************************************************************************/ + + // Login the admin submission user. + $this->drupalLogin($admin_submission_user); + + // Check bulk operation access. + $this->drupalGet($path); + $this->assertCssSelect('#webform-submission-bulk-form'); + $this->assertCssSelect('#edit-items-' . $submissions[0]->id()); + $this->assertCssSelect('#edit-items-' . $submissions[1]->id()); + $this->assertCssSelect('#edit-items-' . $submissions[2]->id()); + + // Check available actions when NOT filtered by archived webforms. + $this->drupalGet($path); + $this->assertCssSelect('option[value="webform_submission_make_sticky_action"]'); + $this->assertCssSelect('option[value="webform_submission_make_unsticky_action"]'); + $this->assertCssSelect('option[value="webform_submission_make_lock_action"]'); + $this->assertCssSelect('option[value="webform_submission_make_unlock_action"]'); + $this->assertCssSelect('option[value="webform_submission_delete_action"]'); + + /**************************************************************************/ + // Access. + /**************************************************************************/ + + // Login the update submission user. + $this->drupalLogin($update_submission_user); + + $this->drupalGet($path); + $this->assertCssSelect('option[value="webform_submission_make_sticky_action"]'); + $this->assertCssSelect('option[value="webform_submission_make_unsticky_action"]'); + $this->assertCssSelect('option[value="webform_submission_make_lock_action"]'); + $this->assertCssSelect('option[value="webform_submission_make_unlock_action"]'); + $this->assertNoCssSelect('option[value="webform_submission_delete_action"]'); + + // Login the admin submission user. + $this->drupalLogin($admin_submission_user); + + /**************************************************************************/ + // Disable/Enable. + /**************************************************************************/ + + // Check bulk operation disable. + \Drupal::configFactory()->getEditable('webform.settings') + ->set('settings.webform_submission_bulk_form', FALSE) + ->save(); + $this->drupalGet($path); + $this->assertNoCssSelect('#webform-submission-bulk-form'); + + // Re-enable bulk operations. + \Drupal::configFactory()->getEditable('webform.settings') + ->set('settings.webform_submission_bulk_form', TRUE) + ->save(); + + /**************************************************************************/ + // Sticky/Unsticky. + /**************************************************************************/ + + // Check first submission is NOT sticky. + $this->assertFalse($submissions[0]->isSticky()); + + // Check submission sticky action. + $edit = [ + 'action' => 'webform_submission_make_sticky_action', + 'items[' . $submissions[0]->id() . ']' => TRUE, + ]; + $this->drupalPostForm($path, $edit, 'Apply to selected items', [], 'webform-submission-bulk-form'); + $this->assertRaw('<em class="placeholder">Star/flag submission</em> was applied to 1 item.'); + + // Check first submission is sticky. + $submissions[0] = $this->reloadSubmission($submissions[0]->id()); + $this->assertTrue($submissions[0]->isSticky()); + + // Check submission unsticky action. + $edit = [ + 'action' => 'webform_submission_make_unsticky_action', + 'items[' . $submissions[0]->id() . ']' => TRUE, + ]; + $this->drupalPostForm($path, $edit, 'Apply to selected items', [], 'webform-submission-bulk-form'); + $this->assertRaw('<em class="placeholder">Unstar/unflag submission</em> was applied to 1 item.'); + + // Check first submission is NOT sticky. + $submissions[0] = $this->reloadSubmission($submissions[0]->id()); + $this->assertFalse($submissions[0]->isSticky()); + + /**************************************************************************/ + // Lock/Unlock. + /**************************************************************************/ + + // Check first submission is NOT lock. + $this->assertFalse($submissions[0]->isLocked()); + + // Check submission lock action. + $edit = [ + 'action' => 'webform_submission_make_lock_action', + 'items[' . $submissions[0]->id() . ']' => TRUE, + ]; + $this->drupalPostForm($path, $edit, 'Apply to selected items', [], 'webform-submission-bulk-form'); + $this->assertRaw('<em class="placeholder">Lock submission</em> was applied to 1 item.'); + + // Check first submission is lock. + $submissions[0] = $this->reloadSubmission($submissions[0]->id()); + $this->assertTrue($submissions[0]->isLocked()); + + // Check submission unlock action. + $edit = [ + 'action' => 'webform_submission_make_unlock_action', + 'items[' . $submissions[0]->id() . ']' => TRUE, + ]; + $this->drupalPostForm($path, $edit, 'Apply to selected items', [], 'webform-submission-bulk-form'); + $this->assertRaw('<em class="placeholder">Unlock submission</em> was applied to 1 item.'); + + // Check first submission is NOT lock. + $submissions[0] = $this->reloadSubmission($submissions[0]->id()); + $this->assertFalse($submissions[0]->isLocked()); + + /**************************************************************************/ + // Delete. + /**************************************************************************/ + + // Check submission delete action. + $edit = [ + 'action' => 'webform_submission_delete_action', + 'items[' . $submissions[0]->id() . ']' => TRUE, + ]; + $this->drupalPostForm($path, $edit, 'Apply to selected items', [], 'webform-submission-bulk-form'); + $edit = [ + 'confirm_input' => TRUE, + ]; + $this->drupalPostForm(NULL, $edit, 'Delete'); + $this->assertRaw('Deleted 1 item.'); + + // Check submission is now deleted. + $submissions[0] = $this->reloadSubmission($submissions[0]->id()); + $this->assertNull($submissions[0]); + } + +} diff --git a/web/modules/webform/tests/src/Functional/WebformSubmissionListBuilderTest.php b/web/modules/webform/tests/src/Functional/WebformSubmissionListBuilderTest.php index e53f2734e9..35c2a37d74 100644 --- a/web/modules/webform/tests/src/Functional/WebformSubmissionListBuilderTest.php +++ b/web/modules/webform/tests/src/Functional/WebformSubmissionListBuilderTest.php @@ -42,7 +42,6 @@ public function testResults() { /** @var \Drupal\webform\WebformInterface $webform */ $webform = Webform::load('test_submissions'); - $this->webform = $webform; /** @var \Drupal\webform\WebformSubmissionInterface[] $submissions */ $submissions = array_values(\Drupal::entityTypeManager()->getStorage('webform_submission')->loadByProperties(['webform_id' => 'test_submissions'])); diff --git a/web/modules/webform/tests/src/Traits/WebformBrowserTestTrait.php b/web/modules/webform/tests/src/Traits/WebformBrowserTestTrait.php index bcf10a9ab1..4338a80f38 100644 --- a/web/modules/webform/tests/src/Traits/WebformBrowserTestTrait.php +++ b/web/modules/webform/tests/src/Traits/WebformBrowserTestTrait.php @@ -231,6 +231,21 @@ protected function reloadWebform($id) { return $storage->load($id); } + /** + * Reload a test webform submission. + * + * @param string $id + * Webform id. + * + * @return \Drupal\webform\WebformSubmissionInterface|null + * A webform submission. + */ + protected function reloadSubmission($id) { + $storage = \Drupal::entityTypeManager()->getStorage('webform_submission'); + $storage->resetCache([$id]); + return $storage->load($id); + } + /****************************************************************************/ // Submission. /****************************************************************************/ 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 c65e2d4cfc..eb3c0004a2 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/webform.info.yml b/web/modules/webform/webform.info.yml index 78eda227c3..fe858ac0af 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-08-25 -version: '6.0.5' +# Information added by Drupal.org packaging script on 2021-10-31 +version: '6.1.0' project: 'webform' -datestamp: 1629903950 +datestamp: 1635676674 diff --git a/web/modules/webform/webform.libraries.yml b/web/modules/webform/webform.libraries.yml index da9f7ed477..8c503e3c7a 100644 --- a/web/modules/webform/webform.libraries.yml +++ b/web/modules/webform/webform.libraries.yml @@ -44,7 +44,7 @@ webform.admin.dialog: js/webform.admin.js: {} dependencies: - core/drupal.dialog.ajax - - webform/jquery.ui.dialog + - webform/drupal.dialog - webform/webform.ajax - webform/webform.form - webform/webform.form.tabs @@ -185,7 +185,6 @@ webform.confirmation.modal: - core/drupal.dialog - core/drupal.dialog.position - core/jquery.once - - core/jquery.ui.dialog - webform/webform.confirmation # Contextual @@ -205,7 +204,14 @@ webform.dialog: js/webform.dialog.js: {} dependencies: - core/drupal.dialog.ajax - - webform/jquery.ui.dialog + - webform/drupal.dialog + +drupal.dialog: + version: VERSION + js: + js/webform.drupal.dialog.js: {} + dependencies: + - core/drupal.dialog # Help. @@ -343,6 +349,12 @@ webform.theme.bartik: theme: css/webform.theme.bartik.css: {} +webform.theme.gin: + version: VERSION + css: + theme: + css/webform.theme.gin.css: {} + webform.theme.seven: version: VERSION css: @@ -712,7 +724,6 @@ webform.element.image_file.modal: - core/drupalSettings - core/drupal.dialog.ajax - core/jquery.once - - core/jquery.ui.dialog webform.element.inputmask: version: VERSION @@ -780,6 +791,12 @@ webform.element.message: - core/drupal - core/jquery.once +webform.element.message.info: + version: VERSION + css: + component: + css/webform.element.message.info.css: {} + webform.element.multiple: version: VERSION css: @@ -893,8 +910,8 @@ webform.element.states: js/webform.element.states.js: {} dependencies: - core/drupal + - core/drupal.autocomplete - core/jquery.once - - core/jquery.ui.autocomplete webform.element.telephone: version: VERSION @@ -922,7 +939,6 @@ webform.element.terms_of_service: - core/drupal - core/drupal.dialog.ajax - core/jquery.once - - core/jquery.ui.dialog webform.element.text_format: version: VERSION @@ -982,15 +998,6 @@ webform.composite.telephone: dependencies: - webform/webform.composite -# jQuery UI. - -jquery.ui.dialog: - version: VERSION - js: - js/webform.jquery.ui.dialog.js: {} - dependencies: - - core/jquery.ui.dialog - # Contrib Module. imce.input: diff --git a/web/modules/webform/webform.module b/web/modules/webform/webform.module index 2a1577d737..e9369f8763 100644 --- a/web/modules/webform/webform.module +++ b/web/modules/webform/webform.module @@ -271,8 +271,7 @@ function webform_menu_local_tasks_alter(&$data, $route_name, RefinableCacheableD $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])) { + if (isset($data['tabs'][0][$test_route_name])) { $has_test_tab = TRUE; if ($query) { $data['tabs'][0][$test_route_name]['#link']['url'] @@ -304,7 +303,7 @@ function webform_module_implements_alter(&$implementations, $hook) { * Implements hook_token_info_alter(). */ function webform_token_info_alter(&$data) { - module_load_include('inc', 'webform', 'webform.tokens.inc'); + module_load_include('inc', 'webform', 'webform.tokens'); // Append learn more about token suffixes to all webform token descriptions. // @see \Drupal\webform\WebformTokenManager::replace @@ -502,56 +501,48 @@ function webform_toolbar_alter(&$items) { * Implements hook_menu_links_discovered_alter(). */ function webform_menu_links_discovered_alter(&$links) { + // Display Webforms as a top-level administration menu item in the toolbar. if (\Drupal::config('webform.settings')->get('ui.toolbar_item')) { $links['entity.webform.collection']['parent'] = 'system.admin'; $links['entity.webform.collection']['weight'] = -9; } // Add webform local tasks as admin menu toolbar menu items. - // @see admin_toolbar_tools_menu_links_discovered_alter() if (\Drupal::moduleHandler()->moduleExists('admin_toolbar_tools')) { + // Get local task definitions. /** @var \Drupal\Core\Menu\LocalTaskManager $local_task_manager */ $local_task_manager = \Drupal::service('plugin.manager.menu.local_task'); + $definitions = $local_task_manager->getDefinitions(); - $local_tasks = $local_task_manager->getLocalTasks('entity.webform.collection', 0); - foreach ($local_tasks['tabs'] as $local_task) { - if (!$local_task['#link']['url'] instanceof Url) { - continue; - } + // Set default definition. + $default_definition = [ + 'provider' => 'webform', + 'menu_name' => 'admin', + ]; - $menu_item_title = $local_task['#link']['title']; - $menu_item_route_name = $local_task['#link']['url']->getRouteName(); - $menu_item_name = $menu_item_route_name . '.item'; - $links[$menu_item_name] = [ - 'title' => $menu_item_title, - 'route_name' => $menu_item_route_name, - 'parent' => 'entity.webform.collection', - 'weight' => $local_task['#weight'], - 'provider' => 'webform', - 'menu_name' => 'admin', - ]; + // Get keys to be copied. + $keys = ['title', 'route_name', 'weight']; + $keys_to_copy = array_combine($keys, $keys); - if (\Drupal::config('webform.settings')->get('ui.toolbar_item')) { - $local_sub_tasks = $local_task_manager->getLocalTasks($menu_item_route_name, 1); - foreach ($local_sub_tasks['tabs'] as $local_sub_task) { - if (!$local_task['#link']['url'] instanceof Url) { - continue; - } - - $menu_sub_item_title = $local_sub_task['#link']['title']; - $menu_sub_item_route_name = $local_sub_task['#link']['url']->getRouteName(); - $menu_sub_item_name = $menu_sub_item_route_name . '.sub_item'; - $links[$menu_sub_item_name] = [ - 'title' => $menu_sub_item_title, - 'route_name' => $menu_sub_item_route_name, - 'parent' => $menu_item_name, - 'weight' => $local_sub_task['#weight'], - 'provider' => 'webform', - 'menu_name' => 'admin', - ]; + $menu_links = []; + foreach ($definitions as $task_name => $definition) { + if (isset($definition['base_route']) && $definition['base_route'] === 'entity.webform.collection') { + $menu_links[$task_name . '.item'] = $default_definition + + array_intersect_key($definition, $keys_to_copy) + + ['parent' => 'entity.webform.collection']; + } + } + foreach($menu_links as $sub_link_task_name => $sub_link) { + foreach ($definitions as $task_name => $definition) { + if (isset($definition['parent_id']) && $definition['parent_id'] === preg_replace('/\.item$/', '', $sub_link_task_name)) { + $menu_links[$task_name . '.item'] = $default_definition + + array_intersect_key($definition, $keys_to_copy) + + ['parent' => $sub_link_task_name]; } } } + + $links += $menu_links; } } diff --git a/web/modules/webform/webform.routing.yml b/web/modules/webform/webform.routing.yml index 3aef6b4e4f..e16fb50c49 100644 --- a/web/modules/webform/webform.routing.yml +++ b/web/modules/webform/webform.routing.yml @@ -275,6 +275,14 @@ entity.webform.delete_form: requirements: _entity_access: 'webform.delete' +entity.webform.multiple_delete_confirm: + path: '/admin/structure/webform/delete' + defaults: + _form: '\Drupal\webform\Form\WebformEntityDeleteMultipleForm' + entity_type_id: webform + requirements: + _entity_delete_multiple_access: 'webform' + # Webform settings. entity.webform.settings: @@ -621,9 +629,10 @@ entity.webform_submission.sticky_toggle: webform_submission.multiple_delete_confirm: path: '/admin/structure/webform/results/delete' defaults: - _form: '\Drupal\webform\Form\WebformSubmissionDeleteMultiple' + _form: '\Drupal\webform\Form\WebformSubmissionDeleteMultipleForm' + entity_type_id: webform_submission requirements: - _permission: 'administer webform submission+delete any webform submission+delete own webform submission' + _entity_delete_multiple_access: 'webform_submission' # Handlers. -- GitLab