diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/event/AbstractEventActivity.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/event/AbstractEventActivity.java index 617c74e6bc7..33a801f2a19 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/event/AbstractEventActivity.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/event/AbstractEventActivity.java @@ -305,7 +305,12 @@ public abstract class AbstractEventActivity ex public boolean isMultiRegattaEvent() { return getEventDTO().getType() == EventType.MULTI_REGATTA; } - + + @Override + public boolean isSingleRegattaEvent() { + return getEventDTO().getType() == EventType.SINGLE_REGATTA; + } + protected List getNavigationPathToEventLevel() { List navigationItems = new ArrayList<>(); if(getEventDTO().getType() == EventType.SERIES_EVENT) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/event/EventViewBase.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/event/EventViewBase.java index ee60228dfd1..de1f7b8f2df 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/event/EventViewBase.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/event/EventViewBase.java @@ -58,5 +58,7 @@ public interface EventViewBase extends IsWidget { EventViewDTO getEventDTO(); boolean isMultiRegattaEvent(); + + boolean isSingleRegattaEvent(); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/event/overview/regatta/RegattaOverviewImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/event/overview/regatta/RegattaOverviewImpl.java index f20c6d81f5f..4b5d161b560 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/event/overview/regatta/RegattaOverviewImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/mobile/places/event/overview/regatta/RegattaOverviewImpl.java @@ -44,7 +44,7 @@ public class RegattaOverviewImpl extends AbstractEventOverview { this.setupUpdateBox(container); this.setupImpressions(container); } - this.setupStatisticsBox(container, presenter.isMultiRegattaEvent()); + this.setupStatisticsBox(container, !presenter.isSingleRegattaEvent()); setViewContent(container); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java index 71f143851d1..4192a0490cb 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java @@ -701,4 +701,30 @@ public abstract class AbstractLeaderboardConfigPanel extends FormPanel implement } }); } + + /** + * Looks up the regatta for the selected leaderboard by name in {@link #allRegattas} + */ + protected RegattaDTO getSelectedRegatta() { + final String regattaName = getSelectedLeaderboard().regattaName; + return getRegattaByName(regattaName); + } + + /** + * Looks up a regatta with name {@code regattaName} in {@link #allRegattas} + */ + protected RegattaDTO getRegattaByName(final String regattaName) { + RegattaDTO regatta = null; + if (regattaName != null) { + if (allRegattas != null) { + for (RegattaDTO i : allRegattas) { + if (regattaName.equals(i.getName())) { + regatta = i; + break; + } + } + } + } + return regatta; + } } \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImageDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImageDialog.java index 0590a5aaf47..137be6e0e97 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImageDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImageDialog.java @@ -178,27 +178,27 @@ public abstract class ImageDialog extends DataEntryDialog { Grid grid = new Grid(11, 2); - grid.setWidget(0, 0, new Label("Created at:")); + grid.setWidget(0, 0, new Label(stringMessages.createdAt() + ":")); grid.setWidget(0, 1, createdAtLabel); grid.setWidget(1, 0, new HTML(" ")); grid.setWidget(1, 1, busyIndicator); - grid.setWidget(2, 0, new Label("Image URL:")); + grid.setWidget(2, 0, new Label(stringMessages.imageURL() + ":")); grid.setWidget(2, 1, imageURLAndUploadComposite); grid.setWidget(3, 0, new HTML(" ")); grid.setWidget(4, 0, new Label(stringMessages.title() + ":")); grid.setWidget(4, 1, titleTextBox); - grid.setWidget(5, 0, new Label("Subtitle:")); + grid.setWidget(5, 0, new Label(stringMessages.subtitle() + ":")); grid.setWidget(5, 1, subtitleTextBox); - grid.setWidget(6, 0, new Label("Copyright:")); + grid.setWidget(6, 0, new Label(stringMessages.copyright() + ":")); grid.setWidget(6, 1, copyrightTextBox); - grid.setWidget(7, 0, new Label("Width in px:")); + grid.setWidget(7, 0, new Label(stringMessages.widthInPx() + ":")); grid.setWidget(7, 1, widthInPxBox); - grid.setWidget(8, 0, new Label("Height in px:")); + grid.setWidget(8, 0, new Label(stringMessages.heightInPx() + ":")); grid.setWidget(8, 1, heightInPxBox); grid.setWidget(9, 0, new HTML(" ")); - grid.setWidget(10, 0, new Label("Tags:")); + grid.setWidget(10, 0, new Label(stringMessages.tags() + ":")); grid.setWidget(10, 1, tagsListEditor); panel.add(grid); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImagesListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImagesListComposite.java index 9fa5954aa2c..4cde584a316 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImagesListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImagesListComposite.java @@ -222,11 +222,11 @@ public class ImagesListComposite extends Composite { titleColumn.setSortable(true); createdAtDateColumn.setSortable(true); - table.addColumn(shortImageNameColumn, "Short name:"); + table.addColumn(shortImageNameColumn, stringMessages.name()); table.addColumn(titleColumn, stringMessages.title()); - table.addColumn(createdAtDateColumn, "Created At"); - table.addColumn(sizeColumn, "Size"); - table.addColumn(tagsColumn, "Tags"); + table.addColumn(createdAtDateColumn, stringMessages.createdAt()); + table.addColumn(sizeColumn, stringMessages.size()); + table.addColumn(tagsColumn, stringMessages.tags()); table.addColumn(imageActionColumn, stringMessages.actions()); table.addColumnSortHandler(getImageTableColumnSortHandler(imageListDataProvider.getList(), titleColumn, createdAtDateColumn)); table.getColumnSortList().push(createdAtDateColumn); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java index 2039b07024f..6db3362d1b1 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java @@ -25,8 +25,11 @@ import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.view.client.ListDataProvider; import com.google.gwt.view.client.SelectionChangeEvent; import com.google.gwt.view.client.SelectionChangeEvent.Handler; +import com.sap.sailing.domain.common.CourseDesignerMode; import com.sap.sailing.domain.common.PassingInstruction; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; +import com.sap.sailing.domain.common.RegattaIdentifier; +import com.sap.sailing.domain.common.RegattaName; import com.sap.sailing.domain.common.TrackedRaceStatusEnum; import com.sap.sailing.domain.common.abstractlog.TimePointSpecificationFoundInLog; import com.sap.sailing.domain.common.dto.CompetitorDTO; @@ -42,6 +45,7 @@ import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.controls.FlushableCellTable; import com.sap.sailing.gwt.ui.client.shared.controls.SelectionCheckboxColumn; import com.sap.sailing.gwt.ui.shared.ControlPointDTO; +import com.sap.sailing.gwt.ui.shared.DeviceConfigurationDTO; import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; @@ -540,6 +544,7 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC @Override public void onSuccess(Void result) { loadAndRefreshLeaderboard(leaderboard.name); + updateRegattaConfigDesignerModeToByMarks(leaderboard.regattaName); raceColumnTableSelectionModel.clear(); } @@ -550,6 +555,31 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC }); } + private void updateRegattaConfigDesignerModeToByMarks(final String regattaName) { + final RegattaDTO regatta = getRegattaByName(regattaName); + if (regatta != null) { + DeviceConfigurationDTO.RegattaConfigurationDTO configuration = regatta.configuration; + if (configuration == null) { + configuration = new DeviceConfigurationDTO.RegattaConfigurationDTO(); + configuration.defaultCourseDesignerMode = CourseDesignerMode.BY_MARKS; + } //TODO: Show message if regatta has configuration with design mode not equal "By marks" + + final RegattaIdentifier regattaIdentifier = new RegattaName(regatta.getName()); + sailingService.updateRegatta(regattaIdentifier, regatta.startDate, regatta.endDate, regatta.defaultCourseAreaUuid, + configuration, regatta.useStartTimeInference, new MarkedAsyncCallback(new AsyncCallback() { + @Override + public void onFailure(Throwable caught) { + errorReporter.reportError("Error trying to update regatta " + regattaName + ": " + + caught.getMessage()); + } + + @Override + public void onSuccess(Void result) { + } + })); + } + } + private void denoteForRaceLogTracking(final RaceColumnDTO raceColumn, final FleetDTO fleet) { final StrippedLeaderboardDTO leaderboard = getSelectedLeaderboard(); sailingService.denoteForRaceLogTracking(leaderboard.name, raceColumn.getName(), fleet.getName(), new AsyncCallback() { @@ -715,17 +745,7 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC private void searchBoatClass(final ShowWithBoatClass showWithBoatClass) { final String result; - RegattaDTO regatta = null; - if (getSelectedLeaderboard().regattaName != null) { - if (allRegattas != null) { - for (RegattaDTO i : allRegattas) { - if (getSelectedLeaderboard().regattaName.equals(i.getName())) { - regatta = i; - break; - } - } - } - } + RegattaDTO regatta = getSelectedRegatta(); if (regatta != null) { result = regatta.boatClass.getName(); showWithBoatClass.showWithBoatClass(result); 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 12b39f997ba..4e7c58ad68e 100644 --- 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 @@ -475,6 +475,12 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String url(); String mimeType(); String title(); + String subtitle(); + String copyright(); + String widthInPx(); + String heightInPx(); + String tags(); + String size(); String reallyRemoveMediaTrack(String mediaTrackTitle); String duration(); String addMediaTrack(); 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 600193f46b7..d8a0414959a 100644 --- 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 @@ -493,6 +493,12 @@ mediaPanel=Audio & Video url=URL mimeType=MIME Type title=Title +subtitle=Subtitle +copyright=Copyright +widthInPx=Width (pixel) +heightInPx=Height (pixel) +tags=Tags +size=Size duration=Duration (h:mm:ss.ms) addMediaTrack=Add Audio/Video addYoutubeTrack=Add Youtube 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 a5308e1d0e8..9e256998314 100644 --- 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 @@ -487,6 +487,12 @@ mediaPanel=Audio & Video url=URL mimeType=MIME Type title=Titel +subtitle=Untertitel +copyright=Urheberrecht +widthInPx=Breite (Punkte) +heightInPx=Höhe (Punkte) +tags=Tags +size=Größe duration=Dauer (h:mm:ss.ms) addMediaTrack=Audio/Video hinzufügen addYoutubeTrack=Youtube hinzufügen diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ja.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ja.properties index 5eeaabb85b1..d46a46f1fbd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ja.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ja.properties @@ -489,6 +489,12 @@ mediaPanel=音声と動画 url=URL mimeType=MIME タイプ title=表題 +subtitle=Subtitle +copyright=Copyright +widthInPx=Width (pixel) +heightInPx=Height (pixel) +tags=Tags +size=Size duration=時間 (h:mm:ss.ms) addMediaTrack=音声/動画追加 addYoutubeTrack=YouTube 追加 diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties index 245bf1ca9eb..84dc9d5c461 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties @@ -489,6 +489,12 @@ mediaPanel=Аудио и видео url=URL-адрес mimeType=Тип MIME title=Название +subtitle=Subtitle +copyright=Copyright +widthInPx=Width (pixel) +heightInPx=Height (pixel) +tags=Tags +size=Size duration=Длительность (ч:мм:сс.мс) addMediaTrack=Добавить аудио/видео addYoutubeTrack=Добавить Youtube diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties index 6797c085fa4..e95b4aee249 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties @@ -489,6 +489,12 @@ mediaPanel=音频和视频 url=URL mimeType=MIME 类型 title=标题 +subtitle=Subtitle +copyright=Copyright +widthInPx=Width (pixel) +heightInPx=Height (pixel) +tags=Tags +size=Size duration=持续时间 (h:mm:ss.ms) addMediaTrack=添加音频/视频 addYoutubeTrack=添加 Youtube diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh_CN.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh_CN.properties index 6797c085fa4..e95b4aee249 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh_CN.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh_CN.properties @@ -489,6 +489,12 @@ mediaPanel=音频和视频 url=URL mimeType=MIME 类型 title=标题 +subtitle=Subtitle +copyright=Copyright +widthInPx=Width (pixel) +heightInPx=Height (pixel) +tags=Tags +size=Size duration=持续时间 (h:mm:ss.ms) addMediaTrack=添加音频/视频 addYoutubeTrack=添加 Youtube