@truedat/dq 8.7.0 → 8.7.1
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/package.json +3 -3
- package/src/components/ConceptRules.js +2 -3
- package/src/components/ConditionCell.js +9 -9
- package/src/components/ExecutionForm.js +1 -1
- package/src/components/ExecutionGroup.js +2 -2
- package/src/components/ExecutionGroupContent.js +4 -4
- package/src/components/ImplementationExecutionFilters.js +1 -1
- package/src/components/ImplementationFiltersLoader.js +2 -2
- package/src/components/ImplementationResultBar.js +1 -1
- package/src/components/ImplementationSearchResults.js +7 -7
- package/src/components/ImplementationStructureDelete.js +1 -1
- package/src/components/ImplementationStructuresNew.js +6 -3
- package/src/components/ImplementationSummary.js +2 -2
- package/src/components/Implementations.js +18 -11
- package/src/components/ImplementationsHeader.js +16 -21
- package/src/components/ImplementationsRoutes.js +7 -7
- package/src/components/MoveImplementation.js +1 -1
- package/src/components/NewBasicRuleImplementation.js +1 -1
- package/src/components/NewRuleImplementation.js +44 -44
- package/src/components/QualityEventError.js +11 -7
- package/src/components/RawContent.js +1 -1
- package/src/components/RemediationForm.js +1 -1
- package/src/components/RemediationPlan.js +2 -2
- package/src/components/Rule.js +1 -1
- package/src/components/RuleActions.js +1 -1
- package/src/components/RuleEventDecorator.js +1 -1
- package/src/components/RuleEventRow.js +1 -1
- package/src/components/RuleFilters.js +1 -1
- package/src/components/RuleFiltersLoader.js +1 -1
- package/src/components/RuleFormImplementations.js +1 -1
- package/src/components/RuleImplementationEventRow.js +1 -1
- package/src/components/RuleImplementationHistory.js +1 -1
- package/src/components/RuleImplementationProperties.js +2 -2
- package/src/components/RuleImplementationResults.js +2 -2
- package/src/components/RuleImplementationTabs.js +5 -5
- package/src/components/RuleImplementationsDownload.js +4 -4
- package/src/components/RuleImplementationsDownloadXlsx.js +6 -6
- package/src/components/RuleImplementationsLoader.js +1 -2
- package/src/components/RuleImplementationsTable.js +1 -1
- package/src/components/RuleResultDecorator.js +3 -3
- package/src/components/RuleResultDetails.js +1 -1
- package/src/components/RuleResultRemediationLoader.js +1 -1
- package/src/components/RuleResultSegments.js +3 -3
- package/src/components/RuleResultsTable.js +7 -7
- package/src/components/RuleRoutes.js +3 -3
- package/src/components/RuleSelectedFilters.js +3 -3
- package/src/components/RuleSelector.js +1 -1
- package/src/components/RuleSummary.js +3 -3
- package/src/components/Rules.js +4 -4
- package/src/components/RulesLoader.js +2 -2
- package/src/components/RulesRoutes.js +1 -1
- package/src/components/SimpleRuleImplementationsTable.js +1 -1
- package/src/components/Subscription.js +1 -1
- package/src/components/TaxonomySummary.js +1 -1
- package/src/components/__tests__/ConceptRules.spec.js +2 -2
- package/src/components/__tests__/ExecutionGroup.spec.js +3 -3
- package/src/components/__tests__/ExecutionGroupContent.spec.js +1 -1
- package/src/components/__tests__/ExecutionGroups.spec.js +1 -1
- package/src/components/__tests__/ExecutionGroupsTable.spec.js +1 -1
- package/src/components/__tests__/ImplementationExecutionFilters.spec.js +1 -1
- package/src/components/__tests__/ImplementationExecutions.spec.js +1 -1
- package/src/components/__tests__/ImplementationResultBar.spec.js +6 -6
- package/src/components/__tests__/ImplementationSearchResults.spec.js +3 -3
- package/src/components/__tests__/ImplementationStructureDelete.spec.js +1 -1
- package/src/components/__tests__/ImplementationStructureLink.spec.js +1 -1
- package/src/components/__tests__/ImplementationStructureLinksActions.spec.js +31 -27
- package/src/components/__tests__/ImplementationStructures.spec.js +6 -6
- package/src/components/__tests__/ImplementationStructuresNew.spec.js +2 -2
- package/src/components/__tests__/ImplementationSummary.spec.js +2 -2
- package/src/components/__tests__/Implementations.spec.js +1 -1
- package/src/components/__tests__/ImplementationsRoutes.spec.js +1 -1
- package/src/components/__tests__/ImplementationsUploadButton.spec.js +8 -8
- package/src/components/__tests__/MoveImplementation.spec.js +5 -5
- package/src/components/__tests__/NewBasicRuleImplementation.spec.js +4 -4
- package/src/components/__tests__/NewRuleImplementation.spec.js +14 -14
- package/src/components/__tests__/QualityRoutes.spec.js +1 -1
- package/src/components/__tests__/RemediationForm.spec.js +9 -3
- package/src/components/__tests__/RemediationPlan.spec.js +2 -2
- package/src/components/__tests__/RuleActions.spec.js +1 -1
- package/src/components/__tests__/RuleForm.spec.js +2 -2
- package/src/components/__tests__/RuleFormImplementations.spec.js +3 -3
- package/src/components/__tests__/RuleImplementation.spec.js +2 -2
- package/src/components/__tests__/RuleImplementationProperties.spec.js +3 -3
- package/src/components/__tests__/RuleImplementationResults.spec.js +2 -2
- package/src/components/__tests__/RuleImplementationsActions.spec.js +4 -4
- package/src/components/__tests__/RuleImplementationsLoader.spec.js +1 -1
- package/src/components/__tests__/RuleImplementationsOptions.spec.js +1 -1
- package/src/components/__tests__/RuleImplementationsTable.spec.js +3 -3
- package/src/components/__tests__/RuleResultDecorator.spec.js +15 -6
- package/src/components/__tests__/RuleResultDetails.spec.js +1 -1
- package/src/components/__tests__/RuleResultRemediations.spec.js +1 -1
- package/src/components/__tests__/RuleResultRoutes.spec.js +4 -4
- package/src/components/__tests__/RuleResultRow.spec.js +13 -13
- package/src/components/__tests__/RuleResultSegments.spec.js +1 -1
- package/src/components/__tests__/RuleRoutes.spec.js +1 -1
- package/src/components/__tests__/RuleRow.spec.js +4 -4
- package/src/components/__tests__/RuleSelectionForm.spec.js +5 -5
- package/src/components/__tests__/RuleSummary.spec.js +3 -3
- package/src/components/__tests__/Rules.spec.js +1 -1
- package/src/components/__tests__/RulesActions.spec.js +1 -1
- package/src/components/__tests__/RulesRoutes.spec.js +1 -1
- package/src/components/__tests__/Subscription.spec.js +11 -11
- package/src/components/ruleImplementationForm/DatasetForm.js +7 -7
- package/src/components/ruleImplementationForm/FieldModifier.js +5 -5
- package/src/components/ruleImplementationForm/FieldsGrid.js +2 -2
- package/src/components/ruleImplementationForm/FieldsGroup.js +1 -1
- package/src/components/ruleImplementationForm/FiltersField.js +4 -4
- package/src/components/ruleImplementationForm/FiltersFormGroup.js +3 -3
- package/src/components/ruleImplementationForm/FiltersGrid.js +3 -3
- package/src/components/ruleImplementationForm/FiltersGroup.js +2 -2
- package/src/components/ruleImplementationForm/InformationForm.js +1 -1
- package/src/components/ruleImplementationForm/RuleImplementationBasicForm.js +3 -3
- package/src/components/ruleImplementationForm/RuleImplementationForm.js +15 -11
- package/src/components/ruleImplementationForm/RuleImplementationRawForm.js +5 -5
- package/src/components/ruleImplementationForm/__tests__/FiltersFormGroup.spec.js +1 -1
- package/src/components/ruleImplementationForm/__tests__/FiltersGroup.spec.js +1 -1
- package/src/components/ruleImplementationForm/__tests__/InformationForm.spec.js +2 -2
- package/src/components/ruleImplementationForm/__tests__/LimitsForm.spec.js +12 -12
- package/src/components/ruleImplementationForm/__tests__/RuleImplementationBasicForm.spec.js +13 -13
- package/src/components/ruleImplementationForm/__tests__/RuleImplementationForm.spec.js +2 -2
- package/src/components/ruleImplementationForm/__tests__/RuleImplementationRawForm.spec.js +25 -25
- package/src/components/ruleImplementationForm/__tests__/ValueConditions.spec.js +1 -1
- package/src/components/ruleImplementationForm/operators.js +7 -7
- package/src/hooks/__tests__/useImplementations.spec.js +0 -1
- package/src/hooks/useImplementations.js +5 -5
- package/src/messages/en.js +0 -1
- package/src/messages/es.js +0 -1
- package/src/messages/index.js +1 -1
- package/src/reducers/__tests__/conceptRules.spec.js +3 -3
- package/src/reducers/__tests__/conceptRulesActions.spec.js +6 -6
- package/src/reducers/__tests__/implementationActions.spec.js +2 -2
- package/src/reducers/__tests__/implementationLinks.spec.js +4 -4
- package/src/reducers/__tests__/implementationsActions.spec.js +2 -2
- package/src/reducers/__tests__/previousRuleImplementationQuery.spec.js +6 -6
- package/src/reducers/__tests__/remediation.spec.js +7 -7
- package/src/reducers/__tests__/remediationActions.spec.js +3 -3
- package/src/reducers/__tests__/remediationLoading.spec.js +6 -6
- package/src/reducers/__tests__/resultsUploading.spec.js +2 -2
- package/src/reducers/__tests__/rule.spec.js +1 -1
- package/src/reducers/__tests__/ruleActiveFilters.spec.js +8 -8
- package/src/reducers/__tests__/ruleCount.spec.js +3 -3
- package/src/reducers/__tests__/ruleFiltersLoading.spec.js +2 -2
- package/src/reducers/__tests__/ruleImplementation.spec.js +2 -2
- package/src/reducers/__tests__/ruleImplementationActiveFilters.spec.js +11 -11
- package/src/reducers/__tests__/ruleImplementationCount.spec.js +5 -5
- package/src/reducers/__tests__/ruleImplementationCreating.spec.js +5 -5
- package/src/reducers/__tests__/ruleImplementationFilters.spec.js +4 -4
- package/src/reducers/__tests__/ruleImplementationLoading.spec.js +5 -3
- package/src/reducers/__tests__/ruleImplementationQuery.spec.js +7 -7
- package/src/reducers/__tests__/ruleImplementationRedirect.spec.js +13 -13
- package/src/reducers/__tests__/ruleImplementationSaving.spec.js +4 -2
- package/src/reducers/__tests__/ruleImplementationSelectedFilter.spec.js +7 -7
- package/src/reducers/__tests__/ruleImplementations.spec.js +4 -4
- package/src/reducers/__tests__/ruleImplementationsDownloading.spec.js +4 -4
- package/src/reducers/__tests__/ruleImplementationsLoading.spec.js +5 -5
- package/src/reducers/__tests__/ruleImplementationsPageSize.spec.js +4 -4
- package/src/reducers/__tests__/ruleQuery.spec.js +6 -6
- package/src/reducers/__tests__/ruleRedirect.spec.js +10 -10
- package/src/reducers/__tests__/rules.spec.js +2 -2
- package/src/reducers/__tests__/segmentResult.spec.js +3 -3
- package/src/reducers/__tests__/uploadImplementationsFile.spec.js +2 -2
- package/src/reducers/__tests__/uploadRulesFile.spec.js +2 -2
- package/src/reducers/conceptRulesActions.js +2 -2
- package/src/reducers/dqMessage.js +2 -2
- package/src/reducers/implementationsActions.js +1 -1
- package/src/reducers/previousRuleImplementationQuery.js +2 -2
- package/src/reducers/ruleFilters.js +1 -1
- package/src/reducers/ruleImplementationActiveFilters.js +1 -1
- package/src/reducers/ruleImplementationCount.js +1 -1
- package/src/reducers/ruleImplementationFilters.js +2 -2
- package/src/reducers/ruleImplementationRaw.js +1 -1
- package/src/reducers/ruleImplementationRedirect.js +3 -3
- package/src/reducers/ruleImplementationSelectedFilter.js +1 -1
- package/src/reducers/ruleImplementationsLoading.js +1 -1
- package/src/reducers/ruleImplementationsPageSize.js +1 -1
- package/src/reducers/ruleSelectedFilter.js +1 -1
- package/src/reducers/uploadingImplementationsFile.js +1 -1
- package/src/routines.js +23 -23
- package/src/sagas/__tests__/createExecutionGroup.spec.js +1 -1
- package/src/sagas/__tests__/createImplementationStructure.spec.js +1 -1
- package/src/sagas/__tests__/createRuleImplementation.spec.js +1 -1
- package/src/sagas/__tests__/deleteImplementationStructure.spec.js +1 -1
- package/src/sagas/__tests__/deleteRule.spec.js +1 -3
- package/src/sagas/__tests__/downloadRuleImplementations.spec.js +1 -1
- package/src/sagas/__tests__/fetchConceptRules.spec.js +1 -1
- package/src/sagas/__tests__/fetchRule.spec.js +1 -3
- package/src/sagas/__tests__/fetchRuleFilters.spec.js +5 -5
- package/src/sagas/__tests__/fetchRuleImplementation.spec.js +1 -1
- package/src/sagas/__tests__/fetchRuleImplementations.spec.js +1 -1
- package/src/sagas/__tests__/fetchRules.spec.js +4 -6
- package/src/sagas/__tests__/searchRuleImplementations.spec.js +3 -3
- package/src/sagas/__tests__/updateRule.spec.js +1 -3
- package/src/sagas/__tests__/updateRuleImplementation.spec.js +1 -1
- package/src/sagas/__tests__/uploadImplementations.spec.js +2 -2
- package/src/sagas/createExecutionGroup.js +1 -1
- package/src/sagas/createImplementationStructure.js +1 -1
- package/src/sagas/createRuleImplementation.js +2 -2
- package/src/sagas/deleteImplementationStructure.js +1 -1
- package/src/sagas/downloadRuleImplementations.js +1 -1
- package/src/sagas/downloadRuleImplementationsXlsx.js +1 -1
- package/src/sagas/fetchRuleImplementation.js +1 -1
- package/src/sagas/fetchRuleImplementationFilters.js +1 -1
- package/src/sagas/fetchRuleImplementations.js +2 -2
- package/src/sagas/searchRuleImplementations.js +2 -2
- package/src/sagas/updateRuleImplementation.js +1 -1
- package/src/sagas/uploadImplementations.js +1 -1
- package/src/sagas/uploadResults.js +1 -1
- package/src/sagas/uploadRules.js +1 -1
- package/src/selectors/__tests__/executionGroupsColumnsSelector.spec.js +2 -2
- package/src/selectors/__tests__/getImplementationStructureLinksColumns.spec.js +1 -1
- package/src/selectors/__tests__/getRuleImplementationSelectedFilterValues.spec.js +1 -1
- package/src/selectors/__tests__/ruleColumnsSelector.spec.js +1 -1
- package/src/selectors/datasetDefaultFiltersSelector.js +1 -1
- package/src/selectors/executionGroupsColumnsSelector.js +1 -1
- package/src/selectors/getExecutionGroupColumns.js +1 -1
- package/src/selectors/getExecutionQuery.js +1 -1
- package/src/selectors/getImplementationStructureLinksColumns.js +10 -10
- package/src/selectors/getImplementationStructures.js +10 -8
- package/src/selectors/getImplementationsExecution.js +1 -1
- package/src/selectors/getLinkedImplementationsToRulesColumns.js +1 -1
- package/src/selectors/getRuleAvailableFilters.js +2 -2
- package/src/selectors/getRuleFilterTypes.js +1 -1
- package/src/selectors/getRuleImplementationAvailableFilters.js +3 -3
- package/src/selectors/getRuleImplementationColumns.js +1 -1
- package/src/selectors/getRuleImplementationFilterTypes.js +1 -1
- package/src/selectors/getRuleImplementationForm.js +11 -11
- package/src/selectors/getRuleImplementationSelectedFilterActiveValues.js +2 -2
- package/src/selectors/getRuleImplementationSelectedFilterValues.js +2 -2
- package/src/selectors/getRuleImplementationSelectedFilters.js +1 -1
- package/src/selectors/getRuleSelectedFilterActiveValues.js +1 -1
- package/src/selectors/getRuleSelectedFilterValues.js +2 -2
- package/src/selectors/getRuleSelectedFilters.js +1 -1
- package/src/selectors/getSegmentResultsColumns.js +1 -1
- package/src/selectors/getStructureFields.js +3 -3
- package/src/selectors/ruleColumnsSelector.js +3 -3
- package/src/selectors/ruleResultsColumnsSelector.js +1 -1
- package/src/services/__tests__/encodeRawContent.spec.js +1 -1
- package/src/services/encodeRawContent.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@truedat/dq",
|
|
3
|
-
"version": "8.7.
|
|
3
|
+
"version": "8.7.1",
|
|
4
4
|
"description": "Truedat Web Data Quality Module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"module": "src/index.js",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"@testing-library/jest-dom": "^6.6.3",
|
|
57
57
|
"@testing-library/react": "^16.3.0",
|
|
58
58
|
"@testing-library/user-event": "^14.6.1",
|
|
59
|
-
"@truedat/test": "8.7.
|
|
59
|
+
"@truedat/test": "8.7.1",
|
|
60
60
|
"identity-obj-proxy": "^3.0.0",
|
|
61
61
|
"jest": "^29.7.0",
|
|
62
62
|
"redux-saga-test-plan": "^4.0.6"
|
|
@@ -89,5 +89,5 @@
|
|
|
89
89
|
"semantic-ui-react": "^3.0.0-beta.2",
|
|
90
90
|
"swr": "^2.3.3"
|
|
91
91
|
},
|
|
92
|
-
"gitHead": "
|
|
92
|
+
"gitHead": "f7605a6ea3f78839b42bb7d8339eec125ba49acb"
|
|
93
93
|
}
|
|
@@ -126,14 +126,13 @@ const mapStateToProps = ({
|
|
|
126
126
|
concept,
|
|
127
127
|
conceptRules: _.flow(
|
|
128
128
|
_.reject("deleted_at"),
|
|
129
|
-
_.orderBy(["business_concept_id", "df_name"], ["desc", "asc"])
|
|
129
|
+
_.orderBy(["business_concept_id", "df_name"], ["desc", "asc"]),
|
|
130
130
|
)(conceptRules),
|
|
131
131
|
showExpandableColumn: _.some("business_concept_name")(conceptRules),
|
|
132
132
|
createRuleUrl: conceptRulesActions?.create
|
|
133
133
|
? linkTo.CONCEPT_RULES_NEW(concept)
|
|
134
134
|
: null,
|
|
135
|
-
visible:
|
|
136
|
-
_.prop("status")(concept) != "deprecated" && manageQualityRule,
|
|
135
|
+
visible: _.prop("status")(concept) != "deprecated" && manageQualityRule,
|
|
137
136
|
};
|
|
138
137
|
};
|
|
139
138
|
|
|
@@ -82,7 +82,7 @@ const filterNilOrEmpties = (values, keys) => {
|
|
|
82
82
|
|
|
83
83
|
return _.flow(
|
|
84
84
|
_.map((v) => filterNilOrEmpties(v, keys)),
|
|
85
|
-
_.filter((v) => !!v)
|
|
85
|
+
_.filter((v) => !!v),
|
|
86
86
|
)(values);
|
|
87
87
|
};
|
|
88
88
|
|
|
@@ -106,12 +106,12 @@ const valuesFromKeys = (values, keys, optionalKeys, value_modifier) =>
|
|
|
106
106
|
_.map((value) => {
|
|
107
107
|
return Array.isArray(value?.fields)
|
|
108
108
|
? _.map((innerValue) => pick(innerValue, keys, optionalKeys))(
|
|
109
|
-
value?.fields
|
|
109
|
+
value?.fields,
|
|
110
110
|
)
|
|
111
111
|
: pick(value, keys, optionalKeys);
|
|
112
112
|
}),
|
|
113
113
|
(v) => filterNilOrEmpties(v, keys),
|
|
114
|
-
(v) => convert(v, 0, value_modifier)
|
|
114
|
+
(v) => convert(v, 0, value_modifier),
|
|
115
115
|
)(values);
|
|
116
116
|
|
|
117
117
|
export const getValues = ({ value = [], operator = {}, value_modifier }) => {
|
|
@@ -121,14 +121,14 @@ export const getValues = ({ value = [], operator = {}, value_modifier }) => {
|
|
|
121
121
|
defaultOrValue,
|
|
122
122
|
["name"],
|
|
123
123
|
["path", "metadata", "id", "type", "parent_index"],
|
|
124
|
-
value_modifier
|
|
124
|
+
value_modifier,
|
|
125
125
|
)
|
|
126
126
|
: operator?.value_type === "reference_dataset_field"
|
|
127
127
|
? valuesFromKeys(
|
|
128
128
|
defaultOrValue,
|
|
129
129
|
["referenceDataset", "name"],
|
|
130
130
|
[],
|
|
131
|
-
value_modifier
|
|
131
|
+
value_modifier,
|
|
132
132
|
)
|
|
133
133
|
: valuesFromKeys(defaultOrValue, ["raw"], [], value_modifier);
|
|
134
134
|
};
|
|
@@ -152,7 +152,7 @@ const qualifySqlIdentifier = ({ aliasArray, value }) =>
|
|
|
152
152
|
_.find({ index: value?.parent_index }),
|
|
153
153
|
_.propOr(null, "text"),
|
|
154
154
|
_.defaultTo(value?.metadata?.table || _.last(value?.path)),
|
|
155
|
-
(qualifier) => (qualifier ? `(${qualifier}).${value?.name}` : value?.name)
|
|
155
|
+
(qualifier) => (qualifier ? `(${qualifier}).${value?.name}` : value?.name),
|
|
156
156
|
)(aliasArray);
|
|
157
157
|
|
|
158
158
|
export const ConditionCell = ({
|
|
@@ -213,11 +213,11 @@ export const ConditionCell = ({
|
|
|
213
213
|
<div key={`${paramName}_${i}`}>
|
|
214
214
|
`${paramValueItem}`
|
|
215
215
|
</div>
|
|
216
|
-
)
|
|
216
|
+
),
|
|
217
217
|
)
|
|
218
218
|
: `${paramValue}`}
|
|
219
219
|
</div>
|
|
220
|
-
))
|
|
220
|
+
)),
|
|
221
221
|
)(row)}
|
|
222
222
|
</>
|
|
223
223
|
)}
|
|
@@ -260,7 +260,7 @@ export const ConditionCell = ({
|
|
|
260
260
|
id: `filtersGrid.field.modifier.${value.modifier.name}.${paramName}`,
|
|
261
261
|
defaultMessage: paramName,
|
|
262
262
|
})}: ${paramValue}`}</div>
|
|
263
|
-
))
|
|
263
|
+
)),
|
|
264
264
|
)(value)}
|
|
265
265
|
</>
|
|
266
266
|
)}
|
|
@@ -74,7 +74,7 @@ export const ExecutionForm = ({ count, onSubmit, onCancel }) => {
|
|
|
74
74
|
? "implementation.actions.execution.confirmation.content"
|
|
75
75
|
: "implementations.actions.execution.confirmation.content",
|
|
76
76
|
},
|
|
77
|
-
{ implementations_count: count }
|
|
77
|
+
{ implementations_count: count },
|
|
78
78
|
)}
|
|
79
79
|
</p>
|
|
80
80
|
<div className="actions">
|
|
@@ -29,13 +29,13 @@ ExecutionRow.propTypes = {
|
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
const isCompleted = _.flow(_.prop("_embedded.status"), (s) =>
|
|
32
|
-
_.includes(s)(["SUCCEEDED", "FAILED"])
|
|
32
|
+
_.includes(s)(["SUCCEEDED", "FAILED"]),
|
|
33
33
|
);
|
|
34
34
|
|
|
35
35
|
export const ExecutionGroup = ({ executionGroup, columns }) => {
|
|
36
36
|
const { formatMessage } = useIntl();
|
|
37
37
|
const executions = _.sortBy("_embedded.implementation.implementation_key")(
|
|
38
|
-
executionGroup?._embedded?.executions
|
|
38
|
+
executionGroup?._embedded?.executions,
|
|
39
39
|
);
|
|
40
40
|
const count = _.size(executions);
|
|
41
41
|
const pendingCount = _.flow(_.reject(isCompleted), _.size)(executions);
|
|
@@ -5,13 +5,13 @@ import { useQuery } from "@apollo/client";
|
|
|
5
5
|
import { TEMPLATES_QUERY } from "@truedat/core/api/queries";
|
|
6
6
|
|
|
7
7
|
const DynamicFormViewer = lazy(
|
|
8
|
-
() => import("@truedat/df/components/DynamicFormViewer")
|
|
8
|
+
() => import("@truedat/df/components/DynamicFormViewer"),
|
|
9
9
|
);
|
|
10
10
|
|
|
11
11
|
const templateFieldNames = _.flow(
|
|
12
12
|
_.prop("content"),
|
|
13
13
|
_.flatMap("fields"),
|
|
14
|
-
_.map("name")
|
|
14
|
+
_.map("name"),
|
|
15
15
|
);
|
|
16
16
|
|
|
17
17
|
export const ExecutionGroupContent = ({ content }) => {
|
|
@@ -23,11 +23,11 @@ export const ExecutionGroupContent = ({ content }) => {
|
|
|
23
23
|
const matchingFieldCount = _.flow(
|
|
24
24
|
templateFieldNames,
|
|
25
25
|
_.intersection(contentFieldNames),
|
|
26
|
-
_.size
|
|
26
|
+
_.size,
|
|
27
27
|
);
|
|
28
28
|
const template = _.flow(
|
|
29
29
|
_.propOr([], "templates"),
|
|
30
|
-
_.maxBy(matchingFieldCount)
|
|
30
|
+
_.maxBy(matchingFieldCount),
|
|
31
31
|
)(data);
|
|
32
32
|
|
|
33
33
|
return template ? (
|
|
@@ -68,7 +68,7 @@ export const ImplementationExecutionFilters = () => {
|
|
|
68
68
|
const variables = { id };
|
|
69
69
|
const { data, error, loading } = useQuery(
|
|
70
70
|
IMPLEMENTATION_EXECUTION_FILTERS_QUERY,
|
|
71
|
-
{ variables }
|
|
71
|
+
{ variables },
|
|
72
72
|
);
|
|
73
73
|
if (error) return null;
|
|
74
74
|
if (loading) return <Loading />;
|
|
@@ -15,12 +15,12 @@ const mapDispatchToProps = (dispatch) =>
|
|
|
15
15
|
clearFilters: clearImplementationFilters,
|
|
16
16
|
fetchFilters: fetchImplementationFilters,
|
|
17
17
|
},
|
|
18
|
-
dispatch
|
|
18
|
+
dispatch,
|
|
19
19
|
);
|
|
20
20
|
|
|
21
21
|
export const makeMapStateToProps = () => {
|
|
22
22
|
const activeFiltersSelector = makeActiveFiltersSelector(
|
|
23
|
-
"ruleImplementationActiveFilters"
|
|
23
|
+
"ruleImplementationActiveFilters",
|
|
24
24
|
);
|
|
25
25
|
const mapStateToProps = (state, props) => ({
|
|
26
26
|
selectedFilter: state.ruleImplementationSelectedFilter,
|
|
@@ -22,7 +22,7 @@ export default function ImplementationResultBar({ implementation }) {
|
|
|
22
22
|
color: "empyDataset",
|
|
23
23
|
resultText: intl.formatMessage(
|
|
24
24
|
{ id: `quality.result.empty_dataset.date` },
|
|
25
|
-
{ date: <DateTime value={ruleResult.date} /> }
|
|
25
|
+
{ date: <DateTime value={ruleResult.date} /> },
|
|
26
26
|
),
|
|
27
27
|
}
|
|
28
28
|
: calculateResultDecoration({
|
|
@@ -46,32 +46,32 @@ export const ImplementationSearchResults = ({ embedded, role, columns }) => {
|
|
|
46
46
|
const ids = _.map(_.prop("id"))(ruleImplementations);
|
|
47
47
|
checkedAll
|
|
48
48
|
? setSelectedImplementations(
|
|
49
|
-
_.flow(_.concat(ids), _.uniq)(selectedImplementations)
|
|
49
|
+
_.flow(_.concat(ids), _.uniq)(selectedImplementations),
|
|
50
50
|
)
|
|
51
51
|
: setSelectedImplementations(
|
|
52
|
-
_.flow(_.difference(selectedImplementations), _.uniq)(ids)
|
|
52
|
+
_.flow(_.difference(selectedImplementations), _.uniq)(ids),
|
|
53
53
|
);
|
|
54
54
|
};
|
|
55
55
|
const checkRow = (implementation) => {
|
|
56
56
|
const id = _.prop("id")(implementation);
|
|
57
57
|
const exists = _.some((selectedId) => _.eq(id, selectedId))(
|
|
58
|
-
selectedImplementations
|
|
58
|
+
selectedImplementations,
|
|
59
59
|
);
|
|
60
60
|
exists
|
|
61
61
|
? setSelectedImplementations(
|
|
62
62
|
_.flow(
|
|
63
63
|
_.remove((selectedId) => _.eq(id, selectedId)),
|
|
64
|
-
_.uniq
|
|
65
|
-
)(selectedImplementations)
|
|
64
|
+
_.uniq,
|
|
65
|
+
)(selectedImplementations),
|
|
66
66
|
)
|
|
67
67
|
: setSelectedImplementations(
|
|
68
|
-
_.flow(_.concat(id), _.uniq)(selectedImplementations)
|
|
68
|
+
_.flow(_.concat(id), _.uniq)(selectedImplementations),
|
|
69
69
|
);
|
|
70
70
|
};
|
|
71
71
|
const isRowChecked = (implementation) => {
|
|
72
72
|
const id = _.prop("id")(implementation);
|
|
73
73
|
return _.some((selectedId) => _.eq(id, selectedId))(
|
|
74
|
-
selectedImplementations
|
|
74
|
+
selectedImplementations,
|
|
75
75
|
);
|
|
76
76
|
};
|
|
77
77
|
const filteredColumns = useActiveRoute(IMPLEMENTATIONS_PENDING)
|
|
@@ -9,7 +9,7 @@ import { linkTo } from "@truedat/core/routes";
|
|
|
9
9
|
import { createImplementationStructure } from "../routines";
|
|
10
10
|
|
|
11
11
|
const StructureSelector = lazy(
|
|
12
|
-
() => import("@truedat/dd/components/StructureSelector")
|
|
12
|
+
() => import("@truedat/dd/components/StructureSelector"),
|
|
13
13
|
);
|
|
14
14
|
|
|
15
15
|
export const ImplementationStructuresNew = ({
|
|
@@ -23,13 +23,16 @@ export const ImplementationStructuresNew = ({
|
|
|
23
23
|
linkTo.IMPLEMENTATION_STRUCTURES({
|
|
24
24
|
id: implementation.rule_id,
|
|
25
25
|
implementation_id: implementation.id,
|
|
26
|
-
})
|
|
26
|
+
}),
|
|
27
27
|
);
|
|
28
28
|
return null;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
31
32
|
const { formatMessage } = useIntl();
|
|
33
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
32
34
|
const [selectedTarget, setSelectedTarget] = useState(null);
|
|
35
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
33
36
|
const [type, setType] = useState("dataset");
|
|
34
37
|
const submitDisabled = creatingImplementationStructure || !selectedTarget;
|
|
35
38
|
|
|
@@ -135,5 +138,5 @@ const mapStateToProps = (state) => ({
|
|
|
135
138
|
});
|
|
136
139
|
|
|
137
140
|
export default connect(mapStateToProps, { createImplementationStructure })(
|
|
138
|
-
ImplementationStructuresNew
|
|
141
|
+
ImplementationStructuresNew,
|
|
139
142
|
);
|
|
@@ -50,7 +50,7 @@ FormattedLink.propTypes = {
|
|
|
50
50
|
const AliasText = ({ alias, clause }) => {
|
|
51
51
|
const text = _.flow(
|
|
52
52
|
_.find({ index: clause?.parent_index }),
|
|
53
|
-
_.propOr(null, "text")
|
|
53
|
+
_.propOr(null, "text"),
|
|
54
54
|
)(alias);
|
|
55
55
|
return _.isNull(text) ? clause?.name : `(${text}).${clause?.name}`;
|
|
56
56
|
};
|
|
@@ -82,7 +82,7 @@ const UnionSummary = ({ alias, row }) => {
|
|
|
82
82
|
{clause.left && <AliasText alias={alias} clause={clause.left} />}={" "}
|
|
83
83
|
{clause.right && <AliasText alias={alias} clause={clause.right} />}
|
|
84
84
|
</List.Item>
|
|
85
|
-
) : null
|
|
85
|
+
) : null,
|
|
86
86
|
)}
|
|
87
87
|
</List>
|
|
88
88
|
);
|
|
@@ -7,7 +7,7 @@ import { SearchContextProvider } from "@truedat/core/search/SearchContext";
|
|
|
7
7
|
import { getRiSubscopes } from "@truedat/core/selectors";
|
|
8
8
|
import {
|
|
9
9
|
IMPLEMENTATIONS,
|
|
10
|
-
IMPLEMENTATIONS_BY_SUBSCOPE
|
|
10
|
+
IMPLEMENTATIONS_BY_SUBSCOPE,
|
|
11
11
|
} from "@truedat/core/routes";
|
|
12
12
|
import {
|
|
13
13
|
useRuleImplementationFilters,
|
|
@@ -20,25 +20,32 @@ import ImplementationSearchResults from "./ImplementationSearchResults";
|
|
|
20
20
|
|
|
21
21
|
export const Implementations = ({ defaultFilters }) => {
|
|
22
22
|
const { subscope } = useParams();
|
|
23
|
-
const isImplementations=useActiveRoute(IMPLEMENTATIONS)
|
|
24
|
-
const isImplementationsBySubscope=useActiveRoute(
|
|
23
|
+
const isImplementations = useActiveRoute(IMPLEMENTATIONS);
|
|
24
|
+
const isImplementationsBySubscope = useActiveRoute(
|
|
25
|
+
IMPLEMENTATIONS_BY_SUBSCOPE,
|
|
26
|
+
);
|
|
25
27
|
const riSubscopes = useSelector(getRiSubscopes);
|
|
26
28
|
|
|
29
|
+
// eslint-disable-next-line fp/no-let
|
|
27
30
|
let filtersWithSubscope = { ...defaultFilters };
|
|
28
|
-
|
|
29
|
-
if (isImplementations && riSubscopes && riSubscopes.length > 0){
|
|
31
|
+
|
|
32
|
+
if (isImplementations && riSubscopes && riSubscopes.length > 0) {
|
|
30
33
|
const mustNotFilters = {};
|
|
34
|
+
// eslint-disable-next-line fp/no-mutation
|
|
31
35
|
mustNotFilters[`mustnot.template.subscope`] = riSubscopes;
|
|
32
36
|
|
|
37
|
+
// eslint-disable-next-line fp/no-mutation
|
|
33
38
|
filtersWithSubscope = {
|
|
34
39
|
...defaultFilters,
|
|
35
|
-
...mustNotFilters
|
|
40
|
+
...mustNotFilters,
|
|
41
|
+
};
|
|
42
|
+
} else if (isImplementationsBySubscope) {
|
|
43
|
+
// eslint-disable-next-line fp/no-mutation
|
|
44
|
+
filtersWithSubscope = {
|
|
45
|
+
...defaultFilters,
|
|
46
|
+
"template.subscope": [subscope],
|
|
36
47
|
};
|
|
37
48
|
}
|
|
38
|
-
else if (isImplementationsBySubscope){
|
|
39
|
-
filtersWithSubscope = { ...defaultFilters, "template.subscope": [subscope] };
|
|
40
|
-
}
|
|
41
|
-
|
|
42
49
|
|
|
43
50
|
const searchProps = {
|
|
44
51
|
initialSortColumn: "implementation_key.raw",
|
|
@@ -71,4 +78,4 @@ Implementations.propTypes = {
|
|
|
71
78
|
defaultFilters: PropTypes.object,
|
|
72
79
|
};
|
|
73
80
|
|
|
74
|
-
export default Implementations;
|
|
81
|
+
export default Implementations;
|
|
@@ -17,22 +17,23 @@ export const ImplementationSearchResultsHeader = () => {
|
|
|
17
17
|
|
|
18
18
|
const { header, subheader } = useMemo(() => {
|
|
19
19
|
// Check if current URL is a subscope URL
|
|
20
|
-
const pathParts = location.pathname.split(
|
|
21
|
-
const isSubscopeUrl =
|
|
22
|
-
|
|
20
|
+
const pathParts = location.pathname.split("/");
|
|
21
|
+
const isSubscopeUrl =
|
|
22
|
+
pathParts.includes("subscope") && pathParts.length > 2;
|
|
23
|
+
|
|
23
24
|
if (isSubscopeUrl) {
|
|
24
|
-
const subscopeIndex = pathParts.indexOf(
|
|
25
|
+
const subscopeIndex = pathParts.indexOf("subscope");
|
|
25
26
|
const subscopeName = pathParts[subscopeIndex + 1];
|
|
26
|
-
|
|
27
|
+
|
|
27
28
|
if (subscopeName) {
|
|
28
29
|
const decodedName = decodeURIComponent(subscopeName);
|
|
29
30
|
const normalizedSubscopeName = decodedName
|
|
30
|
-
.replace(/\s+/g,
|
|
31
|
-
.replace(/[^\w_]/g,
|
|
32
|
-
|
|
31
|
+
.replace(/\s+/g, "_")
|
|
32
|
+
.replace(/[^\w_]/g, "");
|
|
33
|
+
|
|
33
34
|
return {
|
|
34
35
|
header: `implementations.${normalizedSubscopeName}.main.header`,
|
|
35
|
-
subheader: `implementations.${normalizedSubscopeName}.main.subheader
|
|
36
|
+
subheader: `implementations.${normalizedSubscopeName}.main.subheader`,
|
|
36
37
|
};
|
|
37
38
|
}
|
|
38
39
|
}
|
|
@@ -40,20 +41,20 @@ export const ImplementationSearchResultsHeader = () => {
|
|
|
40
41
|
if (pending) {
|
|
41
42
|
return {
|
|
42
43
|
header: "implementations.header.manage",
|
|
43
|
-
subheader: "implementations.subheader.manage"
|
|
44
|
+
subheader: "implementations.subheader.manage",
|
|
44
45
|
};
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
if (deprecated) {
|
|
48
49
|
return {
|
|
49
50
|
header: "implementations.header.deprecated",
|
|
50
|
-
subheader: "implementations.subheader.deprecated"
|
|
51
|
+
subheader: "implementations.subheader.deprecated",
|
|
51
52
|
};
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
return {
|
|
55
56
|
header: "implementations.header",
|
|
56
|
-
subheader: "implementations.subheader"
|
|
57
|
+
subheader: "implementations.subheader",
|
|
57
58
|
};
|
|
58
59
|
}, [location.pathname, pending, deprecated]);
|
|
59
60
|
|
|
@@ -67,19 +68,13 @@ export const ImplementationSearchResultsHeader = () => {
|
|
|
67
68
|
})}
|
|
68
69
|
/>
|
|
69
70
|
<Header.Content>
|
|
70
|
-
<FormattedMessage
|
|
71
|
-
id={header}
|
|
72
|
-
defaultMessage={header}
|
|
73
|
-
/>
|
|
71
|
+
<FormattedMessage id={header} defaultMessage={header} />
|
|
74
72
|
<Header.Subheader>
|
|
75
|
-
<FormattedMessage
|
|
76
|
-
id={subheader}
|
|
77
|
-
defaultMessage={subheader}
|
|
78
|
-
/>
|
|
73
|
+
<FormattedMessage id={subheader} defaultMessage={subheader} />
|
|
79
74
|
</Header.Subheader>
|
|
80
75
|
</Header.Content>
|
|
81
76
|
</Header>
|
|
82
77
|
);
|
|
83
78
|
};
|
|
84
79
|
|
|
85
|
-
export default ImplementationSearchResultsHeader;
|
|
80
|
+
export default ImplementationSearchResultsHeader;
|
|
@@ -6,6 +6,8 @@ import { connect } from "react-redux";
|
|
|
6
6
|
import { Segment } from "semantic-ui-react";
|
|
7
7
|
import { ProtectedRoute, Loader } from "@truedat/core/router";
|
|
8
8
|
// This is only for information purposes
|
|
9
|
+
import UploadJobs from "@truedat/core/components/UploadJobs";
|
|
10
|
+
import UploadJob from "@truedat/core/components/UploadJob";
|
|
9
11
|
import {
|
|
10
12
|
getImplementationStructures,
|
|
11
13
|
getImplementationStructuresLoaded,
|
|
@@ -27,23 +29,21 @@ import RuleImplementationResults from "./RuleImplementationResults";
|
|
|
27
29
|
import RuleResultRemediationLoader from "./RuleResultRemediationLoader";
|
|
28
30
|
import RuleResultsRoutes from "./RuleResultsRoutes";
|
|
29
31
|
import RuleSubscriptionLoader from "./RuleSubscriptionLoader";
|
|
30
|
-
import UploadJobs from "@truedat/core/components/UploadJobs";
|
|
31
|
-
import UploadJob from "@truedat/core/components/UploadJob";
|
|
32
32
|
|
|
33
33
|
const TemplatesLoader = React.lazy(
|
|
34
|
-
() => import("@truedat/core/components/TemplatesLoader")
|
|
34
|
+
() => import("@truedat/core/components/TemplatesLoader"),
|
|
35
35
|
);
|
|
36
36
|
const EventsLoader = React.lazy(
|
|
37
|
-
() => import("@truedat/audit/components/EventsLoader")
|
|
37
|
+
() => import("@truedat/audit/components/EventsLoader"),
|
|
38
38
|
);
|
|
39
39
|
const ImplementationStructuresLoader = React.lazy(
|
|
40
|
-
() => import("@truedat/dd/components/ImplementationStructuresLoader")
|
|
40
|
+
() => import("@truedat/dd/components/ImplementationStructuresLoader"),
|
|
41
41
|
);
|
|
42
42
|
const ImplementationLinks = React.lazy(
|
|
43
|
-
() => import("@truedat/lm/components/ImplementationLinks")
|
|
43
|
+
() => import("@truedat/lm/components/ImplementationLinks"),
|
|
44
44
|
);
|
|
45
45
|
const ImplementationRelationForm = React.lazy(
|
|
46
|
-
() => import("@truedat/lm/components/ImplementationRelationForm")
|
|
46
|
+
() => import("@truedat/lm/components/ImplementationRelationForm"),
|
|
47
47
|
);
|
|
48
48
|
|
|
49
49
|
const ImplementationEventsLoader = () => {
|