diff --git a/modules/localgov_forms_feedback_form/README.md b/modules/localgov_forms_feedback_form/README.md new file mode 100644 index 0000000..1180917 --- /dev/null +++ b/modules/localgov_forms_feedback_form/README.md @@ -0,0 +1,19 @@ +# LocalGov Forms - Feedback Form + +## What is it? +This is a small module that creates a feedback for for your LocalGov Drupal website. + +It asks a simple question: "Was this page helpful?". + +If someone answers "Yes", they are asked if they'd like to share what is good about this page. If they answer "No", they have the opportunity to say how the page can be improved. + +## How to use it. +- Install it like any other Drupal module from the "Extend" page. +- Add a block of type "Webform" to your site via the `Admin > Structure > Blocks` page. +- When the form is submitted, results will be stored in the database. They can be accessed by going to `Admin > Structure > Webforms`, clicking on the "LocalGov Forms Feedback Form", and then choosing "Results". + +## Considerations +When you enable this module, the form that is created is set to store data in your website's database. This is the default datastore for webforms. However, this may not be where your data protection officer wishes you to store webform submissions. Check with your DPO before deploying this to a live site, or else edit the form configuration to store the data somewhere else - a CRM, an offsite backup, a separate database, etc. + +Maintainers: +- Mark Conroy diff --git a/modules/localgov_forms_feedback_form/config/install/webform.webform.localgov_forms_feedback_form.yml b/modules/localgov_forms_feedback_form/config/install/webform.webform.localgov_forms_feedback_form.yml new file mode 100644 index 0000000..8d2223e --- /dev/null +++ b/modules/localgov_forms_feedback_form/config/install/webform.webform.localgov_forms_feedback_form.yml @@ -0,0 +1,223 @@ +langcode: en +status: open +dependencies: { } +weight: 0 +open: null +close: null +uid: 1 +template: false +archive: false +id: localgov_forms_feedback_form +title: 'Feedback Form' +description: 'A simple "was this page helpful" feedback form.' +categories: { } +elements: |- + was_this_page_helpful: + '#type': radios + '#title': 'Was this page helpful?' + '#options': + 'Yes': 'Yes' + 'No': 'No' + response_for_yes: + '#type': textarea + '#title': 'Great. Want to tell us what you liked about it?' + '#states': + visible: + ':input[name="was_this_page_helpful"]': + value: 'Yes' + response_for_no: + '#type': textarea + '#title': 'Sorry to hear that. How can we improve it?' + '#states': + visible: + ':input[name="was_this_page_helpful"]': + value: 'No' +css: localgov-forms-feedback-form +javascript: '' +settings: + ajax: false + ajax_scroll_top: form + ajax_progress_type: '' + ajax_effect: '' + ajax_speed: null + page: true + page_submit_path: '' + page_confirm_path: '' + page_theme_name: '' + form_title: source_entity_webform + form_submit_once: false + form_open_message: '' + form_close_message: '' + form_exception_message: '' + form_previous_submissions: false + form_confidential: false + form_confidential_message: '' + form_disable_remote_addr: true + form_convert_anonymous: false + form_prepopulate: false + form_prepopulate_source_entity: false + form_prepopulate_source_entity_required: false + form_prepopulate_source_entity_type: '' + form_unsaved: false + form_disable_back: false + form_submit_back: false + form_disable_autocomplete: false + form_novalidate: false + form_disable_inline_errors: false + form_required: false + form_autofocus: false + form_details_toggle: false + form_reset: false + form_access_denied: default + form_access_denied_title: '' + form_access_denied_message: '' + form_access_denied_attributes: { } + form_file_limit: '' + form_attributes: + class: + - localgov-forms-feedback-form + form_method: '' + form_action: '' + share: false + share_node: false + share_theme_name: '' + share_title: true + share_page_body_attributes: { } + submission_label: '' + submission_exception_message: '' + submission_locked_message: '' + submission_log: false + submission_excluded_elements: { } + submission_exclude_empty: false + submission_exclude_empty_checkbox: false + submission_views: { } + submission_views_replace: { } + submission_user_columns: + - serial + - created + submission_user_duplicate: false + submission_access_denied: default + submission_access_denied_title: '' + submission_access_denied_message: '' + submission_access_denied_attributes: { } + previous_submission_message: '' + previous_submissions_message: '' + autofill: false + autofill_message: '' + autofill_excluded_elements: { } + wizard_progress_bar: false + wizard_progress_pages: false + wizard_progress_percentage: false + wizard_progress_link: false + wizard_progress_states: false + wizard_start_label: '' + wizard_preview_link: false + wizard_confirmation: true + wizard_confirmation_label: '' + wizard_auto_forward: true + wizard_auto_forward_hide_next_button: false + wizard_keyboard: true + wizard_track: '' + wizard_prev_button_label: '' + wizard_next_button_label: '' + wizard_toggle: false + wizard_toggle_show_label: '' + wizard_toggle_hide_label: '' + wizard_page_type: container + wizard_page_title_tag: h2 + preview: 0 + preview_label: '' + preview_title: '' + preview_message: '' + preview_attributes: { } + preview_excluded_elements: { } + preview_exclude_empty: true + preview_exclude_empty_checkbox: false + draft: none + draft_multiple: false + draft_auto_save: false + draft_saved_message: '' + draft_loaded_message: '' + draft_pending_single_message: '' + draft_pending_multiple_message: '' + confirmation_type: inline + confirmation_url: '' + confirmation_title: 'Thanks for your feedback' + confirmation_message: 'Thank you for that feedback, we will use it to improve our website.' + confirmation_attributes: { } + confirmation_back: false + confirmation_back_label: '' + confirmation_back_attributes: { } + confirmation_exclude_query: false + confirmation_exclude_token: false + confirmation_update: false + limit_total: null + limit_total_interval: null + limit_total_message: '' + limit_total_unique: false + limit_user: null + limit_user_interval: null + limit_user_message: '' + limit_user_unique: false + entity_limit_total: null + entity_limit_total_interval: null + entity_limit_user: null + entity_limit_user_interval: null + purge: none + purge_days: null + results_disabled: false + results_disabled_ignore: false + results_customize: false + token_view: false + token_update: false + token_delete: false + serial_disabled: false +access: + create: + roles: + - anonymous + - authenticated + users: { } + permissions: { } + view_any: + roles: { } + users: { } + permissions: { } + update_any: + roles: { } + users: { } + permissions: { } + delete_any: + roles: { } + users: { } + permissions: { } + purge_any: + roles: { } + users: { } + permissions: { } + view_own: + roles: { } + users: { } + permissions: { } + update_own: + roles: { } + users: { } + permissions: { } + delete_own: + roles: { } + users: { } + permissions: { } + administer: + roles: { } + users: { } + permissions: { } + test: + roles: { } + users: { } + permissions: { } + configuration: + roles: { } + users: { } + permissions: { } +handlers: { } +variants: { } diff --git a/modules/localgov_forms_feedback_form/css/localgov-forms-feedback-form.css b/modules/localgov_forms_feedback_form/css/localgov-forms-feedback-form.css new file mode 100644 index 0000000..40e7a1d --- /dev/null +++ b/modules/localgov_forms_feedback_form/css/localgov-forms-feedback-form.css @@ -0,0 +1,4 @@ +.localgov-forms-feedback-form .fieldset-wrapper > * { + display: flex; + gap: 1rem; +} diff --git a/modules/localgov_forms_feedback_form/localgov_forms_feedback_form.info.yml b/modules/localgov_forms_feedback_form/localgov_forms_feedback_form.info.yml new file mode 100644 index 0000000..aba30d5 --- /dev/null +++ b/modules/localgov_forms_feedback_form/localgov_forms_feedback_form.info.yml @@ -0,0 +1,8 @@ +name: LocalGov Forms Feedback Form +type: module +description: A simple feedback form for LocalGov Drupal. +package: LocalGov Drupal +core_version_requirement: ^10 || ^11 +dependencies: + - 'webform:webform' + - 'webform:webform_ui' diff --git a/modules/localgov_forms_feedback_form/localgov_forms_feedback_form.install b/modules/localgov_forms_feedback_form/localgov_forms_feedback_form.install new file mode 100644 index 0000000..42431af --- /dev/null +++ b/modules/localgov_forms_feedback_form/localgov_forms_feedback_form.install @@ -0,0 +1,13 @@ +addStatus(t('You have installed the LocalGov Forms Feedback Form. This form stores the form submissions in the database. Make sure you have checked this is okay with your data protection officer, or else change the form settings to store the data somewhere else.')); +} diff --git a/modules/localgov_forms_feedback_form/localgov_forms_feedback_form.libraries.yml b/modules/localgov_forms_feedback_form/localgov_forms_feedback_form.libraries.yml new file mode 100644 index 0000000..35e6538 --- /dev/null +++ b/modules/localgov_forms_feedback_form/localgov_forms_feedback_form.libraries.yml @@ -0,0 +1,4 @@ +localgov_forms_feedback_form: + css: + theme: + css/localgov-forms-feedback-form.css: {} diff --git a/modules/localgov_forms_feedback_form/localgov_forms_feedback_form.module b/modules/localgov_forms_feedback_form/localgov_forms_feedback_form.module new file mode 100644 index 0000000..a280310 --- /dev/null +++ b/modules/localgov_forms_feedback_form/localgov_forms_feedback_form.module @@ -0,0 +1,13 @@ +