Skip to content

Non-localizable button_group field is editable and saved in localizations #15149

Description

@SoaPatrick

Bug description

A button_group field configured with localizable: false should be locked in a localization — like every other non-localizable fieldtype, which renders disabled and falls back to the origin value.

The button_group fieldtype does not respect this. In a localization the buttons stay clickable, and the changed value is actually saved into the localization's file. The localization then holds a value that diverges from its origin, even though the field is not localizable.

How to reproduce

  1. Set up a multi-site install with two sites (here: de as origin, en as localization).
  2. Add a non-localizable button_group field to the collection blueprint:
-
handle: button_groupfield:
options:
- key: option_1value: null
- key: option_2value: nulldefault: option_1type: button_groupdisplay: 'Button Group'localizable: false
  1. Create an entry in the de site and select option_1.
  2. Open the en localization of that entry in the CP.
  3. The buttons are still active — select option_2 and save.

Result — the value is written to the localization:

content/collections/pages/de/home.md (origin)

id: 049ed0c0-9796-43f7-b158-4f6129328c12
title: Home
button_group: option_1

content/collections/pages/en/home.md (localization)

id: 91daabc4-5f3f-470c-b66b-47d5131f2d11
origin: 049ed0c0-9796-43f7-b158-4f6129328c12
button_group: option_2

Expected behaviour

In a localization, a non-localizable button_group should be rendered read-only/disabled, and its
value must not be written to the localization's file — it should always resolve from the origin.

Logs

Environment

EnvironmentLaravel Version: 13.24.0PHP Version: 8.4.23Composer Version: 2.10.1Environment: localDebug Mode: ENABLEDMaintenance Mode: OFFTimezone: UTCLocale: enCacheConfig: NOT CACHEDEvents: NOT CACHEDRoutes: NOT CACHEDViews: CACHEDDriversBroadcasting: logCache: fileDatabase: sqliteLogs: stack / singleMail: logQueue: syncSession: fileStoragepublic/storage: NOT LINKEDStatamicAddons: 0License Key: Not setSites: 2 (German, French)Stache Watcher: Enabled (auto)Static Caching: DisabledVersion: 6.27.1 PRO

Installation

Fresh statamic/statamic site via CLI

Additional details

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions