Each patch has a type - "full load order patch" or "patch specific plugins". Full load order patch allows the user to exclude certain plugins from being loaded, where patch specific plugins allow suser to specify specific plugins to load.
Initially, a basic "Smash.All" setting is used to generate the patch. The user can then tweak things to adjust the behavior on a per-plugin basis. Editing the base setting is also possible, for advanced users.
- Tree view only shows record groups in the smashed patch
- Context menu options:
- Exclude from patch (top level group or record)
- Manage exclusions
- Regenerate patch
- Show/Hide ITPOs
- Open in smash record view (records)
- Open in new smash record view (records)
- Does not allow editing fields for plugins other than the smashed patch
- Hides unassigned fields by default
- Context menu options:
- Show/Hide unassigned fields
- Show/Hide non-conflicting rows
- Copy value to patch (non-patch value cells)
- Copy element to patch (non-patch element cells)
- Remove element from patch (patch element cells)
- Set custom value (patch value cells)
- Use algorithm to set value (patch value cells)
- Add custom entry (patch array cells)
After making a modfication to a record, smash will infer possible rule changes that would make sense for that modification and presents them to the user in a modal.
When value is not top level, user can toggle whether or not parent is treated as a single entity, adjusting options.
- Copied changed value (not last change)
- Prioritize changes to {{target}} from {{this plugin}} [default]
- Ignore changes to {{target}} in plugins: {{list of plugins with non-ITM values on target on this record, excluding this plugin}}
- Set this value on this record
- Copied last changed value
- {{if priority present on conflict loser}}
- Prioritize changes to {{target}} from {{this plugin}} (use higher priority than {{conflict loser plugin}}) [default]
- Unprioritize changes to {{target}} from {{conflict loser plugin}}
- {{if changes ignored on field in plugin}}
- Unignore changes to {{target}} from {{conflict winner plugin}} [default]
- Set this value on this record
- {{if priority present on conflict loser}}
- Copied ITM value
- Ignore change to this in plugins: {{list of plugins with non-ITM values on target on this record}} [default]
- Set this value on this record