diff --git a/client/src/components/RuleCollectionBuilder.vue b/client/src/components/RuleCollectionBuilder.vue index cb82c51131a..ab4ae62bf69 100644 --- a/client/src/components/RuleCollectionBuilder.vue +++ b/client/src/components/RuleCollectionBuilder.vue @@ -1148,6 +1148,13 @@ export default { this.addColumnRegexReplacement = null; } }, + addColumnRegexGroupCount: function (oldVal, newVal) { + if (oldVal != newVal) { + if (newVal < 1) { + this.addColumnRegexGroupCount = 1; + } + } + }, }, created() { if (this.elementsType !== "collection_contents") { diff --git a/client/src/mvc/rules/rule-definitions.js b/client/src/mvc/rules/rule-definitions.js index 7087f31550b..957c21cd816 100644 --- a/client/src/mvc/rules/rule-definitions.js +++ b/client/src/mvc/rules/rule-definitions.js @@ -266,11 +266,15 @@ const RULES = { save: (component, rule) => { rule.target_column = component.addColumnRegexTarget; rule.expression = component.addColumnRegexExpression; - if (component.addColumnRegexReplacement) { + if (component.addColumnRegexType == "replacement" && component.addColumnRegexReplacement) { rule.replacement = component.addColumnRegexReplacement; - } - if (component.addColumnRegexGroupCount) { + rule.group_count = null; + } else if (component.addColumnRegexType == "groups" && component.addColumnRegexGroupCount) { rule.group_count = parseInt(component.addColumnRegexGroupCount); + rule.replacement = null; + } else if (component.addColumnRegexType == "global") { + rule.replacement = null; + rule.group_count = null; } }, apply: (rule, data, sources, columns) => {