Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
dcf7fc1
New Crowdin Translations (automated) (#36777)
github-actions[bot] Nov 7, 2025
315833c
Fix prepared quote not being discarded with contents when replying (#…
ClearlyClaire Nov 7, 2025
70d71c1
Fix `/api/v1/statuses/:id/context` sometimes returing `Mastodon-Async…
ClearlyClaire Nov 7, 2025
6833878
Clarify hint for bootstrap account instructions (#36771)
mjankowski Nov 7, 2025
c7dc576
Rely on puma default environment setting (#36760)
mjankowski Nov 7, 2025
8fb06ea
Update dependency rollup from 4.46.2 to 4.46.4 (#36781)
ClearlyClaire Nov 7, 2025
882afd7
Reset background color on media modal (#36782)
ChaosExAnima Nov 7, 2025
441eb89
chore(deps): update dependency axios to v1.13.2 (#36726)
renovate[bot] Nov 7, 2025
89b5ceb
chore(deps): update dependency vite to v7.2.2 (#36751)
renovate[bot] Nov 10, 2025
b0790d8
New Crowdin Translations (automated) (#36786)
github-actions[bot] Nov 10, 2025
63e2ca5
Add spec for hitting max status pins limit in pin api (#36789)
mjankowski Nov 10, 2025
1280792
Fix dropdown menu not focusing first item when opened via keyboard (#…
diondiondion Nov 10, 2025
4ddddc2
Centers GIFs in media modal (#36806)
ChaosExAnima Nov 10, 2025
9addad8
Update to latest `eslint-plugin-react-hooks` (#36702)
renchap Nov 10, 2025
9a42d00
Ensure the boost button shows a numeric value (#36805)
ChaosExAnima Nov 10, 2025
400943c
Fix scroll shift caused by fetch-all-replies alerts (#36807)
diondiondion Nov 10, 2025
1c3e754
Add spec for translation attempt on private status (#36810)
mjankowski Nov 10, 2025
bc5397a
Remove the 2 PRs-per-hour Renovate limit (#36814)
renchap Nov 11, 2025
391c77f
New Crowdin Translations (automated) (#36820)
github-actions[bot] Nov 11, 2025
ff5d745
Emoji: Load emoji with hash in URL (#36808)
ChaosExAnima Nov 11, 2025
84cdb6c
Fix duplicated counters (fix #32614) (#36785)
xatier Nov 11, 2025
b53ee04
Fix icon buttons animating when they haven't changed (#36824)
diondiondion Nov 11, 2025
fa5318b
Remove webpack hints IDE config (#36769)
mjankowski Nov 11, 2025
a002048
Update storybook/msw/chromatic (#36739)
mjankowski Nov 11, 2025
11b75d6
chore(deps): update dependency aws-sdk-s3 to v1.203.1 (#36822)
renovate[bot] Nov 11, 2025
b5a2fe7
Revert "Fix duplicated counters (fix #32614)" (#36834)
ChaosExAnima Nov 11, 2025
ff0fca0
New Crowdin Translations (automated) (#36838)
github-actions[bot] Nov 12, 2025
4b1532e
Fix duplicate counters (#36844)
ChaosExAnima Nov 12, 2025
9f3573d
Fix filters not being applied to quotes in detailed view (#36843)
ClearlyClaire Nov 12, 2025
f303f34
Fixes blank screen in browsers that don't support `Intl.DisplayNames`…
diondiondion Nov 12, 2025
00cbc1b
Fix deprecation warning in Vite (#36849)
ChaosExAnima Nov 12, 2025
8abec0f
Revert "Ensure the boost button shows a numeric value (#36805)" (#36850)
ClearlyClaire Nov 12, 2025
ed3710e
Fix `Update` importing old previously-unknown activities and treating…
ClearlyClaire Nov 12, 2025
7e7f63a
Use the native script for Divehi (#36254)
shimon1024 Nov 12, 2025
3f292e0
New Crowdin Translations (automated) (#36858)
github-actions[bot] Nov 13, 2025
9dbebbb
Fix posts coming from public/hashtag streaming being marked as unquot…
ClearlyClaire Nov 13, 2025
998d4cc
Fix Cmd/Ctrl + Enter not submitting Alt text modal on some browsers (…
diondiondion Nov 13, 2025
98c8c1e
Fix error when sending new posts (#36869)
ClearlyClaire Nov 13, 2025
a11d5cb
Merge remote-tracking branch 'parent/main' into upstream-20251114
kmycode Nov 13, 2025
6e29482
Fix Cmd/Ctrl + Enter in the composer triggering confirmation dialog a…
diondiondion Nov 14, 2025
f243a00
New Crowdin Translations (automated) (#36875)
github-actions[bot] Nov 14, 2025
0d7c234
Bump version to v4.5.1 (#36872)
ClearlyClaire Nov 14, 2025
6d8c43a
Fix hashtag completion not being inserted correctly (#36884)
ClearlyClaire Nov 14, 2025
f25e066
Fix bogus quote approval policy not always being replaced correctly (…
ClearlyClaire Nov 14, 2025
c5eca8f
Fix error with remote tags including percent signs (#36886)
ChaosExAnima Nov 14, 2025
4ab1d5d
Allow drag&drop of link to quote in compose form (#36859)
tribela Nov 14, 2025
7be8fe6
chore(deps): update dependency aws-sdk-core to v3.237.0 (#36823)
renovate[bot] Nov 14, 2025
277a4c8
chore(deps): update dependency prometheus_exporter to v2.3.1 (#36842)
renovate[bot] Nov 14, 2025
bc81e29
chore(deps): update dependency stoplight to v5.6.0 (#36803)
renovate[bot] Nov 14, 2025
7dbb2ac
Remove rails delegate (#36835)
ChaosExAnima Nov 14, 2025
f8ffb85
Use `date` attribute for date of birth (#36039)
mjankowski Nov 14, 2025
bc47cba
chore(deps): update dependency js-yaml to v4.1.1 [security] (#36891)
renovate[bot] Nov 14, 2025
6db4297
Fix cross-origin handling of CSS modules (#36890)
ClearlyClaire Nov 14, 2025
ebc99cd
New Crowdin Translations (automated) (#36893)
github-actions[bot] Nov 14, 2025
c87b052
Fix inability to paste links (#36896)
ClearlyClaire Nov 14, 2025
489bee8
New Crowdin Translations (automated) (#36898)
github-actions[bot] Nov 17, 2025
284b46f
Implement CSS theme tokens behind feature flag (#36861)
diondiondion Nov 17, 2025
72c582e
Fix superfluous border & spacing in domains list on the Moderation > …
diondiondion Nov 17, 2025
04c566e
Fix ArgumentError of tootctl upgrade storage-schema (#36914)
shugo Nov 17, 2025
04bdfa1
chore(deps): update dependency @vitejs/plugin-react to v5.1.1 (#36841)
renovate[bot] Nov 17, 2025
59fdff5
Add spec for translation attempt with ineligible target language (#36…
mjankowski Nov 17, 2025
5370320
Add `IpBlock#to_cidr` method to build string (#35773)
mjankowski Nov 17, 2025
caffb0f
Emoji: Fix path resolution for emoji worker (#36897)
ChaosExAnima Nov 17, 2025
b14f113
New Crowdin Translations (automated) (#36922)
github-actions[bot] Nov 18, 2025
b4daad8
Fix double encoding in links (#36925)
ClearlyClaire Nov 18, 2025
c820c66
Change private quote education modal to not show up on self-quotes (#…
ClearlyClaire Nov 18, 2025
be0e23b
Fix scroll-to-status in threaded view being unreliable (#36927)
ClearlyClaire Nov 18, 2025
9872197
Fix `Rails/RedirectBackOrTo` cop (#36930)
mjankowski Nov 19, 2025
81ffd1d
New Crowdin Translations (automated) (#36933)
github-actions[bot] Nov 19, 2025
4f6a7e4
Update rubocop-rspec to version 3.8.0 (#36853)
mjankowski Nov 19, 2025
52b92bd
chore(deps): update dependency bootsnap to '~> 1.19.0' (#36906)
renovate[bot] Nov 19, 2025
c22b203
Fix quoting overwriting current content warning (#36934)
ClearlyClaire Nov 19, 2025
4d0aab4
Fix `g` + `h` keyboard shortcut not working when a post is focused (#…
diondiondion Nov 19, 2025
366856f
Fix theme-related Vite errors even when `theme_tokens` feature flag i…
diondiondion Nov 19, 2025
bc7c83b
Update `glob` dependency (#36940)
ClearlyClaire Nov 19, 2025
01b11c3
chore(deps): update dependency i18n-tasks to v1.1.0 (#36907)
renovate[bot] Nov 19, 2025
ea616ac
Improve media modal swipe animation (#36916)
ChaosExAnima Nov 19, 2025
bb9a633
Fix statuses without text disappearing on reload (#36962)
ClearlyClaire Nov 20, 2025
dc67dbb
Remove stray Font Awesome styles (#36960)
dariusk Nov 20, 2025
f01e80b
Fix error when visiting non-public hashtag timelines (#36961)
diondiondion Nov 20, 2025
a28f1d0
Fix missing fallback link in CW-only quote posts (#36963)
ClearlyClaire Nov 20, 2025
8e8669b
New Crowdin Translations (automated) (#36957)
github-actions[bot] Nov 20, 2025
21ce99f
Bump version to v4.5.2 (#36968)
ClearlyClaire Nov 20, 2025
7de6af0
Merge remote-tracking branch 'parent/main' into upstream-20251114
kmycode Nov 21, 2025
215fdb1
Add options parameter to importFetchedStatuses function
kmycode Nov 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .github/renovate.json5
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
'customManagers:dockerfileVersions',
':labels(dependencies)',
':prConcurrentLimitNone', // Remove limit for open PRs at any time.
':prHourlyLimit2', // Rate limit PR creation to a maximum of two per hour.
':enableVulnerabilityAlertsWithLabel(security)',
],
rebaseWhen: 'conflicted',
Expand Down
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ docker-compose.override.yml

# Ignore vendored CSS reset
app/javascript/styles/mastodon/reset.scss
app/javascript/styles_new/mastodon/reset.scss

# Ignore Javascript pending https://github.com/mastodon/mastodon/pull/23631
*.js
Expand Down
3 changes: 2 additions & 1 deletion .storybook/static/mockServiceWorker.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
* - Please do NOT modify this file.
*/

const PACKAGE_VERSION = '2.11.3'
const PACKAGE_VERSION = '2.12.1'
const INTEGRITY_CHECKSUM = '4db4a41e972cec1b64cc569c66952d82'
const IS_MOCKED_RESPONSE = Symbol('isMockedResponse')
const activeClientIds = new Set()
Expand Down Expand Up @@ -205,6 +205,7 @@ async function resolveMainClient(event) {
* @param {FetchEvent} event
* @param {Client | undefined} client
* @param {string} requestId
* @param {number} requestInterceptedAt
* @returns {Promise<Response>}
*/
async function getResponse(event, client, requestId, requestInterceptedAt) {
Expand Down
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,42 @@

All notable changes to this project will be documented in this file.

## [4.5.2] - 2025-11-20

### Changed

- Change private quote education modal to not show up on self-quotes (#36926 by @ClearlyClaire)

### Fixed

- Fix missing fallback link in CW-only quote posts (#36963 by @ClearlyClaire)
- Fix statuses without text being hidden while loading (#36962 by @ClearlyClaire)
- Fix `g` + `h` keyboard shortcut not working when a post is focused (#36935 by @diondiondion)
- Fix quoting overwriting current content warning (#36934 by @ClearlyClaire)
- Fix scroll-to-status in threaded view being unreliable (#36927 by @ClearlyClaire)
- Fix path resolution for emoji worker (#36897 by @ChaosExAnima)
- Fix `tootctl upgrade storage-schema` failing with `ArgumentError` (#36914 by @shugo)
- Fix cross-origin handling of CSS modules (#36890 by @ClearlyClaire)
- Fix error with remote tags including percent signs (#36886 and #36925 by @ChaosExAnima and @ClearlyClaire)
- Fix bogus quote approval policy not always being replaced correctly (#36885 by @ClearlyClaire)
- Fix hashtag completion not being inserted correctly (#36884 by @ClearlyClaire)
- Fix Cmd/Ctrl + Enter in the composer triggering confirmation dialog action (#36870 by @diondiondion)

## [4.5.1] - 2025-11-13

### Fixed

- Fix Cmd/Ctrl + Enter not submitting Alt text modal on some browsers (#36866 by @diondiondion)
- Fix posts coming from public/hashtag streaming being marked as unquotable (#36860 and #36869 by @ClearlyClaire)
- Fix old previously-undiscovered posts being treated as new when receiving an `Update` (#36848 by @ClearlyClaire)
- Fix blank screen in browsers that don't support `Intl.DisplayNames` (#36847 by @diondiondion)
- Fix filters not being applied to quotes in detailed view (#36843 by @ClearlyClaire)
- Fix scroll shift caused by fetch-all-replies alerts (#36807 by @diondiondion)
- Fix dropdown menu not focusing first item when opened via keyboard (#36804 by @diondiondion)
- Fix assets build issue on arch64 (#36781 by @ClearlyClaire)
- Fix `/api/v1/statuses/:id/context` sometimes returing `Mastodon-Async-Refresh` without `result_count` (#36779 by @ClearlyClaire)
- Fix prepared quote not being discarded with contents when replying (#36778 by @ClearlyClaire)

## [4.5.0] - 2025-11-06

### Added
Expand Down
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ gem 'ruby-vips', '~> 2.2', require: false

gem 'active_model_serializers', '~> 0.10'
gem 'addressable', '~> 2.8'
gem 'bootsnap', '~> 1.18.0', require: false
gem 'bootsnap', '~> 1.19.0', require: false
gem 'browser'
gem 'charlock_holmes', '~> 0.7.7'
gem 'chewy', '~> 7.3'
Expand Down
39 changes: 20 additions & 19 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,8 @@ GEM
ast (2.4.3)
attr_required (1.0.2)
aws-eventstream (1.4.0)
aws-partitions (1.1180.0)
aws-sdk-core (3.236.0)
aws-partitions (1.1181.0)
aws-sdk-core (3.237.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
Expand All @@ -108,7 +108,7 @@ GEM
aws-sdk-kms (1.116.0)
aws-sdk-core (~> 3, >= 3.234.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.203.0)
aws-sdk-s3 (1.203.1)
aws-sdk-core (~> 3, >= 3.234.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
Expand All @@ -129,7 +129,7 @@ GEM
binding_of_caller (1.0.1)
debug_inspector (>= 1.2.0)
blurhash (0.1.8)
bootsnap (1.18.6)
bootsnap (1.19.0)
msgpack (~> 1.2)
brakeman (7.1.1)
racc
Expand Down Expand Up @@ -182,7 +182,7 @@ GEM
activerecord (>= 5.a)
database_cleaner-core (~> 2.0)
database_cleaner-core (2.0.1)
date (3.4.1)
date (3.5.0)
debug (1.11.0)
irb (~> 1.10)
reline (>= 0.3.8)
Expand Down Expand Up @@ -324,13 +324,14 @@ GEM
rainbow (>= 2.0.0)
i18n (1.14.7)
concurrent-ruby (~> 1.0)
i18n-tasks (1.0.15)
i18n-tasks (1.1.0)
activesupport (>= 4.0.2)
ast (>= 2.1.0)
erubi
highline (>= 2.0.0)
highline (>= 3.0.0)
i18n
parser (>= 3.2.2.1)
prism
rails-i18n
rainbow (>= 2.2.2, < 4.0)
ruby-progressbar (~> 1.8, >= 1.8.1)
Expand All @@ -349,7 +350,7 @@ GEM
azure-blob (~> 0.5.2)
hashie (~> 5.0)
jmespath (1.6.2)
json (2.15.2)
json (2.16.0)
json-canonicalization (1.0.0)
json-jwt (1.17.0)
activesupport (>= 4.2)
Expand Down Expand Up @@ -446,7 +447,7 @@ GEM
mime-types-data (3.2025.0924)
mini_mime (1.1.5)
mini_portile2 (2.8.9)
minitest (5.26.0)
minitest (5.26.2)
msgpack (1.8.0)
multi_json (1.17.0)
mutex_m (0.3.0)
Expand Down Expand Up @@ -608,7 +609,7 @@ GEM
premailer (~> 1.7, >= 1.7.9)
prettyprint (0.2.0)
prism (1.6.0)
prometheus_exporter (2.3.0)
prometheus_exporter (2.3.1)
webrick
propshaft (1.3.1)
actionpack (>= 7.0.0)
Expand Down Expand Up @@ -684,7 +685,7 @@ GEM
tsort (>= 0.2)
zeitwerk (~> 2.6)
rainbow (3.1.1)
rake (13.3.0)
rake (13.3.1)
rdf (3.3.4)
bcp47_spec (~> 0.2)
bigdecimal (~> 3.1, >= 3.1.5)
Expand All @@ -705,7 +706,7 @@ GEM
redis-client (0.26.1)
connection_pool
regexp_parser (2.11.3)
reline (0.6.2)
reline (0.6.3)
io-console (~> 0.5)
request_store (1.7.0)
rack (>= 1.4)
Expand Down Expand Up @@ -759,7 +760,7 @@ GEM
rubocop-ast (>= 1.47.1, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.47.1)
rubocop-ast (1.48.0)
parser (>= 3.3.7.2)
prism (~> 1.4)
rubocop-capybara (2.22.1)
Expand All @@ -778,10 +779,10 @@ GEM
rack (>= 1.1)
rubocop (>= 1.75.0, < 2.0)
rubocop-ast (>= 1.44.0, < 2.0)
rubocop-rspec (3.7.0)
rubocop-rspec (3.8.0)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-rspec_rails (2.31.0)
rubocop (~> 1.81)
rubocop-rspec_rails (2.32.0)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-rspec (~> 3.5)
Expand Down Expand Up @@ -838,9 +839,9 @@ GEM
stackprof (0.2.27)
starry (0.2.0)
base64
stoplight (5.5.0)
stoplight (5.6.0)
zeitwerk
stringio (3.1.7)
stringio (3.1.8)
strong_migrations (2.5.1)
activerecord (>= 7.1)
swd (2.0.3)
Expand Down Expand Up @@ -941,7 +942,7 @@ DEPENDENCIES
better_errors (~> 2.9)
binding_of_caller (~> 1.0)
blurhash (~> 0.1)
bootsnap (~> 1.18.0)
bootsnap (~> 1.19.0)
brakeman (~> 7.0)
browser
bundler-audit (~> 0.9)
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/admin/site_uploads_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ def destroy

@site_upload.destroy!

redirect_back fallback_location: admin_settings_path, notice: I18n.t('admin.site_uploads.destroyed_msg')
redirect_back_or_to admin_settings_path, notice: I18n.t('admin.site_uploads.destroyed_msg')
end

private
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/api/v1/statuses_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def context
if async_refresh.running?
add_async_refresh_header(async_refresh)
elsif !current_account.nil? && @status.should_fetch_replies?
add_async_refresh_header(AsyncRefresh.create(refresh_key))
add_async_refresh_header(AsyncRefresh.create(refresh_key, count_results: true))

WorkerBatch.new.within do |batch|
batch.connect(refresh_key, threshold: 1.0)
Expand Down
2 changes: 1 addition & 1 deletion app/helpers/languages_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ module LanguagesHelper
cy: ['Welsh', 'Cymraeg'].freeze,
da: ['Danish', 'dansk'].freeze,
de: ['German', 'Deutsch'].freeze,
dv: ['Divehi', 'Dhivehi'].freeze,
dv: ['Divehi', 'ދިވެހި'].freeze,
dz: ['Dzongkha', 'རྫོང་ཁ'].freeze,
ee: ['Ewe', 'Eʋegbe'].freeze,
el: ['Greek', 'Ελληνικά'].freeze,
Expand Down
10 changes: 7 additions & 3 deletions app/helpers/theme_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ module ThemeHelper
def theme_style_tags(theme)
if theme == 'system'
''.html_safe.tap do |tags|
tags << vite_stylesheet_tag('themes/mastodon-light', type: :virtual, media: 'not all and (prefers-color-scheme: dark)', crossorigin: 'anonymous')
tags << vite_stylesheet_tag('themes/default', type: :virtual, media: '(prefers-color-scheme: dark)', crossorigin: 'anonymous')
tags << vite_stylesheet_tag(theme_path_for('mastodon-light'), type: :virtual, media: 'not all and (prefers-color-scheme: dark)', crossorigin: 'anonymous')
tags << vite_stylesheet_tag(theme_path_for('default'), type: :virtual, media: '(prefers-color-scheme: dark)', crossorigin: 'anonymous')
end
else
vite_stylesheet_tag "themes/#{theme}", type: :virtual, media: 'all', crossorigin: 'anonymous'
vite_stylesheet_tag theme_path_for(theme), type: :virtual, media: 'all', crossorigin: 'anonymous'
end
end

Expand Down Expand Up @@ -71,4 +71,8 @@ def cached_custom_css_digest
def theme_color_for(theme)
theme == 'mastodon-light' ? Themes::THEME_COLORS[:light] : Themes::THEME_COLORS[:dark]
end

def theme_path_for(theme)
Mastodon::Feature.theme_tokens_enabled? ? "themes/#{theme}_theme_tokens" : "themes/#{theme}"
end
end
10 changes: 5 additions & 5 deletions app/inputs/date_of_birth_input.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,25 @@

class DateOfBirthInput < SimpleForm::Inputs::Base
OPTIONS = [
{ autocomplete: 'bday-day', maxlength: 2, pattern: '[0-9]+', placeholder: 'DD' }.freeze,
{ autocomplete: 'bday-month', maxlength: 2, pattern: '[0-9]+', placeholder: 'MM' }.freeze,
{ autocomplete: 'bday-year', maxlength: 4, pattern: '[0-9]+', placeholder: 'YYYY' }.freeze,
{ autocomplete: 'bday-month', maxlength: 2, pattern: '[0-9]+', placeholder: 'MM' }.freeze,
{ autocomplete: 'bday-day', maxlength: 2, pattern: '[0-9]+', placeholder: 'DD' }.freeze,
].freeze

def input(wrapper_options = nil)
merged_input_options = merge_wrapper_options(input_html_options, wrapper_options)
merged_input_options[:inputmode] = 'numeric'

values = (object.public_send(attribute_name) || '').split('.')
values = (object.public_send(attribute_name) || '').to_s.split('-')

safe_join(Array.new(3) do |index|
safe_join(2.downto(0).map do |index|
options = merged_input_options.merge(OPTIONS[index]).merge id: generate_id(index), 'aria-label': I18n.t("simple_form.labels.user.date_of_birth_#{index + 1}i"), value: values[index]
@builder.text_field("#{attribute_name}(#{index + 1}i)", options)
end)
end

def label_target
"#{attribute_name}_1i"
"#{attribute_name}_3i"
end

private
Expand Down
Loading
Loading