@truedat/dq 4.33.7 → 4.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -1
- package/package.json +5 -5
- package/src/components/ConditionSummary.js +23 -21
- package/src/components/ExecutionDetails.js +11 -14
- package/src/components/ExecutionForm.js +116 -0
- package/src/components/ExecutionGroup.js +24 -15
- package/src/components/ExecutionPopup.js +58 -0
- package/src/components/ImplementationResultBar.js +80 -0
- package/src/components/ImplementationSummary.js +33 -72
- package/src/components/ImplementationsRoutes.js +15 -5
- package/src/components/InformationSummary.js +68 -0
- package/src/components/NewRuleImplementation.js +12 -0
- package/src/components/RuleForm.js +0 -178
- package/src/components/RuleImplementation.js +10 -6
- package/src/components/RuleImplementationProperties.js +31 -64
- package/src/components/RuleImplementationResults.js +87 -53
- package/src/components/RuleImplementationsActions.js +10 -46
- package/src/components/RuleProperties.js +1 -10
- package/src/components/RuleResultDecorator.js +43 -26
- package/src/components/RuleResultRow.js +4 -1
- package/src/components/RuleRoutes.js +0 -13
- package/src/components/RuleSummary.js +15 -2
- package/src/components/__tests__/ExecutionForm.spec.js +25 -0
- package/src/components/__tests__/ExecutionGroup.spec.js +11 -7
- package/src/components/__tests__/ExecutionPopup.spec.js +20 -0
- package/src/components/__tests__/ImplementationResultBar.spec.js +98 -0
- package/src/components/__tests__/ImplementationSummary.spec.js +9 -26
- package/src/components/__tests__/InformationSummary.spec.js +35 -0
- package/src/components/__tests__/NewRuleImplementation.spec.js +1 -1
- package/src/components/__tests__/RuleForm.spec.js +0 -191
- package/src/components/__tests__/RuleImplementation.spec.js +1 -0
- package/src/components/__tests__/RuleImplementationProperties.spec.js +23 -33
- package/src/components/__tests__/RuleImplementationsActions.spec.js +10 -32
- package/src/components/__tests__/RuleProperties.spec.js +7 -9
- package/src/components/__tests__/RuleResultDecorator.spec.js +17 -11
- package/src/components/__tests__/RuleResultRow.spec.js +25 -46
- package/src/components/__tests__/RuleRow.spec.js +0 -4
- package/src/components/__tests__/RuleSummary.spec.js +6 -6
- package/src/components/__tests__/Rules.spec.js +15 -39
- package/src/components/__tests__/__snapshots__/ConditionSummary.spec.js.snap +55 -51
- package/src/components/__tests__/__snapshots__/ExecutionForm.spec.js.snap +33 -0
- package/src/components/__tests__/__snapshots__/ExecutionGroup.spec.js.snap +5 -4
- package/src/components/__tests__/__snapshots__/ExecutionPopup.spec.js.snap +11 -0
- package/src/components/__tests__/__snapshots__/ImplementationResultBar.spec.js.snap +141 -0
- package/src/components/__tests__/__snapshots__/ImplementationSummary.spec.js.snap +194 -457
- package/src/components/__tests__/__snapshots__/InformationSummary.spec.js.snap +185 -0
- package/src/components/__tests__/__snapshots__/NewRuleImplementation.spec.js.snap +6 -0
- package/src/components/__tests__/__snapshots__/RuleForm.spec.js.snap +0 -148
- package/src/components/__tests__/__snapshots__/RuleImplementation.spec.js.snap +20 -0
- package/src/components/__tests__/__snapshots__/RuleImplementationProperties.spec.js.snap +43 -49
- package/src/components/__tests__/__snapshots__/RuleImplementationResults.spec.js.snap +63 -61
- package/src/components/__tests__/__snapshots__/RuleImplementationsActions.spec.js.snap +4 -49
- package/src/components/__tests__/__snapshots__/RuleProperties.spec.js.snap +0 -1
- package/src/components/__tests__/__snapshots__/RuleRow.spec.js.snap +0 -28
- package/src/components/__tests__/__snapshots__/Rules.spec.js.snap +0 -101
- package/src/components/ruleImplementationForm/InformationForm.js +5 -5
- package/src/components/ruleImplementationForm/LimitsForm.js +142 -0
- package/src/components/ruleImplementationForm/RuleImplementationForm.js +14 -4
- package/src/components/ruleImplementationForm/RuleImplementationRawForm.js +16 -6
- package/src/components/ruleImplementationForm/__tests__/LimitsForm.spec.js +186 -0
- package/src/components/ruleImplementationForm/__tests__/RuleImplementationRawForm.spec.js +42 -35
- package/src/components/ruleImplementationForm/__tests__/__snapshots__/LimitsForm.spec.js.snap +1104 -0
- package/src/components/ruleImplementationForm/__tests__/__snapshots__/RuleImplementationForm.spec.js.snap +4 -1
- package/src/components/ruleImplementationForm/__tests__/__snapshots__/RuleImplementationRawForm.spec.js.snap +12 -1
- package/src/components/ruleImplementationForm/limitsValidation.js +72 -0
- package/src/messages/en.js +131 -71
- package/src/messages/es.js +254 -180
- package/src/reducers/__tests__/rule.spec.js +2 -4
- package/src/reducers/__tests__/ruleImplementation.spec.js +2 -0
- package/src/reducers/__tests__/ruleImplementations.spec.js +12 -8
- package/src/reducers/rule.js +0 -3
- package/src/reducers/ruleImplementation.js +3 -0
- package/src/reducers/ruleImplementations.js +3 -0
- package/src/selectors/getRuleImplementationColumns.js +38 -3
- package/src/selectors/ruleColumnsSelector.js +0 -31
- package/src/styles/ruleSummary.less +17 -10
|
@@ -72,13 +72,16 @@ exports[`<RuleImplementationForm /> matches the latest snapshot 1`] = `
|
|
|
72
72
|
/>
|
|
73
73
|
</Form>
|
|
74
74
|
</GridRow>
|
|
75
|
+
<Divider
|
|
76
|
+
hidden={true}
|
|
77
|
+
/>
|
|
75
78
|
<GridRow
|
|
76
79
|
stretched={true}
|
|
77
80
|
>
|
|
78
81
|
<Button
|
|
79
82
|
as="button"
|
|
80
83
|
content="actions.next"
|
|
81
|
-
disabled={
|
|
84
|
+
disabled={true}
|
|
82
85
|
floated="right"
|
|
83
86
|
loading={false}
|
|
84
87
|
onClick={[Function]}
|
|
@@ -30,11 +30,22 @@ exports[`<RuleImplementationRawForm /> matches the latest snapshot 1`] = `
|
|
|
30
30
|
name="implementation_key"
|
|
31
31
|
onChange={[Function]}
|
|
32
32
|
placeholder="ruleImplementation.props.name.placeholder"
|
|
33
|
-
readOnly={false}
|
|
34
33
|
required={true}
|
|
35
34
|
value=""
|
|
36
35
|
/>
|
|
37
36
|
</FormField>
|
|
37
|
+
<LimitsForm
|
|
38
|
+
onChange={[MockFunction]}
|
|
39
|
+
ruleImplementation={
|
|
40
|
+
Object {
|
|
41
|
+
"executable": true,
|
|
42
|
+
"goal": "10",
|
|
43
|
+
"id": 1,
|
|
44
|
+
"minimum": "1",
|
|
45
|
+
"result_type": "percentage",
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/>
|
|
38
49
|
<FormDropdown
|
|
39
50
|
as={[Function]}
|
|
40
51
|
control={[Function]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import _ from "lodash/fp";
|
|
2
|
+
|
|
3
|
+
export default function generateValidationMessages(ruleImplementation) {
|
|
4
|
+
const minimum = Number(ruleImplementation.minimum);
|
|
5
|
+
const goal = Number(ruleImplementation.goal);
|
|
6
|
+
|
|
7
|
+
const invalidNumberMessage = "rule.form.validation.invalid_number_format";
|
|
8
|
+
const invalidMinimumFormat = ruleImplementation.minimum && isNaN(minimum);
|
|
9
|
+
const invalidGoalFormat = ruleImplementation.goal && isNaN(goal);
|
|
10
|
+
if (invalidMinimumFormat || invalidGoalFormat)
|
|
11
|
+
return {
|
|
12
|
+
minimum: invalidMinimumFormat ? [invalidNumberMessage] : undefined,
|
|
13
|
+
goal: invalidGoalFormat ? [invalidNumberMessage] : undefined,
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const requiredMessage = "rule.form.validation.empty_required";
|
|
17
|
+
const isEmpty = (value) =>
|
|
18
|
+
_.isNil(value) || (_.isEmpty(value) && !_.isNumber(value));
|
|
19
|
+
|
|
20
|
+
const emptyMinimum = isEmpty(ruleImplementation.minimum);
|
|
21
|
+
const emptyGoal = isEmpty(ruleImplementation.goal);
|
|
22
|
+
if (emptyMinimum || emptyGoal)
|
|
23
|
+
return {
|
|
24
|
+
minimum: emptyMinimum ? [requiredMessage] : undefined,
|
|
25
|
+
goal: emptyGoal ? [requiredMessage] : undefined,
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const percentageResultValidationMessages = () =>
|
|
29
|
+
goal > 100
|
|
30
|
+
? {
|
|
31
|
+
goal: ["ruleImplementation.form.validation.max_goal"],
|
|
32
|
+
}
|
|
33
|
+
: minimum > goal
|
|
34
|
+
? {
|
|
35
|
+
minimum: "ruleImplementation.form.validation.minimum_greater",
|
|
36
|
+
goal: "ruleImplementation.form.validation.goal_less",
|
|
37
|
+
}
|
|
38
|
+
: {};
|
|
39
|
+
|
|
40
|
+
const errorsNumberResultValidationMessages = () =>
|
|
41
|
+
minimum < goal
|
|
42
|
+
? {
|
|
43
|
+
minimum: "ruleImplementation.form.validation.minimum.greater_eq.goal",
|
|
44
|
+
goal: "ruleImplementation.form.validation.goal.less_eq.minimum",
|
|
45
|
+
}
|
|
46
|
+
: {};
|
|
47
|
+
|
|
48
|
+
const deviationResultValidationMessages = () =>
|
|
49
|
+
minimum > 100
|
|
50
|
+
? {
|
|
51
|
+
minimum: "ruleImplementation.form.validation.max_minimum",
|
|
52
|
+
}
|
|
53
|
+
: minimum < goal
|
|
54
|
+
? {
|
|
55
|
+
minimum: "ruleImplementation.form.validation.minimum.greater_eq.goal",
|
|
56
|
+
goal: "ruleImplementation.form.validation.goal.less_eq.minimum",
|
|
57
|
+
}
|
|
58
|
+
: {};
|
|
59
|
+
switch (ruleImplementation.result_type) {
|
|
60
|
+
case "percentage":
|
|
61
|
+
return percentageResultValidationMessages();
|
|
62
|
+
case "errors_number":
|
|
63
|
+
return errorsNumberResultValidationMessages();
|
|
64
|
+
case "deviation":
|
|
65
|
+
return deviationResultValidationMessages();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export const areLimitsValid = (ruleImplementation) => {
|
|
70
|
+
const validations = generateValidationMessages(ruleImplementation);
|
|
71
|
+
return _.isNil(validations.minimum) && _.isNil(validations.goal);
|
|
72
|
+
};
|
package/src/messages/en.js
CHANGED
|
@@ -5,23 +5,31 @@ export default {
|
|
|
5
5
|
"actions.prev": "Previous",
|
|
6
6
|
"actions.save": "Save",
|
|
7
7
|
"actions.submit": "Submit",
|
|
8
|
-
"alert.createExecutionGroup.success.content":
|
|
8
|
+
"alert.createExecutionGroup.success.content":
|
|
9
|
+
"{count} implementations queued for execution",
|
|
9
10
|
"alert.createExecutionGroup.success.header": "Executions scheduled",
|
|
10
11
|
"alert.createRule.failed.header": "Error creating rule",
|
|
11
|
-
"alert.createRuleImplementation.failed.header":
|
|
12
|
+
"alert.createRuleImplementation.failed.header":
|
|
13
|
+
"Error creating implementation",
|
|
12
14
|
"alert.deleteRule.failed.header": "Error deleting rule",
|
|
13
15
|
"alert.updateRule.failed.header": "Error updating rule",
|
|
14
|
-
"alert.updateRuleImplementation.failed.header":
|
|
16
|
+
"alert.updateRuleImplementation.failed.header":
|
|
17
|
+
"Error updating implementation",
|
|
15
18
|
"concepts.rules.empty": "This concept has no quality rules",
|
|
16
19
|
"createRule.error.domain_id.required": "Domain is required",
|
|
17
|
-
"createRuleImplementation.error.implementation_key.duplicated":
|
|
18
|
-
|
|
20
|
+
"createRuleImplementation.error.implementation_key.duplicated":
|
|
21
|
+
"Duplicated implementation key",
|
|
22
|
+
"createRule.error.rule_name_bc_id.unique_constraint": "Duplicated rule name. Edit name or associated business concept.",
|
|
23
|
+
"dataset.form.button.add_join.popup":
|
|
24
|
+
"Select both fields to add a new clause",
|
|
19
25
|
"dataset.form.button.add_structure": "Add Structure",
|
|
20
|
-
"datasetForm.implementation_key.tooltip":
|
|
26
|
+
"datasetForm.implementation_key.tooltip":
|
|
27
|
+
"Leave empty for autogeneration of implementation key after saving implementation",
|
|
21
28
|
"executionGroup": "Executions",
|
|
22
29
|
"executions.completed.content": "{count} executions completed.",
|
|
23
30
|
"executions.completed.header": "Executions completed",
|
|
24
|
-
"executions.pending.content":
|
|
31
|
+
"executions.pending.content":
|
|
32
|
+
"There are {pending} executions pending, please check again later.",
|
|
25
33
|
"executions.pending.header": "Executions scheduled",
|
|
26
34
|
"field_type.icon.date": "calendar alternate outline",
|
|
27
35
|
"field_type.icon.number": "hashtag",
|
|
@@ -48,6 +56,7 @@ export default {
|
|
|
48
56
|
"implementations.actions.download.tooltip": "Download to csv",
|
|
49
57
|
"implementations.actions.execution.confirmation.content": "{implementations_count} implementations will be executed. Are you sure?",
|
|
50
58
|
"implementations.actions.execution.confirmation.header": "Implementations execution",
|
|
59
|
+
"implementations.actions.execution.confirmation.legend": "Template fields",
|
|
51
60
|
"implementations.execute.filtered": "{count} implementations to execute",
|
|
52
61
|
"implementations.search.placeholder": "Search implementations...",
|
|
53
62
|
"navigation.quality": "Quality",
|
|
@@ -67,7 +76,7 @@ export default {
|
|
|
67
76
|
"quality.business_concept": "Business Concept",
|
|
68
77
|
"quality.current": "Current",
|
|
69
78
|
"quality.description": "Description",
|
|
70
|
-
"quality.error": "
|
|
79
|
+
"quality.error": "Latest execution failed",
|
|
71
80
|
"quality.domain": "Domain",
|
|
72
81
|
"quality.goal": "Goal",
|
|
73
82
|
"quality.goal.list": "Goal",
|
|
@@ -100,6 +109,7 @@ export default {
|
|
|
100
109
|
"quality.subheader": "Manage data quality rules",
|
|
101
110
|
"quality.template": "Template",
|
|
102
111
|
"quality.threshold": "Threshold",
|
|
112
|
+
"quality.thresholds": "Limits",
|
|
103
113
|
"quality.type": "Type",
|
|
104
114
|
"quality.type_params": "Params",
|
|
105
115
|
"quality_result.no_execution": "Not executed",
|
|
@@ -107,46 +117,73 @@ export default {
|
|
|
107
117
|
"quality_result.under_goal": "Under goal",
|
|
108
118
|
"quality_result.under_minimum": "Under threshold",
|
|
109
119
|
"quality_result.under_minumum": "Under threshold",
|
|
110
|
-
"quality_result.failed"
|
|
120
|
+
"quality_result.failed": "Failed",
|
|
111
121
|
"rule": "Quality Rule",
|
|
112
122
|
"rule.date.placeholder": "YYYY-MM-DD",
|
|
113
123
|
"rule.error.goal.required": "Goal required",
|
|
114
124
|
"rule.error.minimum.required": "Minimun threshold required",
|
|
115
|
-
"rule.error.rule_implementations.rule.delete.existing.implementations":
|
|
116
|
-
|
|
125
|
+
"rule.error.rule_implementations.rule.delete.existing.implementations":
|
|
126
|
+
"All rule implementations should be removed",
|
|
127
|
+
"rule.error.rule_name_bc_id.unique_constraint":
|
|
128
|
+
"Duplicated rule name. Edit name or associated business concept.",
|
|
117
129
|
"rule.form.accordion.select": "Select",
|
|
118
130
|
"rule.form.concept.label": "Concept",
|
|
119
|
-
"
|
|
120
|
-
|
|
121
|
-
"
|
|
122
|
-
|
|
123
|
-
"
|
|
124
|
-
|
|
125
|
-
"
|
|
126
|
-
|
|
131
|
+
"ruleImplementation.form.tooltip.deviation.goal":
|
|
132
|
+
"Maximum errored records percentage for this rule to be considered OK (lower is better)",
|
|
133
|
+
"ruleImplementation.form.tooltip.deviation.minimum":
|
|
134
|
+
"Errored records percentage right/upper bound. Rules over this value will be considered erroneous. Higher than goal.",
|
|
135
|
+
"ruleImplementation.form.tooltip.errors_number.goal":
|
|
136
|
+
"Maximum errored records number for this rule to be considered OK (lower is better).",
|
|
137
|
+
"ruleImplementation.form.tooltip.errors_number.minimum":
|
|
138
|
+
"Errored records number right/upper bound. Rules over this value will be considered erroneous. Higher than goal.",
|
|
139
|
+
"ruleImplementation.form.tooltip.percentage.goal":
|
|
140
|
+
"Minimum correct records percentage required for this rule to be considered OK (higher is better)",
|
|
141
|
+
"ruleImplementation.form.tooltip.percentage.minimum":
|
|
142
|
+
"Correct records percentage left/lower bound. Rules under this value will be considered erroneous. Lower than goal.",
|
|
143
|
+
"ruleImplementation.form.tooltip.result_type":
|
|
144
|
+
"Defines the format of rule execution results: percentage (of good records), deviation (percentage of bad records), absolute number of errored records.",
|
|
145
|
+
"rule.form.tooltip.type":
|
|
146
|
+
"Defines the rule to be executed on the data. For certain types of rules it will be necessary to entry aditional parameters",
|
|
127
147
|
"rule.form.validation.domain_required": "Domain required to select concept",
|
|
128
148
|
"rule.form.validation.empty_required": "Required field is empty",
|
|
129
|
-
"rule.form.validation.
|
|
130
|
-
"
|
|
131
|
-
|
|
132
|
-
"
|
|
133
|
-
|
|
134
|
-
"
|
|
149
|
+
"rule.form.validation.invalid_number_format": "Invalid number format",
|
|
150
|
+
"ruleImplementation.form.validation.goal.less_eq.minimum":
|
|
151
|
+
"Goal must be less than (or equal to) the threshold (lower goal is better)",
|
|
152
|
+
"ruleImplementation.form.validation.goal_less":
|
|
153
|
+
"Goal must be greater than (or equal to) the threshold (higher goal is better).",
|
|
154
|
+
"ruleImplementation.form.validation.max_goal":
|
|
155
|
+
"Goal percentage cannot be greater than 100",
|
|
156
|
+
"ruleImplementation.form.validation.max_minimum":
|
|
157
|
+
"Threshold percentage cannot be greater than 100",
|
|
158
|
+
"ruleImplementation.form.validation.minimum.greater_eq.goal":
|
|
159
|
+
"Threshold must greater than (or equal to) the goal",
|
|
160
|
+
"ruleImplementation.form.validation.minimum_greater":
|
|
161
|
+
"Threshold must be lower than (or equal to) the goal",
|
|
135
162
|
"rule.form_validation.date.invalid": "Invalid date",
|
|
136
|
-
"rule.form_validation.float.decimal_separator.invalid":
|
|
163
|
+
"rule.form_validation.float.decimal_separator.invalid":
|
|
164
|
+
"Invalid decimal separator",
|
|
137
165
|
"rule.form_validation.float.invalid": "Invalid number",
|
|
138
166
|
"rule.form_validation.float.invalid_decimals": "Decimals number exceeded",
|
|
139
167
|
"rule.form_validation.integer.invalid": "Invalid number",
|
|
140
168
|
"rule.form_validation.whole_number.invalid": "Invalid whole number",
|
|
141
|
-
"rule.implementation.error.implementation_key.not_available":
|
|
142
|
-
|
|
143
|
-
"rule.implementation.error.population.value.
|
|
144
|
-
|
|
145
|
-
"rule.implementation.error.
|
|
146
|
-
|
|
147
|
-
"rule.implementation.error.
|
|
148
|
-
|
|
149
|
-
"rule.
|
|
169
|
+
"rule.implementation.error.implementation_key.not_available":
|
|
170
|
+
"Key already asigned. Please, type a new key",
|
|
171
|
+
"rule.implementation.error.population.value.invalid_length_between_value_type":
|
|
172
|
+
"Invalid range of values",
|
|
173
|
+
"rule.implementation.error.population.value.left_value_must_be_le_than_right":
|
|
174
|
+
"Left value should be lower or equals to right value",
|
|
175
|
+
"rule.implementation.error.raw_content.dataset.invalid_content":
|
|
176
|
+
"Found not valid content in dataset",
|
|
177
|
+
"rule.implementation.error.raw_content.population.invalid_content":
|
|
178
|
+
"Found not valid content in population",
|
|
179
|
+
"rule.implementation.error.raw_content.validations.invalid_content":
|
|
180
|
+
"Found not valid content in validations",
|
|
181
|
+
"rule.implementation.error.validations.value.invalid_length_between_value_type":
|
|
182
|
+
"Invalid range of values",
|
|
183
|
+
"rule.implementation.error.validations.value.left_value_must_be_le_than_right":
|
|
184
|
+
"Left value should be lower or equals to right value",
|
|
185
|
+
"rule.implementations.deprecated":
|
|
186
|
+
"Deprecated implementations. You will be able to query its data",
|
|
150
187
|
"rule.max_date": "Maximum date",
|
|
151
188
|
"rule.max_value": "Maximum value",
|
|
152
189
|
"rule.min_date": "Minimum date",
|
|
@@ -160,23 +197,17 @@ export default {
|
|
|
160
197
|
"rule.props.business_concept_id.placeholder": "Related term",
|
|
161
198
|
"rule.props.description": "Description",
|
|
162
199
|
"rule.props.description.placeholder": "Rule description",
|
|
163
|
-
"rule.props.goal": "Goal",
|
|
164
|
-
"rule.props.goal.placeholder": "Goal value",
|
|
165
200
|
"rule.props.implementations": "Implementations",
|
|
166
|
-
"rule.props.minimum": "Threshold",
|
|
167
|
-
"rule.props.minimum.placeholder": "Threshold value",
|
|
168
201
|
"rule.props.name": "Name",
|
|
169
202
|
"rule.props.name.placeholder": "Rule name",
|
|
170
|
-
"rule.props.result_type": "Result Type",
|
|
171
|
-
"rule.props.result_type.deviation": "Deviation",
|
|
172
|
-
"rule.props.result_type.errors_number": "Error count",
|
|
173
|
-
"rule.props.result_type.percentage": "Percentage",
|
|
174
203
|
"rule.props.type": "Rule Type",
|
|
175
204
|
"rule.props.type.placeholder": "Values range",
|
|
176
205
|
"rule.props.type_params": "Parameters",
|
|
177
206
|
"rule.props.type_params.placeholder": "Parameters",
|
|
178
|
-
"rule.ruleImplementation.results.empty":
|
|
179
|
-
|
|
207
|
+
"rule.ruleImplementation.results.empty":
|
|
208
|
+
"No results found for current implementation",
|
|
209
|
+
"rule.ruleImplementation.results.details.empty":
|
|
210
|
+
"No details found for current result",
|
|
180
211
|
"rule.ruleImplementations.empty": "No rule implementations for current rule",
|
|
181
212
|
"rule.type.custom_validation": "Is a custom validation",
|
|
182
213
|
"rule.type.date_format": "Has date format",
|
|
@@ -196,7 +227,8 @@ export default {
|
|
|
196
227
|
"rule.type.numeric_format": "Has a numeric format",
|
|
197
228
|
"rule.type.unique_values": "Has unique values",
|
|
198
229
|
"rule.type_params.error.max_date.cast.date": "Max date invalid",
|
|
199
|
-
"rule.type_params.error.max_date.must.be.greater.than.or.equal.to.min_date":
|
|
230
|
+
"rule.type_params.error.max_date.must.be.greater.than.or.equal.to.min_date":
|
|
231
|
+
"Date not valid",
|
|
200
232
|
"rule.type_params.error.max_date.required": "Max date required",
|
|
201
233
|
"rule.type_params.error.min_date.cast.date": "Min date invalid",
|
|
202
234
|
"rule.type_params.error.min_date.required": "Min date required",
|
|
@@ -204,16 +236,22 @@ export default {
|
|
|
204
236
|
"ruleImplementation.action.deprecate": "deprecated",
|
|
205
237
|
"ruleImplementation.actions.clone": "Clone implementation",
|
|
206
238
|
"ruleImplementation.actions.delete": "Delete implementation",
|
|
207
|
-
"ruleImplementation.actions.delete.confirmation.content":
|
|
208
|
-
|
|
239
|
+
"ruleImplementation.actions.delete.confirmation.content":
|
|
240
|
+
"This rule implementation will be deleted. Are you sure?",
|
|
241
|
+
"ruleImplementation.actions.delete.confirmation.header":
|
|
242
|
+
"Delete implementation",
|
|
209
243
|
"ruleImplementation.actions.deprecate": "Deprecate implementation",
|
|
210
|
-
"ruleImplementation.actions.deprecate.confirmation.content":
|
|
211
|
-
|
|
244
|
+
"ruleImplementation.actions.deprecate.confirmation.content":
|
|
245
|
+
"Once {action} you can only view it on {mode}. Are you sure?",
|
|
246
|
+
"ruleImplementation.actions.deprecate.confirmation.header":
|
|
247
|
+
"Deprecate implementation",
|
|
212
248
|
"ruleImplementation.actions.edit": "Edit implementation",
|
|
213
249
|
"ruleImplementation.actions.move": "Move to another rule",
|
|
214
250
|
"ruleImplementation.actions.restore": "Restore Implementation",
|
|
215
|
-
"ruleImplementation.actions.restore.confirmation.content":
|
|
216
|
-
|
|
251
|
+
"ruleImplementation.actions.restore.confirmation.content":
|
|
252
|
+
"A deleted implementation will be restored. ¿Are you sure?",
|
|
253
|
+
"ruleImplementation.actions.restore.confirmation.header":
|
|
254
|
+
"Restore implementation",
|
|
217
255
|
"ruleImplementation.column": "Column",
|
|
218
256
|
"ruleImplementation.column.placeholder": "Select a column",
|
|
219
257
|
"ruleImplementation.deprecate.folder": '"Deprecated items"',
|
|
@@ -233,11 +271,13 @@ export default {
|
|
|
233
271
|
"ruleImplementation.filtersField.last_day_of_month": "Last day of month",
|
|
234
272
|
"ruleImplementation.filtersField.last_day_of_week": "Last day of week",
|
|
235
273
|
"ruleImplementation.filtersField.last_month_last_day": "Last month last day",
|
|
236
|
-
"ruleImplementation.filtersField.last_validation_period":
|
|
274
|
+
"ruleImplementation.filtersField.last_validation_period":
|
|
275
|
+
"Last validation period",
|
|
237
276
|
"ruleImplementation.filtersField.last_year_last_day": "Last year last day",
|
|
238
277
|
"ruleImplementation.filtersField.number": "Number",
|
|
239
278
|
"ruleImplementation.filtersField.phone": "Phone",
|
|
240
|
-
"ruleImplementation.filtersField.previous_month_last_day":
|
|
279
|
+
"ruleImplementation.filtersField.previous_month_last_day":
|
|
280
|
+
"Previous month last day",
|
|
241
281
|
"ruleImplementation.filtersField.season": "Season",
|
|
242
282
|
"ruleImplementation.filtersField.timestamp": "Date/Time",
|
|
243
283
|
"ruleImplementation.freetext.false": "No",
|
|
@@ -294,7 +334,8 @@ export default {
|
|
|
294
334
|
"ruleImplementation.operator.gte.string": "greater or equal than (text)",
|
|
295
335
|
"ruleImplementation.operator.gte.timestamp": "greater or equal than",
|
|
296
336
|
"ruleImplementation.operator.gte_var": "greater or equal than",
|
|
297
|
-
"ruleImplementation.operator.gte_var.string":
|
|
337
|
+
"ruleImplementation.operator.gte_var.string":
|
|
338
|
+
"greater or equal than variable",
|
|
298
339
|
"ruleImplementation.operator.in_list": "is in list",
|
|
299
340
|
"ruleImplementation.operator.in_list.string_list": "is in list",
|
|
300
341
|
"ruleImplementation.operator.is_false": "is FALSE",
|
|
@@ -306,7 +347,8 @@ export default {
|
|
|
306
347
|
"ruleImplementation.operator.length_gt": "length greater than",
|
|
307
348
|
"ruleImplementation.operator.length_gt.number": "length greater than",
|
|
308
349
|
"ruleImplementation.operator.length_gte": "length greater or equal than",
|
|
309
|
-
"ruleImplementation.operator.length_gte.number":
|
|
350
|
+
"ruleImplementation.operator.length_gte.number":
|
|
351
|
+
"length greater or equal than",
|
|
310
352
|
"ruleImplementation.operator.length_lt": "length less than",
|
|
311
353
|
"ruleImplementation.operator.length_lt.number": "length less than",
|
|
312
354
|
"ruleImplementation.operator.length_lte": "length less or equal than",
|
|
@@ -343,11 +385,13 @@ export default {
|
|
|
343
385
|
"ruleImplementation.operator.not_references": "is not referenced",
|
|
344
386
|
"ruleImplementation.operator.not_references.field": "is not referenced",
|
|
345
387
|
"ruleImplementation.operator.number_of_decimals": "has a number of decimals",
|
|
346
|
-
"ruleImplementation.operator.number_of_decimals.number":
|
|
388
|
+
"ruleImplementation.operator.number_of_decimals.number":
|
|
389
|
+
"has a number of decimals",
|
|
347
390
|
"ruleImplementation.operator.references": "referenced in",
|
|
348
391
|
"ruleImplementation.operator.references.field": "referenced in field",
|
|
349
392
|
"ruleImplementation.operator.regex_format": "matches regular expression",
|
|
350
|
-
"ruleImplementation.operator.regex_format.string":
|
|
393
|
+
"ruleImplementation.operator.regex_format.string":
|
|
394
|
+
"matches regular expression",
|
|
351
395
|
"ruleImplementation.operator.starts_with": "starts with",
|
|
352
396
|
"ruleImplementation.operator.starts_with.string": "starts with",
|
|
353
397
|
"ruleImplementation.operator.unique": "has unique value",
|
|
@@ -389,17 +433,24 @@ export default {
|
|
|
389
433
|
"ruleImplementationRawForm.props.database": "Database",
|
|
390
434
|
"ruleImplementationRawForm.props.database.placeholder": "Select database",
|
|
391
435
|
"ruleImplementationRawForm.props.dataset": "Dataset",
|
|
392
|
-
"ruleImplementationRawForm.props.dataset.help":
|
|
393
|
-
|
|
436
|
+
"ruleImplementationRawForm.props.dataset.help":
|
|
437
|
+
"Subset of structures that will be validated. In SQL systems implementations this clause will be the FROM part of the query",
|
|
438
|
+
"ruleImplementationRawForm.props.dataset.placeholder":
|
|
439
|
+
"TPERSONS p \nLEFT JOIN TCLIENTES c ON c.person_id = p.id",
|
|
394
440
|
"ruleImplementationRawForm.props.population": "Population",
|
|
395
|
-
"ruleImplementationRawForm.props.population.help":
|
|
396
|
-
|
|
441
|
+
"ruleImplementationRawForm.props.population.help":
|
|
442
|
+
"Optional filter to be applied over dataset. This filter will define the number of records of validations",
|
|
443
|
+
"ruleImplementationRawForm.props.population.placeholder":
|
|
444
|
+
"p.tipo = 'F'\nAND c.pais = 'ES' ",
|
|
397
445
|
"ruleImplementationRawForm.props.source": "Data source",
|
|
398
446
|
"ruleImplementationRawForm.props.source.placeholder": "Select data source",
|
|
399
447
|
"ruleImplementationRawForm.props.validations": "Validations",
|
|
400
|
-
"ruleImplementationRawForm.props.validations.help":
|
|
401
|
-
|
|
402
|
-
"ruleImplementationRawForm.
|
|
448
|
+
"ruleImplementationRawForm.props.validations.help":
|
|
449
|
+
"Validations to be performed against selected data. It will output the count of valid registers over the data defined in dataset and population",
|
|
450
|
+
"ruleImplementationRawForm.props.validations.placeholder":
|
|
451
|
+
"p.nombre is not null\nAND p.nombre <> ",
|
|
452
|
+
"ruleImplementationRawForm.rawText.error":
|
|
453
|
+
"Entered content not allowed: {invalid_content}",
|
|
403
454
|
"ruleImplementations.actions.active.tooltip": "Active implementations",
|
|
404
455
|
"ruleImplementations.actions.create": "New Implementation",
|
|
405
456
|
"ruleImplementations.actions.edit": "Edit Implementation",
|
|
@@ -411,12 +462,18 @@ export default {
|
|
|
411
462
|
"ruleImplementations.props.executable.true": "Executable",
|
|
412
463
|
"ruleImplementations.props.executable.false": "Internal",
|
|
413
464
|
"ruleImplementations.props.execution": "Execution",
|
|
414
|
-
"ruleImplementations.props.goal": "Goal",
|
|
415
465
|
"ruleImplementations.props.implementation_key": "Identifier",
|
|
416
466
|
"ruleImplementations.props.implementation_type": "Type",
|
|
417
467
|
"ruleImplementations.props.inserted_at": "Inserted at",
|
|
418
468
|
"ruleImplementations.props.last_execution_at": "Last Execution",
|
|
419
|
-
"ruleImplementations.props.minimum": "
|
|
469
|
+
"ruleImplementations.props.minimum": "Threshold",
|
|
470
|
+
"ruleImplementations.props.minimum.placeholder": "Threshold value",
|
|
471
|
+
"ruleImplementations.props.goal": "Goal",
|
|
472
|
+
"ruleImplementations.props.goal.placeholder": "Goal value",
|
|
473
|
+
"ruleImplementations.props.result_type": "Result Type",
|
|
474
|
+
"ruleImplementations.props.result_type.deviation": "Deviation",
|
|
475
|
+
"ruleImplementations.props.result_type.errors_number": "Error count",
|
|
476
|
+
"ruleImplementations.props.result_type.percentage": "Percentage",
|
|
420
477
|
"ruleImplementations.props.quality_result.no_execution": "Not executed",
|
|
421
478
|
"ruleImplementations.props.quality_result.over_goal": "Over goal",
|
|
422
479
|
"ruleImplementations.props.quality_result.under_goal": "Under goal",
|
|
@@ -441,11 +498,13 @@ export default {
|
|
|
441
498
|
"ruleResult.props.quality": "Quality",
|
|
442
499
|
"ruleResult.props.records": "Records",
|
|
443
500
|
"ruleSubscription.actions.remove": "Eliminar",
|
|
444
|
-
"rule_result.actions.delete.confirmation.content":
|
|
501
|
+
"rule_result.actions.delete.confirmation.content":
|
|
502
|
+
"This rule result will be deleted. Are you sure?",
|
|
445
503
|
"rule_result.actions.delete.confirmation.header": "Delete result",
|
|
446
504
|
"rules.actions.activate_execution": "Activate executions",
|
|
447
505
|
"rules.actions.create": "New Quality Rule",
|
|
448
|
-
"rules.actions.delete.confirmation.content":
|
|
506
|
+
"rules.actions.delete.confirmation.content":
|
|
507
|
+
"The rule {name} will be deleted. ¿Are you sure?",
|
|
449
508
|
"rules.actions.delete.confirmation.header": "Delete Quality Rule",
|
|
450
509
|
"rules.crumbs.top": "Rules",
|
|
451
510
|
"rules.retrieved.results": "{count} rules found",
|
|
@@ -460,6 +519,7 @@ export default {
|
|
|
460
519
|
"tabs.dq.ruleImplementation.results": "Results",
|
|
461
520
|
"tabs.dq.ruleImplementations": "Implementations",
|
|
462
521
|
"tabs.qualityRules": "Quality Rules",
|
|
463
|
-
"updateRuleImplementation.error.implementation_key.duplicated":
|
|
464
|
-
|
|
522
|
+
"updateRuleImplementation.error.implementation_key.duplicated":
|
|
523
|
+
"Duplicated implementation key",
|
|
524
|
+
"updateRule.error.domain_id.required": "Domain is required",
|
|
465
525
|
};
|