[tor-commits] [donate-static/master] Added ability to edit counter labels
peterh at torproject.org
peterh at torproject.org
Tue Oct 13 18:28:42 UTC 2020
commit e5aefae7dc7cdd85e099289594c78e9e3b8e360e
Author: Peter Haight <peterh at giantrabbit.com>
Date: Fri Oct 9 16:22:40 2020 -0700
Added ability to edit counter labels
Three new HTML fields for editing the counter lables. They want to be
able to include links so they aren't just strings.
Issue #48277
---
content/donate/contents.lr | 6 ++++++
models/donate-form.ini | 12 ++++++++++++
parcel/js/campaign_totals.jsx | 20 +-------------------
parcel/js/counter.jsx | 4 +++-
templates/donate-form.html | 17 +++++++++++++++++
5 files changed, 39 insertions(+), 20 deletions(-)
diff --git a/content/donate/contents.lr b/content/donate/contents.lr
index 9a178119..8b9a2e94 100644
--- a/content/donate/contents.lr
+++ b/content/donate/contents.lr
@@ -93,3 +93,9 @@ counter: yes
tshirt_pack_second_shirt_options_label: Take back the Internet with Tor
---
tshirt_perk_options_label: Tor: Strength in Numbers
+---
+number_of_donations_counter_label: Number of Donations
+---
+total_donated_counter_label: Total Donated
+---
+total_matched_counter_label: Total Raised with Mozilla's Match
diff --git a/models/donate-form.ini b/models/donate-form.ini
index cd1027cb..943f775d 100644
--- a/models/donate-form.ini
+++ b/models/donate-form.ini
@@ -196,6 +196,18 @@ type = string
label = T-Shirt Pack Second Shirt Options Label
type = string
+[fields.number_of_donations_counter_label]
+label = Number of Donations Counter Label
+type = html
+
+[fields.total_donated_counter_label]
+label = Total Donated Counter Label
+type = html
+
+[fields.total_matched_counter_label]
+label = Total Matched Counter Label
+type = html
+
[fields.html]
label = Html
type = string
diff --git a/parcel/js/campaign_totals.jsx b/parcel/js/campaign_totals.jsx
index d377c876..5fc548c2 100644
--- a/parcel/js/campaign_totals.jsx
+++ b/parcel/js/campaign_totals.jsx
@@ -2,26 +2,8 @@ import React, {useState} from 'react';
import {Counter} from './counter';
import {useInterval} from './use_interval';
-const counters = [
- {
- 'cssClass': 'supporters',
- 'field': 'totalDonations',
- 'label': 'Number of Donations',
- },
- {
- 'cssClass': 'total-donated',
- 'field': 'totalAmount',
- 'label': 'Total Donated',
- },
- {
- 'cssClass': 'total-matched',
- 'field': 'amountWithMozilla',
- 'label': "Total Raised with Mozilla's Match",
- }
-];
-
export function CampaignTotals(props) {
- const {donateProccessorBaseUrl} = props;
+ const {donateProccessorBaseUrl, counters} = props;
const [amounts, setAmounts] = useState({
'totalDonations': 0,
'totalAmount': 0,
diff --git a/parcel/js/counter.jsx b/parcel/js/counter.jsx
index 773673b2..7c48dd30 100644
--- a/parcel/js/counter.jsx
+++ b/parcel/js/counter.jsx
@@ -70,12 +70,14 @@ export function Counter(props) {
);
}
+ const labelHtml = {__html: label};
+
return (
<div className={cssClass}>
<div className="characters">
{characterStates.map((character, index) => renderCharacter(character, index))}
</div>
- <div className="label">{label}</div>
+ <div className="label" dangerouslySetInnerHTML={labelHtml}></div>
</div>
);
}
diff --git a/templates/donate-form.html b/templates/donate-form.html
index e263936b..ccd4b5ad 100644
--- a/templates/donate-form.html
+++ b/templates/donate-form.html
@@ -172,6 +172,23 @@
name: 'CampaignTotals',
props: {
'donateProccessorBaseUrl': `{{ bag('donate', envvars('ENV'), 'donateProccessorBaseUrl') }}`,
+ 'counters': [
+ {
+ 'cssClass': 'supporters',
+ 'field': 'totalDonations',
+ 'label': `{{ this.number_of_donations_counter_label }}`,
+ },
+ {
+ 'cssClass': 'total-donated',
+ 'field': 'totalAmount',
+ 'label': `{{ this.total_donated_counter_label }}`,
+ },
+ {
+ 'cssClass': 'total-matched',
+ 'field': 'amountWithMozilla',
+ 'label': `{{ this.total_matched_counter_label }}`,
+ }
+ ],
},
}
);
More information about the tor-commits
mailing list