diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/FleetDTO.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/FleetDTO.java index 5b62e59afd4..a929e12c093 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/FleetDTO.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/FleetDTO.java @@ -11,6 +11,7 @@ public class FleetDTO extends NamedDTO { public RaceLogTrackingState raceLogTrackingState; public boolean raceLogTrackerExists; public boolean courseDefinitionInRaceLog; + public boolean competitorRegistrationsExist; public FleetDTO() {} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java index dfe2e7a3a0b..f22edf8b494 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java @@ -295,6 +295,21 @@ public class RaceLogTrackingEventManagementPanel extends AbstractLeaderboardConf private void startTracking(Set races) { final StrippedLeaderboardDTO leaderboard = getSelectedLeaderboard(); + + //prompt user if competitor registrations are missing for same races + String namesOfRacesMissingRegistrations = ""; + for (RaceColumnDTOAndFleetDTOWithNameBasedEquality race : races) { + if (! race.getB().competitorRegistrationsExist) { + namesOfRacesMissingRegistrations += race.getA().getName() + "/" + race.getB().getName() + " "; + } + } + if (! namesOfRacesMissingRegistrations.isEmpty()) { + boolean proceed = Window.confirm(stringMessages.competitorRegistrationsMissingProceed( + namesOfRacesMissingRegistrations)); + if (! proceed) { + return; + } + } for (RaceColumnDTOAndFleetDTOWithNameBasedEquality race : races) { final RaceColumnDTO raceColumn = race.getA(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index 261a821ee06..46964f27fb2 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -1006,4 +1006,5 @@ public interface StringMessages extends Messages { String authorName(); String authorPriority(); String removeDenotation(); + String competitorRegistrationsMissingProceed(String namesOfRaces); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index ed8fcf2e490..1024e4412b1 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -991,4 +991,5 @@ importWind=Import Wind importWindTooltip=Unchecking this option will drastically lower the amount of data transfered. authorName=Author name authorPriority=Author priority -removeDenotation=Remove Denotation \ No newline at end of file +removeDenotation=Remove Denotation +competitorRegistrationsMissingProceed=At least one of the selected races ({0}) is missing competitor registrations. Proceed anyway? \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index f3957eda5fb..3fed08c40da 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -987,4 +987,5 @@ importWind=Wind importieren importWindTooltip=Diese Option zu deselektieren führt zu einer wesentlich kleineren übertragenen Datenmenge. authorName=Benutzername authorPriority=Benutzer-Priorität -removeDenotation=Markierung entfernen \ No newline at end of file +removeDenotation=Markierung entfernen +competitorRegistrationsMissingProceed=Für mindestens eins der Rennen ({0}) sind keine Teams registriert. Trotzdem fortfahren? \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index c6827c08a90..63f1c41ab15 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -2059,6 +2059,8 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S fleetDTO.courseDefinitionInRaceLog = raceLogTrackingState.isForTracking() ? new LastPublishedCourseDesignFinder(raceLog).analyze() != null : false; + fleetDTO.competitorRegistrationsExist = ! new RegisteredCompetitorsAnalyzer(raceLog).analyze().isEmpty(); + if (! raceLogTrackingState.isForTracking()) { oneRaceLogDenotableForTracking = true; }