Skip to content

Commit 4d67cd7

Browse files
danimofarhatahmad
andauthored
Add optional Accessibility Statement Link (#6184)
This is required for all services/websites as per the European Privacy Act (Directive (EU) 2019/882). Co-authored-by: Ahmad Farhat <ahmad.af.farhat@gmail.com>
1 parent 49702eb commit 4d67cd7

File tree

8 files changed

+43
-2
lines changed

8 files changed

+43
-2
lines changed

app/assets/locales/de.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,8 +284,10 @@
284284
"terms": "Impressum",
285285
"privacy": "Datenschutzerklärung",
286286
"privacy_policy": "Datenschutzerklärung",
287+
"accessibility_statement": "Barrierefreiheitserklärung",
287288
"change_term_links": "Ändere den Link zum Impressum, der unten auf der Seite erscheint.",
288289
"change_privacy_link": "Ändere den Link zur Datenschutzerklärung, der unten auf der Seite erscheint.",
290+
"change_accessibility_statement_link": "Ändere den Link zur Barrierefreiheitserklärung, der unten auf der Seite erscheint.",
289291
"helpcenter": "Hilfeseite",
290292
"change_helpcenter_link": "Ändern Sie den Link zur Hilfeseite, der unter dem Profil-Dropdown erscheint",
291293
"maintenance": "Wartungshinweis",

app/assets/locales/en.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,8 +292,10 @@
292292
"terms": "Terms & Conditions",
293293
"privacy": "Privacy Notice",
294294
"privacy_policy": "Privacy Notice",
295+
"accessibility_statement": "Accessibility Statement",
295296
"change_term_links": "Change the terms links that appears at the bottom of the page",
296297
"change_privacy_link": "Change the privacy link that appears at the bottom of the page",
298+
"change_accessibility_statement_link": "Change the accessibility statement link that appears at the bottom of the page",
297299
"helpcenter": "Help Center",
298300
"change_helpcenter_link": "Change the help center link that appears under the profile dropdown",
299301
"maintenance": "Maintenance Banner",

app/javascript/components/admin/site_settings/administration/Administration.jsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import useSiteSettings from '../../../../hooks/queries/admin/site_settings/useSi
2424

2525
export default function Administration() {
2626
const { t } = useTranslation();
27-
const { data: siteSettings } = useSiteSettings(['Terms', 'PrivacyPolicy', 'HelpCenter', 'Maintenance']);
27+
const { data: siteSettings } = useSiteSettings(['Terms', 'PrivacyPolicy', 'AccessibilityStatement', 'HelpCenter', 'Maintenance']);
2828

2929
return (
3030
<>
@@ -55,6 +55,15 @@ export default function Administration() {
5555
value={siteSettings?.PrivacyPolicy}
5656
/>
5757
</Row>
58+
<Row>
59+
<h6> { t('admin.site_settings.administration.accessibility_statement') } </h6>
60+
<p className="text-muted"> { t('admin.site_settings.administration.change_accessibility_statement_link') } </p>
61+
<LinksForm
62+
id="helpForm"
63+
mutation={() => useUpdateSiteSetting('AccessibilityStatement')}
64+
value={siteSettings?.AccessibilityStatement}
65+
/>
66+
</Row>
5867
<Row>
5968
<h6> { t('admin.site_settings.administration.helpcenter') } </h6>
6069
<p className="text-muted"> { t('admin.site_settings.administration.change_helpcenter_link') } </p>

app/javascript/components/shared_components/Footer.jsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import { useAuth } from '../../contexts/auth/AuthProvider';
2424
export default function Footer() {
2525
const { t } = useTranslation();
2626
const { data: env } = useEnv();
27-
const { data: links } = useSiteSetting(['Terms', 'PrivacyPolicy']);
27+
const { data: links } = useSiteSetting(['Terms', 'PrivacyPolicy', 'AccessibilityStatement']);
2828
const currentUser = useAuth();
2929
const isAdmin = currentUser?.role?.name === 'Administrator' || currentUser?.role?.name === 'SuperAdmin';
3030

@@ -45,6 +45,12 @@ export default function Footer() {
4545
{ t('admin.site_settings.administration.privacy_policy') }
4646
</a>
4747
)}
48+
{ links?.AccessibilityStatement
49+
&& (
50+
<a className="ps-3" href={links?.AccessibilityStatement} target="_blank" rel="noreferrer">
51+
{ t('admin.site_settings.administration.accessibility_statement') }
52+
</a>
53+
)}
4854
</Container>
4955
</footer>
5056
);

app/javascript/hooks/mutations/admin/site_settings/useUpdateSiteSetting.jsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ export default function useUpdateSiteSetting(name) {
5454
case 'PrivacyPolicy':
5555
toast.success(t('toast.success.site_settings.privacy_policy_updated'));
5656
break;
57+
case 'AccessibilityStatement':
58+
toast.success(t('toast.success.site_settings.accessibility_updated'));
59+
break;
5760
case 'HelpCenter':
5861
toast.success(t('toast.success.site_settings.helpcenter_updated'));
5962
break;

app/services/tenant_setup.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ def create_site_settings
4747
provider: @provider },
4848
{ setting: Setting.find_by(name: 'Terms'), value: '', provider: @provider },
4949
{ setting: Setting.find_by(name: 'PrivacyPolicy'), value: '', provider: @provider },
50+
{ setting: Setting.find_by(name: 'AccessibilityStatement'), value: '', provider: @provider },
5051
{ setting: Setting.find_by(name: 'HelpCenter'), value: '', provider: @provider },
5152
{ setting: Setting.find_by(name: 'RegistrationMethod'), value: SiteSetting::REGISTRATION_METHODS[:open],
5253
provider: @provider },
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# frozen_string_literal: true
2+
3+
class AddAccessibilitySetting < ActiveRecord::Migration[7.2]
4+
def up
5+
setting = Setting.find_or_create_by(name: 'AccessibilityStatement')
6+
7+
SiteSetting.create!(setting:, value: '', provider: 'greenlight') unless SiteSetting.exists?(setting:, provider: 'greenlight')
8+
9+
Tenant.find_each do |tenant|
10+
SiteSetting.create!(setting:, value: '', provider: tenant.name) unless SiteSetting.exists?(setting:, provider: tenant.name)
11+
end
12+
end
13+
14+
def down
15+
raise ActiveRecord::IrreversibleMigration
16+
end
17+
end

spec/controllers/admin/tenants_controller_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ def create_settings_permissions_meetingoptions
136136
Setting.find_or_create_by(name: 'BrandingImage')
137137
Setting.find_or_create_by(name: 'Terms')
138138
Setting.find_or_create_by(name: 'PrivacyPolicy')
139+
Setting.find_or_create_by(name: 'AccessibilityStatement')
139140
Setting.find_or_create_by(name: 'HelpCenter')
140141
Setting.find_or_create_by(name: 'RegistrationMethod')
141142
Setting.find_or_create_by(name: 'ShareRooms')

0 commit comments

Comments
 (0)