https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=43215 --- Comment #2 from David Nind <david@davidnind.com> --- Created attachment 202962 --> https://bugs.koha-community.org/bugzilla3/attachment.cgi?id=202962&action=edit Bug 43215: preferences.js: Report one save confirmation per preference, not per checkbox option Checkbox-group system preferences (multiple_sortable, ill_backends, and the OPAC/staff interface language selectors) render one checkbox per option. All the checkboxes for a given preference share its 'name' attribute, but each has its own unique 'id'. Saving such a preference produced one "Saved preference ..." confirmation line per checkbox instead of a single line for the preference as a whole, because KOHA.Preferences.Success() built the message from each modified element's 'id' rather than its 'name'. A related issue: the checkbox 'change' handler marked every '.preference-checkbox' on the whole page as modified, regardless of which preference it belonged to. This meant editing one checkbox-group preference silently re-saved (and, before this patch, also reported as saved) any other checkbox-group preference sharing the same tab - for example, editing OPACLanguages would also touch the unrelated StaffInterfaceLanguages preference on the I18N/L10N tab. This patch: * Scopes the 'modified' marking to checkboxes sharing the same preference name, so unrelated checkbox-group preferences on the same tab are left alone. * Groups the save confirmation message by preference name (deduplicated), so each preference produces exactly one "Saved preference" line regardless of how many options it has. Test plan: 1. Go to Administration > System preferences and search for OPACAuthorIdentifiersAndInformation. 2. Select two or more identifier types and click Save. 3. Confirm the confirmation banner shows a single "Saved preference OPACAuthorIdentifiersAndInformation" line, not one per selected identifier. 4. Drag one of the selected items to reorder it, click Save again, confirm you still get only one confirmation line, then reload the page and confirm the new order was kept. 5. Go to Administration > System preferences > I18N/L10N tab. 6. Toggle one of the checkboxes under "Enable the following languages on the OPAC" (OPACLanguages) and click Save. 7. Confirm the confirmation only reports OPACLanguages as saved - the staff interface language list (StaffInterfaceLanguages) should not appear in the message. 8. Reload the page and confirm the staff interface language selection is unchanged. 9. As a sanity check, modify an ordinary non-checkbox preference (e.g. a free text or yes/no preference) and confirm it still reports exactly one "Saved preference" line, same as before this patch. Signed-off-by: David Nind <david@davidnind.com> -- You are receiving this mail because: You are watching all bug changes.