-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactoring and changes for analytics
- move much of the logic from the component into a helper - amend code for analytics: when there is more than one button on a page, there is a requirement to differentiate between them
- Loading branch information
1 parent
f5873c2
commit 78b21e1
Showing
4 changed files
with
51 additions
and
24 deletions.
There are no files selected for viewing
28 changes: 7 additions & 21 deletions
28
app/views/govuk_publishing_components/components/_single_page_notification_button.html.erb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,17 @@ | ||
<% | ||
page ||= '' | ||
data_attributes ||= {} | ||
base_path ||= nil | ||
local_assigns[:margin_bottom] ||= 3 | ||
already_subscribed ||= false | ||
js_enhancement ||= false | ||
text ||= already_subscribed ? t('components.single_page_notification_button.unsubscribe_text') : t('components.single_page_notification_button.subscribe_text') | ||
|
||
component_helper = GovukPublishingComponents::Presenters::SinglePageNotificationButtonHelper.new(local_assigns) | ||
shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns) | ||
|
||
wrapper_classes = %w(gem-c-single-page-notification-button govuk-!-display-none-print) | ||
wrapper_classes << shared_helper.get_margin_bottom | ||
classes = "govuk-body-s gem-c-single-page-notification-button__submit" | ||
module_names = %w(gem-track-click) | ||
module_names << "single-page-notification-button" if js_enhancement | ||
|
||
data_attributes[:module] = module_names.join(" ") | ||
data_attributes[:category] = "Single-page-notification-button" | ||
data_attributes[:action] = already_subscribed ? "Unsubscribe button" : "Subscribe button" | ||
data_attributes[:label] = base_path if base_path | ||
%> | ||
<% button_text = capture do %> | ||
<svg class="gem-c-single-page-notification-button__icon" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 459.334 459.334"><path fill="currentColor" d="M177.216 404.514c-.001.12-.009.239-.009.359 0 30.078 24.383 54.461 54.461 54.461s54.461-24.383 54.461-54.461c0-.12-.008-.239-.009-.359H175.216zM403.549 336.438l-49.015-72.002v-89.83c0-60.581-43.144-111.079-100.381-122.459V24.485C254.152 10.963 243.19 0 229.667 0s-24.485 10.963-24.485 24.485v27.663c-57.237 11.381-100.381 61.879-100.381 122.459v89.83l-49.015 72.002a24.76 24.76 0 0 0 20.468 38.693H383.08a24.761 24.761 0 0 0 20.469-38.694z"/></svg><%= text %> | ||
<svg class="gem-c-single-page-notification-button__icon" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 459.334 459.334"><path fill="currentColor" d="M177.216 404.514c-.001.12-.009.239-.009.359 0 30.078 24.383 54.461 54.461 54.461s54.461-24.383 54.461-54.461c0-.12-.008-.239-.009-.359H175.216zM403.549 336.438l-49.015-72.002v-89.83c0-60.581-43.144-111.079-100.381-122.459V24.485C254.152 10.963 243.19 0 229.667 0s-24.485 10.963-24.485 24.485v27.663c-57.237 11.381-100.381 61.879-100.381 122.459v89.83l-49.015 72.002a24.76 24.76 0 0 0 20.468 38.693H383.08a24.761 24.761 0 0 0 20.469-38.694z"/></svg><%= component_helper.button_text %> | ||
<% end %> | ||
<%= tag.form class: wrapper_classes, action: "/email/subscriptions/single-page/new", method: "POST", data: data_attributes do %> | ||
<input type="hidden" name="base_path" value="<%= base_path %>"> | ||
<%= tag.form class: wrapper_classes, action: "/email/subscriptions/single-page/new", method: "POST", data: component_helper.data do %> | ||
<input type="hidden" name="base_path" value="<%= component_helper.base_path %>"> | ||
<%= content_tag(:button, button_text, { | ||
class: classes, | ||
class: "govuk-body-s gem-c-single-page-notification-button__submit", | ||
type: "submit", | ||
}) %> | ||
<% end if base_path.presence %> | ||
<% end if component_helper.base_path %> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters