Skip to content
Snippets Groups Projects
Commit 01de2635 authored by Sebastian Pongratz's avatar Sebastian Pongratz :ping_pong:
Browse files

Revert "Merge branch 'revert-5df4ed48' into '2021.0'"

This reverts merge request !734
parent ce659096
No related branches found
No related tags found
No related merge requests found
Showing
with 47 additions and 302 deletions
......@@ -4,6 +4,9 @@ import("Sql_lib");
import("system.db");
import("DataPrivacy_lib");
import("system.vars");
import("DuplicateScanner_lib");
DuplicateScannerUtils.updateHasDuplicateEntry("Person_entity");
//let targetEntity = "Person_entity";
let contactId = vars.get("$local.uid");
......
......@@ -8,6 +8,9 @@ import("Person_lib");
import("Communication_lib");
import("Entity_lib");
import("StandardObject_lib");
import("DuplicateScanner_lib");
DuplicateScannerUtils.updateHasDuplicateEntry("Person_entity");
var localChanged = vars.get("$local.changed");
var orgChanged = false;
......
......@@ -237,6 +237,7 @@
<entityParameter>
<name>ContactIds_param</name>
<valueProcess>%aditoprj%/entity/QuickEntry_entity/entityfields/organdpersduplicates/children/contactids_param/valueProcess.js</valueProcess>
<documentation>%aditoprj%/entity/QuickEntry_entity/entityfields/organdpersduplicates/children/contactids_param/documentation.adoc</documentation>
</entityParameter>
<entityParameter>
<name>WithPrivatePersons_param</name>
......
returns a list of duplicate ids
the index will be searched via the values entered in the edit frame
\ No newline at end of file
......@@ -2,6 +2,7 @@ import("system.indexsearch");
import("system.vars");
import("DuplicateScanner_lib");
import("system.result");
import("IndexSearch_lib");
//trigger refresh
vars.get("$field.FIRSTNAME");
......@@ -11,11 +12,11 @@ var uid = vars.get("$field.UID");
var idsForEmptyResult = JSON.stringify(["nodata"]);
var duplicateScans = [];
duplicateScans.push(["PersonDuplicates", "Person_entity", {"CONTACTID" : uid}]);
duplicateScans.push(["Person_entity", {"CONTACTID" : uid}]);
vars.get("$field.Contacts.insertedRows").forEach(function (contact)
{
duplicateScans.push(["PersonDuplicates", "Person_entity", contact]);
duplicateScans.push(["Person_entity", contact]);
});
var organisationName = vars.get("$field.ORGANISATION_NAME");
......@@ -34,7 +35,7 @@ if (organisationName || firstOrganisationAddress)
address = firstOrganisationAddress["ADDRESS"];
}
duplicateScans.push(["OrganisationDuplicates", "Organisation_entity", {
duplicateScans.push(["Organisation_entity", {
"CONTACTID" : uid,
"NAME" : organisationName,
"STANDARD_CITY" : city,
......@@ -43,9 +44,9 @@ if (organisationName || firstOrganisationAddress)
}]);
}
var duplicates = duplicateScans.reduce(function (duplicateArr, [scannerName, entity, fieldValues])
var duplicates = duplicateScans.reduce(function (duplicateArr, [entity, fieldValues])
{
return duplicateArr.concat(_getDuplicates(scannerName, entity, fieldValues));
return duplicateArr.concat(_getDuplicates(entity, fieldValues));
}, []);
if (duplicates.length === 0)
......@@ -54,34 +55,22 @@ else
result.string(JSON.stringify(duplicates));
function _getDuplicates (pScannerName, pEntity, pEntityFieldValues)
function _getDuplicates(pEntity, pEntityFieldValues)
{
var fieldsToLoad = DuplicateScannerUtils.getEntityFieldObjectFromConfig(pScannerName, pEntity);
if (fieldsToLoad == null)
return [];
var scanner = DuplicateScannerUtils.getScannerByEntity(pEntity);
var indexsearchFilter = IndexsearchFilterUtils.fromFilter(scanner.filter);
var entityFields = indexsearchFilter.getFields();
entityFields.add(scanner.idField);
var valuesToCheck = {};
var allFieldsToLoad = fieldsToLoad.entityFields.concat(fieldsToLoad.entityIdField);
allFieldsToLoad.forEach(function (field)
{
entityFields.forEach(function(field) {
var fieldValue = field in pEntityFieldValues
? pEntityFieldValues[field]
: vars.get("$field." + field);
if (fieldValue)
valuesToCheck[field] = fieldValue;
});
//don't search if only the id field has a value
var fieldsToCheck = Object.keys(valuesToCheck);
if (fieldsToCheck.length === 0 || (fieldsToCheck.length === 1 && fieldsToLoad.entityIdField in valuesToCheck))
return [];
var scanResults = DuplicateScannerUtils.scanForDuplicates(pScannerName, pEntity, valuesToCheck, null) || [];
var duplicateIds = scanResults.map(function (duplicate)
{
return duplicate[indexsearch.FIELD_ID];
valuesToCheck[field] = fieldValue || "";
});
return duplicateIds;
var indexPattern = indexsearchFilter.buildQuery(valuesToCheck);
var duplicateIds = DuplicateScannerUtils.getDuplicateIds(pEntity, indexPattern, valuesToCheck[scanner.idField]);
return DuplicateScannerUtils.filterIgnored(pEntity, valuesToCheck[scanner.idField], duplicateIds);
}
......@@ -8076,6 +8076,12 @@
<entry>
<key>EML files can't be edited here. You can download, edit and reupload the template to change the content.</key>
</entry>
<entry>
<key>The duplicate row corrosponding to %0 has been rebuild</key>
</entry>
<entry>
<key>Duplicaterow rebuild</key>
</entry>
<entry>
<key>Edit HTML</key>
</entry>
......
......@@ -10685,6 +10685,14 @@ Bitte Datumseingabe prüfen</value>
<entry>
<key>Calendar week</key>
</entry>
<entry>
<key>Duplicaterow rebuild</key>
<value>Dubletten neu berechnet</value>
</entry>
<entry>
<key>The duplicate row corrosponding to %0 has been rebuild</key>
<value>Die Dupletten des %0 filters wurden neu berechnet</value>
</entry>
<entry>
<key>HTML Editor</key>
</entry>
......
......@@ -8178,6 +8178,12 @@
<entry>
<key>EML files can't be edited here. You can download, edit and reupload the template to change the content.</key>
</entry>
<entry>
<key>The duplicate row corrosponding to %0 has been rebuild</key>
</entry>
<entry>
<key>Duplicaterow rebuild</key>
</entry>
<entry>
<key>Edit HTML</key>
</entry>
......
<?xml version="1.0" encoding="UTF-8"?>
<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
<name>DuplicateScannerResultFieldConfig</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<entity>DuplicateScannerResultFieldConfig_entity</entity>
<references>
<neonViewReference>
<name>4bab12e9-c4c3-450f-bfcf-8ecbec1f994c</name>
<view>DuplicateScannerResultFieldConfigEdit_view</view>
</neonViewReference>
</references>
</neonContext>
<?xml version="1.0" encoding="UTF-8"?>
<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
<name>Duplicates</name>
<title>Duplicates</title>
<majorModelMode>DISTRIBUTED</majorModelMode>
<filterView>DuplicatesOverview_view</filterView>
<entity>Duplicates_entity</entity>
<references>
<neonViewReference>
<name>d8994f4c-3abf-4ff1-8bdb-f12e527df655</name>
<view>PersonDuplicatesFilter_view</view>
</neonViewReference>
<neonViewReference>
<name>de287a3b-1d6a-435c-b65e-d833c1751edf</name>
<view>DuplicatesOverview_view</view>
</neonViewReference>
<neonViewReference>
<name>5bdeb931-4e69-4520-bbc9-94fb17679331</name>
<view>PersonDublicatesTab_view</view>
</neonViewReference>
<neonViewReference>
<name>70cb2e96-5bc1-46cb-982f-b27db5d143d2</name>
<view>PersonClusterMain_view</view>
</neonViewReference>
<neonViewReference>
<name>7cdb6ca7-e99d-4eb6-897a-0953157bf62f</name>
<view>DuplicatesUnrelatedCluster_view</view>
</neonViewReference>
<neonViewReference>
<name>4b9a1a26-e14f-4246-b474-8bfb3e3a95b0</name>
<view>OrganisationDuplicatesTab_view</view>
</neonViewReference>
<neonViewReference>
<name>f9b46eab-7417-4f61-b7cd-dc772c04ddc0</name>
<view>OrganisationDuplicatesFilter_view</view>
</neonViewReference>
<neonViewReference>
<name>d68a425a-037a-4725-8dc1-b0afac277bdd</name>
<view>OrganisationUnrelatedDuplicates_view</view>
</neonViewReference>
<neonViewReference>
<name>4c1fc406-1c83-4fb6-9059-e45ff5c80756</name>
<view>OrganisationClusterMain_view</view>
</neonViewReference>
<neonViewReference>
<name>2400acfd-50e4-472d-b69c-368b9d25b6c6</name>
<view>PersonClusterPreview_view</view>
</neonViewReference>
</references>
</neonContext>
<?xml version="1.0" encoding="UTF-8"?>
<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
<name>DuplicatesUnrelated</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<entity>DuplicatesUnrelated_entity</entity>
<references>
<neonViewReference>
<name>0b5cbd31-cfa1-4ee8-8bd2-b4772ac95953</name>
<view>DuplicatesUnrelatedPersonFilter_view</view>
</neonViewReference>
<neonViewReference>
<name>433a665e-63ac-4281-8f7c-08603362daf7</name>
<view>DuplicatesUnrelatedOrganisationFilter_view</view>
</neonViewReference>
</references>
</neonContext>
......@@ -11,6 +11,7 @@
<tableViewTemplate>
<name>Filters</name>
<entityField>#ENTITY</entityField>
<favoriteActionGroup1>FilterActions</favoriteActionGroup1>
<isCreatable v="false" />
<isDeletable v="false" />
<isEditable v="true" />
......@@ -28,6 +29,7 @@
<treeTableViewTemplate>
<name>Treetable</name>
<entityField>#ENTITY</entityField>
<favoriteActionGroup1>FilterActions</favoriteActionGroup1>
<isCreatable v="false" />
<isDeletable v="false" />
<columns>
......
<?xml version="1.0" encoding="UTF-8"?>
<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
<name>DuplicateScannerResultFieldConfigEdit_view</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<layout>
<boxLayout>
<name>layout</name>
</boxLayout>
</layout>
<children>
<genericMultipleViewTemplate>
<name>ResultFieldsConfig</name>
<autoNewRow v="true" />
<entityField>#ENTITY</entityField>
<title>Result fields</title>
<columns>
<neonGenericMultipleTableColumn>
<name>e330572c-aa47-4c52-a760-3e8765ce3dd0</name>
<entityField>ENTITY_FIELD_NAME</entityField>
</neonGenericMultipleTableColumn>
</columns>
</genericMultipleViewTemplate>
</children>
</neonView>
<?xml version="1.0" encoding="UTF-8"?>
<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
<name>DuplicatesUnrelatedCluster_view</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<layout>
<boxLayout>
<name>layout</name>
</boxLayout>
</layout>
<children>
<neonViewReference>
<name>484990d0-890b-48b8-8618-6f0fab367138</name>
<entityField>DuplicatesUnrelatedPersonConsumer</entityField>
<view>DuplicatesUnrelatedPersonFilter_view</view>
</neonViewReference>
</children>
</neonView>
<?xml version="1.0" encoding="UTF-8"?>
<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
<name>DuplicatesUnrelatedOrganisationFilter_view</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<layout>
<boxLayout>
<name>layout</name>
</boxLayout>
</layout>
<children>
<tableViewTemplate>
<name>UnrelatedOrganisations</name>
<hideContentSearch v="true" />
<entityField>#ENTITY</entityField>
<isCreatable v="false" />
<isEditable v="false" />
<title>Unrelated organisation duplicates</title>
<columns>
<neonTableColumn>
<name>04681f8d-b941-4a66-be50-6ac08d6f52a4</name>
<entityField>SourceDuplicateDescription</entityField>
</neonTableColumn>
<neonTableColumn>
<name>b293ed18-ebf5-474e-8ec2-851a3562b4d5</name>
<entityField>UnrelatedDuplicateDescription</entityField>
</neonTableColumn>
</columns>
</tableViewTemplate>
</children>
</neonView>
<?xml version="1.0" encoding="UTF-8"?>
<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
<name>DuplicatesUnrelatedPersonFilter_view</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<layout>
<boxLayout>
<name>layout</name>
</boxLayout>
</layout>
<children>
<tableViewTemplate>
<name>UnrelatedPersons</name>
<hideContentSearch v="true" />
<entityField>#ENTITY</entityField>
<isCreatable v="false" />
<isEditable v="false" />
<title>Unrelated person duplicates</title>
<columns>
<neonTableColumn>
<name>734re984-6a0b-4126-ab49-452e2b54f76d</name>
<entityField>SourceDuplicateDescription</entityField>
</neonTableColumn>
<neonTableColumn>
<name>8615259b-de5b-378u-945d-2ff934ae1b8c</name>
<entityField>UnrelatedDuplicateDescription</entityField>
</neonTableColumn>
</columns>
</tableViewTemplate>
</children>
</neonView>
<?xml version="1.0" encoding="UTF-8"?>
<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
<name>OrganisationClusterMain_view</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<layout>
<boxLayout>
<name>layout</name>
<direction>HORIZONTAL</direction>
</boxLayout>
</layout>
<children>
<neonViewReference>
<name>b25f94bf-9316-4438-be78-b8cf596440b3</name>
<entityField>DuplicateOrganisationsConsumer</entityField>
<view>OrganisationFilter_view</view>
</neonViewReference>
<neonViewReference>
<name>5589bb81-171d-417b-a1b2-975144109d55</name>
<entityField>#ENTITY</entityField>
<view>DuplicatesUnrelatedCluster_view</view>
</neonViewReference>
</children>
</neonView>
<?xml version="1.0" encoding="UTF-8"?>
<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
<name>OrganisationDuplicatesFilter_view</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<layout>
<boxLayout>
<name>layout</name>
</boxLayout>
</layout>
<children>
<tableViewTemplate>
<name>OrganisationDuplicatesTable</name>
<hideContentSearch v="true" />
<entityField>#ENTITY</entityField>
<favoriteActionGroup1>OrganisationOpenClusterDetailActionGroup</favoriteActionGroup1>
<favoriteActionGroup2>DuplicateClusterActionGroup</favoriteActionGroup2>
<isCreatable v="false" />
<isDeletable v="false" />
<isEditable v="false" />
<columns>
<neonTableColumn>
<name>ebe8d904-449c-49bd-915c-5b4fee894bc2</name>
<entityField>CLUSTER_DESCRIPTION</entityField>
</neonTableColumn>
<neonTableColumn>
<name>48db4335-6bdb-4a6a-809e-f9c371733f85</name>
<entityField>COUNT_DUPLICATES_IN_CLUSTER</entityField>
</neonTableColumn>
</columns>
</tableViewTemplate>
</children>
</neonView>
<?xml version="1.0" encoding="UTF-8"?>
<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
<name>OrganisationDuplicatesTab_view</name>
<title>Organisation duplicates</title>
<majorModelMode>DISTRIBUTED</majorModelMode>
<layout>
<boxLayout>
<name>layout</name>
<direction>HORIZONTAL</direction>
</boxLayout>
</layout>
<children>
<neonViewReference>
<name>8b4ab951-afb3-4fac-915b-89226ab2f849</name>
<entityField>SelfOrganisationDuplicatesConsumer</entityField>
<view>OrganisationDuplicatesFilter_view</view>
</neonViewReference>
<neonViewReference>
<name>d1e2ba4a-a5d6-4bba-a646-5918490e43a4</name>
<entityField>#ENTITY</entityField>
<view>OrganisationUnrelatedDuplicates_view</view>
</neonViewReference>
</children>
</neonView>
<?xml version="1.0" encoding="UTF-8"?>
<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8">
<name>OrganisationUnrelatedDuplicates_view</name>
<majorModelMode>DISTRIBUTED</majorModelMode>
<layout>
<boxLayout>
<name>layout</name>
</boxLayout>
</layout>
<children>
<neonViewReference>
<name>edc0822d-4388-4e3d-93d7-2e46e32f5742</name>
<entityField>DuplicatesUnrelatedOrganisationConsumer</entityField>
<view>DuplicatesUnrelatedOrganisationFilter_view</view>
</neonViewReference>
</children>
</neonView>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment