diff --git a/apps/dnet-orgs-database-application/TODO.txt b/apps/dnet-orgs-database-application/TODO.txt index e99b2475..9be91d25 100644 --- a/apps/dnet-orgs-database-application/TODO.txt +++ b/apps/dnet-orgs-database-application/TODO.txt @@ -2,4 +2,3 @@ TODO ---- # Aggiungere filtro nelle select per l'editing dei metadati (solo se la lista รจ lunga) -# Nella risoluzione dei conflicts aggiungere i bottoni merge_all, all_different, merge_advanced diff --git a/apps/dnet-orgs-database-application/src/main/resources/static/resources/html/pages/advanced/conflicts.html b/apps/dnet-orgs-database-application/src/main/resources/static/resources/html/pages/advanced/conflicts.html index 4b0efb90..3ac20211 100644 --- a/apps/dnet-orgs-database-application/src/main/resources/static/resources/html/pages/advanced/conflicts.html +++ b/apps/dnet-orgs-database-application/src/main/resources/static/resources/html/pages/advanced/conflicts.html @@ -32,16 +32,10 @@ diff --git a/apps/dnet-orgs-database-application/src/main/resources/static/resources/html/parts/org_conflicts.html b/apps/dnet-orgs-database-application/src/main/resources/static/resources/html/parts/org_conflicts.html index 4c49e4f7..b15de1e8 100644 --- a/apps/dnet-orgs-database-application/src/main/resources/static/resources/html/parts/org_conflicts.html +++ b/apps/dnet-orgs-database-application/src/main/resources/static/resources/html/parts/org_conflicts.html @@ -22,7 +22,11 @@ diff --git a/apps/dnet-orgs-database-application/src/main/resources/static/resources/js/organizations.js b/apps/dnet-orgs-database-application/src/main/resources/static/resources/js/organizations.js index 82e3b957..c46ed787 100644 --- a/apps/dnet-orgs-database-application/src/main/resources/static/resources/js/organizations.js +++ b/apps/dnet-orgs-database-application/src/main/resources/static/resources/js/organizations.js @@ -273,7 +273,7 @@ orgsModule.directive('orgDuplicates', function($http, $location, $route) { } }); -orgsModule.directive('orgConflicts', function($http, $location, $route, $q) { +orgsModule.directive('orgConflicts', function($http, $window, $location, $route, $q) { return { restrict: 'E', scope: { @@ -309,6 +309,29 @@ orgsModule.directive('orgConflicts', function($http, $location, $route, $q) { angular.forEach(scope.candidateConflicts, function(org) { org.show = 'secondary'; }); }); } + + scope.resolveConflicts = function(merge) { + if (scope.conflicts.length > 0) { + if (merge && !confirm("You are merging " + (scope.conflicts.length + 1) + " organization(s).\n\nDo you confirm?" )) { + return; + } + + if (!merge && !confirm("You are marking as different " + (scope.conflicts.length + 1) + " organization(s).\n\nDo you confirm?" )) { + return; + } + + var ids = [scope.org.id]; + angular.forEach(scope.conflicts, function(o, pos) { ids.push(o.id); }); + + if (merge) { + call_http_post($http, "/api/organizations/conflicts/fix/similar", ids, function(res) { $window.location.assign('#!/edit/0/' + res.data[0]); }); + } else { + call_http_post($http, "/api/organizations/conflicts/fix/different", ids, function(res) { $route.reload(); }); + } + } else { + alert('Invalid group !!!'); + } + } } } });