@truedat/dq 4.33.8 → 4.34.2
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 +21 -1
- package/package.json +5 -5
- package/src/api.js +5 -1
- 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/ImplementationsUploadButton.js +63 -0
- 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 +18 -48
- 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/RulesActions.js +17 -10
- package/src/components/RulesUploadButton.js +58 -0
- 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 +5 -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 +145 -71
- package/src/messages/es.js +270 -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/dqMessage.js +100 -1
- package/src/reducers/index.js +4 -0
- package/src/reducers/rule.js +0 -3
- package/src/reducers/ruleImplementation.js +3 -0
- package/src/reducers/ruleImplementationRedirect.js +6 -1
- package/src/reducers/ruleImplementations.js +3 -0
- package/src/reducers/ruleRedirect.js +5 -0
- package/src/reducers/uploadImplementationsFile.js +28 -0
- package/src/reducers/uploadRulesFile.js +25 -0
- package/src/routines.js +2 -0
- package/src/sagas/index.js +6 -0
- package/src/sagas/uploadImplementations.js +28 -0
- package/src/sagas/uploadRules.js +28 -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,21 +433,30 @@ 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",
|
|
406
457
|
"ruleImplementations.actions.popup.deprecated": "Deprecated Implementations",
|
|
458
|
+
"ruleImplementations.actions.upload.tooltip": "Upload Implementations",
|
|
459
|
+
"ruleImplementations.actions.upload.confirmation.header": "Confirm bulk upload",
|
|
407
460
|
"ruleImplementations.header": "Quality Implementations",
|
|
408
461
|
"ruleImplementations.props.business_concept": "Concept",
|
|
409
462
|
"ruleImplementations.props.status": "Status",
|
|
@@ -411,12 +464,18 @@ export default {
|
|
|
411
464
|
"ruleImplementations.props.executable.true": "Executable",
|
|
412
465
|
"ruleImplementations.props.executable.false": "Internal",
|
|
413
466
|
"ruleImplementations.props.execution": "Execution",
|
|
414
|
-
"ruleImplementations.props.goal": "Goal",
|
|
415
467
|
"ruleImplementations.props.implementation_key": "Identifier",
|
|
416
468
|
"ruleImplementations.props.implementation_type": "Type",
|
|
417
469
|
"ruleImplementations.props.inserted_at": "Inserted at",
|
|
418
470
|
"ruleImplementations.props.last_execution_at": "Last Execution",
|
|
419
|
-
"ruleImplementations.props.minimum": "
|
|
471
|
+
"ruleImplementations.props.minimum": "Threshold",
|
|
472
|
+
"ruleImplementations.props.minimum.placeholder": "Threshold value",
|
|
473
|
+
"ruleImplementations.props.goal": "Goal",
|
|
474
|
+
"ruleImplementations.props.goal.placeholder": "Goal value",
|
|
475
|
+
"ruleImplementations.props.result_type": "Result Type",
|
|
476
|
+
"ruleImplementations.props.result_type.deviation": "Deviation",
|
|
477
|
+
"ruleImplementations.props.result_type.errors_number": "Error count",
|
|
478
|
+
"ruleImplementations.props.result_type.percentage": "Percentage",
|
|
420
479
|
"ruleImplementations.props.quality_result.no_execution": "Not executed",
|
|
421
480
|
"ruleImplementations.props.quality_result.over_goal": "Over goal",
|
|
422
481
|
"ruleImplementations.props.quality_result.under_goal": "Under goal",
|
|
@@ -433,6 +492,11 @@ export default {
|
|
|
433
492
|
"ruleImplementations.summary.headers.implementation": "Rule Implementation",
|
|
434
493
|
"ruleImplementations.summary.headers.population": "Population",
|
|
435
494
|
"ruleImplementations.summary.headers.validations": "Validation",
|
|
495
|
+
"ruleImplementations.upload.success.errors": "Error in {implementation_key} attribute: {key} message: {message} ",
|
|
496
|
+
"ruleImplementations.upload.success.header": "Upload success! Loaded {count_ids} omitted {count_errors}:",
|
|
497
|
+
"ruleImplementations.upload.failed.header": "Error uploading file. No rules have been created.",
|
|
498
|
+
"ruleImplementations.upload.failed.misssing_required_columns":
|
|
499
|
+
"Faltan columnas obligatorias en el fichero. Esperado [{expected}]. Recibido [{found}].",
|
|
436
500
|
"ruleResult.props.header.information": "Information",
|
|
437
501
|
"ruleResult.props.header.details": "Details",
|
|
438
502
|
"ruleResult.props.date": "Date",
|
|
@@ -441,16 +505,25 @@ export default {
|
|
|
441
505
|
"ruleResult.props.quality": "Quality",
|
|
442
506
|
"ruleResult.props.records": "Records",
|
|
443
507
|
"ruleSubscription.actions.remove": "Eliminar",
|
|
444
|
-
"rule_result.actions.delete.confirmation.content":
|
|
508
|
+
"rule_result.actions.delete.confirmation.content":
|
|
509
|
+
"This rule result will be deleted. Are you sure?",
|
|
445
510
|
"rule_result.actions.delete.confirmation.header": "Delete result",
|
|
446
511
|
"rules.actions.activate_execution": "Activate executions",
|
|
447
512
|
"rules.actions.create": "New Quality Rule",
|
|
448
|
-
"rules.actions.delete.confirmation.content":
|
|
513
|
+
"rules.actions.delete.confirmation.content":
|
|
514
|
+
"The rule {name} will be deleted. ¿Are you sure?",
|
|
449
515
|
"rules.actions.delete.confirmation.header": "Delete Quality Rule",
|
|
516
|
+
"rules.actions.upload.confirmation.header": "Confirm bulk upload",
|
|
517
|
+
"rules.actions.upload.tooltip": "Upload Rules",
|
|
450
518
|
"rules.crumbs.top": "Rules",
|
|
451
519
|
"rules.retrieved.results": "{count} rules found",
|
|
452
520
|
"rules.search.placeholder": "Search rules...",
|
|
453
521
|
"rules.searching": "Searching...",
|
|
522
|
+
"rules.upload.success.errors": "Error in {rule_name} attribute: {key} message: {message} ",
|
|
523
|
+
"rules.upload.success.header": "Upload success! Loaded {count_ids} omitted {count_errors}:",
|
|
524
|
+
"rules.upload.failed.header": "Error uploading file. No rules have been created.",
|
|
525
|
+
"rules.upload.failed.misssing_required_columns":
|
|
526
|
+
"Missing required columns. Expected [{expected}]. Found [{found}].",
|
|
454
527
|
"structureFields.dropdown.label": "Select Field",
|
|
455
528
|
"structureFields.dropdown.placeholder": "Fields",
|
|
456
529
|
"summary.link.and": "and",
|
|
@@ -460,6 +533,7 @@ export default {
|
|
|
460
533
|
"tabs.dq.ruleImplementation.results": "Results",
|
|
461
534
|
"tabs.dq.ruleImplementations": "Implementations",
|
|
462
535
|
"tabs.qualityRules": "Quality Rules",
|
|
463
|
-
"updateRuleImplementation.error.implementation_key.duplicated":
|
|
464
|
-
|
|
536
|
+
"updateRuleImplementation.error.implementation_key.duplicated":
|
|
537
|
+
"Duplicated implementation key",
|
|
538
|
+
"updateRule.error.domain_id.required": "Domain is required",
|
|
465
539
|
};
|