mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-08 13:20:57 +00:00
Merge remote-tracking branch 'origin/newhome' into boatclasses_masterdata
This commit is contained in:
commit
c98150e0c9
23 files changed
+103
-82
No files matched your search
+1
-1
@@ -19,7 +19,7 @@ public class TrackedRaceStatisticsDTO implements Serializable {
|
||||
public Integer measuredWindSourcesCount;
|
||||
public Duration averageWindDataSampleInterval;
|
||||
public Integer audioTracksCount;
|
||||
public Integer mediaTracksCount;
|
||||
public Integer videoTracksCount;
|
||||
|
||||
public Integer totalLegsCount;
|
||||
public Integer currentLegNo;
|
||||
|
||||
+3
-3
@@ -195,15 +195,15 @@ public class DomainFactoryImpl extends SharedDomainFactoryImpl implements Domain
|
||||
|
||||
// media data
|
||||
if(mediaTracks != null) {
|
||||
statisticsDTO.hasAudioData = true;
|
||||
statisticsDTO.hasVideoData = true;
|
||||
for(MediaTrack track: mediaTracks) {
|
||||
switch(track.mimeType.mediaType) {
|
||||
case audio:
|
||||
statisticsDTO.hasAudioData = true;
|
||||
statisticsDTO.audioTracksCount = statisticsDTO.audioTracksCount == null ? 1 : statisticsDTO.audioTracksCount++;
|
||||
break;
|
||||
case video:
|
||||
statisticsDTO.audioTracksCount = statisticsDTO.audioTracksCount == null ? 1 : statisticsDTO.audioTracksCount++;
|
||||
statisticsDTO.hasVideoData = true;
|
||||
statisticsDTO.videoTracksCount = statisticsDTO.videoTracksCount == null ? 1 : statisticsDTO.videoTracksCount++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -16,6 +16,7 @@ import com.sap.sailing.gwt.home.client.place.start.StartPlace;
|
||||
public class PlaceNavigatorImpl implements PlaceNavigator {
|
||||
private final PlaceController placeController;
|
||||
private final static String DEFAULT_SAPSAILING_SERVER = "newhome.sapsailing.com"; // www.sapsailing.com
|
||||
private final static String DEFAULT_SAPSAILING_SERVER_URL = "http://" + DEFAULT_SAPSAILING_SERVER;
|
||||
|
||||
protected PlaceNavigatorImpl(PlaceController placeController) {
|
||||
super();
|
||||
@@ -73,7 +74,7 @@ public class PlaceNavigatorImpl implements PlaceNavigator {
|
||||
if(isLocationOnLocalhost(baseUrl) || isLocationOnDefaultSapSailingServer(baseUrl)) {
|
||||
placeController.goTo(destinationPlace);
|
||||
} else {
|
||||
String homeUrl = buildRemotePlaceUrl(DEFAULT_SAPSAILING_SERVER, destinationPlace, tokenizer);
|
||||
String homeUrl = buildRemotePlaceUrl(DEFAULT_SAPSAILING_SERVER_URL, destinationPlace, tokenizer);
|
||||
Window.Location.replace(homeUrl);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ public class EventActivity extends AbstractActivity {
|
||||
public void start(final AcceptsOneWidget panel, final EventBus eventBus) {
|
||||
final long clientTimeWhenRequestWasSent = System.currentTimeMillis();
|
||||
UUID eventUUID = UUID.fromString(eventPlace.getEventUuidAsString());
|
||||
clientFactory.getSailingService().getEventById(eventUUID, new AsyncCallback<EventDTO>() {
|
||||
clientFactory.getSailingService().getEventById(eventUUID, true, new AsyncCallback<EventDTO>() {
|
||||
@Override
|
||||
public void onSuccess(final EventDTO event) {
|
||||
if(event.getLeaderboardGroups().size() > 0) {
|
||||
|
||||
+2
@@ -106,6 +106,8 @@
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
max-width: 140px !important;
|
||||
height: auto;
|
||||
}
|
||||
.eventheader_intro_name {
|
||||
display: inline-block;
|
||||
|
||||
+13
@@ -13,6 +13,7 @@ import com.google.gwt.uibinder.client.UiHandler;
|
||||
import com.google.gwt.user.client.ui.Anchor;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.home.client.i18n.TextMessages;
|
||||
import com.sap.sailing.gwt.home.client.place.event.EventPageNavigator;
|
||||
import com.sap.sailing.gwt.home.client.shared.EventDatesFormatterUtil;
|
||||
import com.sap.sailing.gwt.ui.shared.CourseAreaDTO;
|
||||
@@ -91,6 +92,9 @@ public class EventHeader extends Composite {
|
||||
isFinishedDiv.getStyle().setDisplay(Display.NONE);
|
||||
} else if (event.isFinished()) {
|
||||
isLiveDiv.getStyle().setDisplay(Display.NONE);
|
||||
} else {
|
||||
isFinishedDiv.getStyle().setDisplay(Display.NONE);
|
||||
isLiveDiv.getStyle().setDisplay(Display.NONE);
|
||||
}
|
||||
|
||||
setDataNavigationType("normal");
|
||||
@@ -146,6 +150,7 @@ public class EventHeader extends Composite {
|
||||
}
|
||||
} else {
|
||||
seriesLeaderboardDiv.getStyle().setDisplay(Display.NONE);
|
||||
regattaNameInSeriesDiv.getStyle().setDisplay(Display.NONE);
|
||||
}
|
||||
|
||||
eventNameSpan.setInnerHTML(eventName);
|
||||
@@ -158,6 +163,14 @@ public class EventHeader extends Composite {
|
||||
eventDescriptionDiv.setInnerHTML(event.getDescription());
|
||||
}
|
||||
if(event.getOfficialWebsiteURL() != null) {
|
||||
String title = event.getOfficialWebsiteURL();
|
||||
if(title.startsWith("http://")) {
|
||||
title = title.substring("http://".length(), title.length());
|
||||
}
|
||||
if(title.length() > 35) {
|
||||
title = TextMessages.INSTANCE.officalEventWebsite();
|
||||
}
|
||||
officalWebsiteAnchor.setText(title);
|
||||
officalWebsiteAnchor.setHref(event.getOfficialWebsiteURL());
|
||||
} else {
|
||||
officalWebsiteAnchor.setVisible(false);
|
||||
|
||||
+3
-4
@@ -29,7 +29,8 @@
|
||||
<div class="{local_res.css.eventheader}">
|
||||
<div class="{res.mainCss.grid}">
|
||||
<div class="{res.mediaCss.small9} {res.mediaCss.large8} {res.mediaCss.columns}">
|
||||
<div class="{local_res.css.eventheader_intro}"><img ui:field='eventLogo' alt="" class="{local_res.css.eventheader_intro_logo}"></img>
|
||||
<div class="{local_res.css.eventheader_intro}">
|
||||
<img ui:field="eventLogo" alt="" class="{local_res.css.eventheader_intro_logo}"></img>
|
||||
<h3 class="{local_res.css.eventheader_intro_name}"><span ui:field='eventNameSpan' /></h3>
|
||||
<div ui:field="isLiveDiv" data-labeltype="live" class="{res.mainCss.label}"><ui:text from='{i18n.live}'/></div>
|
||||
<div ui:field="isFinishedDiv" data-labeltype="finished" class="{res.mainCss.label}"><ui:text from='{i18n.finished}'/></div>
|
||||
@@ -40,9 +41,7 @@
|
||||
<img src="images/location-icon.png" class="{local_res.css.locationicon}"></img>
|
||||
<span ui:field='venueNameSpan' />
|
||||
</div>
|
||||
<g:Anchor ui:field="officalWebsiteAnchor" href="javascript:;" target="_blank" styleName="{local_res.css.eventheader_intro_details_item} {local_res.css.eventheader_intro_details_itemlink}">
|
||||
<ui:text from='{i18n.officalEventWebsite}'/>
|
||||
</g:Anchor>
|
||||
<g:Anchor ui:field="officalWebsiteAnchor" href="javascript:;" target="_blank" styleName="{local_res.css.eventheader_intro_details_item} {local_res.css.eventheader_intro_details_itemlink}" />
|
||||
</div>
|
||||
<div ui:field="eventDescriptionDiv" class="{local_res.css.eventheader_intro"></div>
|
||||
</div>
|
||||
|
||||
+2
-2
@@ -53,7 +53,7 @@ public class Regatta extends Composite {
|
||||
@UiField SpanElement trackedRacesCount;
|
||||
@UiField DivElement isLiveDiv;
|
||||
// @UiField TableElement isLiveDiv2;
|
||||
@UiField DivElement isFinishedDiv;
|
||||
// @UiField DivElement isFinishedDiv;
|
||||
// @UiField DivElement isFinishedDiv2;
|
||||
// @UiField DivElement isScheduledDiv;
|
||||
@UiField AnchorElement leaderboardLink;
|
||||
@@ -107,7 +107,7 @@ public class Regatta extends Composite {
|
||||
|
||||
boolean isFinished = !hasLiveRace;
|
||||
if(!isFinished) {
|
||||
isFinishedDiv.getStyle().setDisplay(Display.NONE);
|
||||
// isFinishedDiv.getStyle().setDisplay(Display.NONE);
|
||||
// isFinishedDiv2.getStyle().setDisplay(Display.NONE);
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -25,7 +25,9 @@
|
||||
</a>
|
||||
<h3 ui:field="regattaNameHeading2" class="{local_res.css.regatta_intro_header_name}"></h3>
|
||||
<div ui:field="isLiveDiv" data-labeltype="live" class="{res.mainCss.label}"><ui:text from='{i18n.live}'/></div>
|
||||
<!-- not used as long as we don't have start and end date of regatta
|
||||
<div ui:field="isFinishedDiv" data-labeltype="finished" class="{res.mainCss.label}"><ui:text from='{i18n.finished}'/></div>
|
||||
-->
|
||||
</div>
|
||||
<div class="{res.mediaCss.small8} {res.mediaCss.columns}">
|
||||
<div class="{local_res.css.regatta_intro_header_details}">
|
||||
|
||||
+5
-1
@@ -9,6 +9,7 @@ import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.AnchorElement;
|
||||
import com.google.gwt.dom.client.DivElement;
|
||||
import com.google.gwt.dom.client.Document;
|
||||
import com.google.gwt.dom.client.SpanElement;
|
||||
import com.google.gwt.dom.client.Style.Display;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
import com.google.gwt.uibinder.client.UiField;
|
||||
@@ -40,7 +41,8 @@ public class EventRegattaList extends Composite {
|
||||
@UiField DivElement regattaListNavigationDiv;
|
||||
@UiField DivElement regattaListItemsDiv;
|
||||
@UiField AnchorElement filterNoLeaderboardGroupsAnchor;
|
||||
|
||||
@UiField SpanElement allBoatClassesSelected;
|
||||
|
||||
private final EventDTO event;
|
||||
private final Map<String, List<Regatta>> regattaElementsByLeaderboardGroup;
|
||||
|
||||
@@ -108,6 +110,7 @@ public class EventRegattaList extends Composite {
|
||||
|
||||
private void filterRegattaListByLeaderboardGroup(LeaderboardGroupDTO leaderboardGroup) {
|
||||
if (leaderboardGroup != null) {
|
||||
allBoatClassesSelected.getStyle().setDisplay(Display.NONE);
|
||||
// hide all regattas of the not selected leaderboardgroup
|
||||
for (LeaderboardGroupDTO lg : event.getLeaderboardGroups()) {
|
||||
boolean isVisible = leaderboardGroup.getName().equals(lg.getName());
|
||||
@@ -118,6 +121,7 @@ public class EventRegattaList extends Composite {
|
||||
}
|
||||
} else {
|
||||
// make all regattas visible
|
||||
allBoatClassesSelected.getStyle().setDisplay(Display.INLINE_BLOCK);
|
||||
for (LeaderboardGroupDTO lg : event.getLeaderboardGroups()) {
|
||||
List<Regatta> regattaElements = regattaElementsByLeaderboardGroup.get(lg.getName());
|
||||
for (Regatta regatta : regattaElements) {
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@
|
||||
<div ui:field="regattaListNavigationDiv" class="{local_res.css.eventregattalist_navigation} {res.mainCss.navbar}">
|
||||
<div class="{res.mainCss.grid}">
|
||||
<div ui:field="regattaGroupsNavigationPanel" class="{res.mediaCss.small12} {res.mediaCss.columns}">
|
||||
<a ui:field="filterNoLeaderboardGroupsAnchor" href="javascript:;" class="{res.mainCss.navbar_button} {res.mainCss.navbar_buttonactive}"><ui:text from='{i18n.eventRegattaListAllBoatClasses}'/></a>
|
||||
<a ui:field="filterNoLeaderboardGroupsAnchor" href="javascript:;" class="{res.mainCss.navbar_button} {res.mainCss.navbar_buttonactive}"><span ui:field="allBoatClassesSelected">✓ </span><ui:text from='{i18n.eventRegattaListAllBoatClasses}'/></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+4
@@ -187,9 +187,13 @@ public class EventRegattaRacesRace extends UIObject {
|
||||
}
|
||||
if(!race.trackedRaceStatistics.hasVideoData) {
|
||||
featureVideo.addClassName(EventRegattaRacesResources.INSTANCE.css().eventregattarace_featureunavailable());
|
||||
} else {
|
||||
featureVideo.setTitle(String.valueOf(race.trackedRaceStatistics.videoTracksCount));
|
||||
}
|
||||
if(!race.trackedRaceStatistics.hasAudioData) {
|
||||
featureAudio.addClassName(EventRegattaRacesResources.INSTANCE.css().eventregattarace_featureunavailable());
|
||||
} else {
|
||||
featureAudio.setTitle(String.valueOf(race.trackedRaceStatistics.audioTracksCount));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-3
@@ -294,9 +294,7 @@ public interface SailingService extends RemoteService {
|
||||
|
||||
void renameEvent(UUID eventId, String newName);
|
||||
|
||||
EventDTO getEventByName(String eventName);
|
||||
|
||||
EventDTO getEventById(UUID id);
|
||||
EventDTO getEventById(UUID id, boolean withStatisticalData);
|
||||
|
||||
Iterable<String> getScoreCorrectionProviderNames();
|
||||
|
||||
|
||||
+1
-8
@@ -333,13 +333,6 @@ public interface SailingServiceAsync {
|
||||
|
||||
void getPublicEventsOfAllSailingServers(AsyncCallback<List<EventBaseDTO>> callback);
|
||||
|
||||
/**
|
||||
* Creates a {@link EventDTO} for the {@link com.sap.sailing.domain.base.Event} with the name <code>eventName</code>, which contains the
|
||||
* name, the description and a list with {@link RegattaDTO RegattaDTOs} contained in the event.<br />
|
||||
* If no event with the name <code>eventName</code> is known, an {@link IllegalArgumentException} is thrown.
|
||||
*/
|
||||
void getEventByName(String eventName, AsyncCallback<EventDTO> callback);
|
||||
|
||||
/**
|
||||
* Renames the event with the name <code>oldName</code> to the <code>newName</code>.<br />
|
||||
* If there's no event with the name <code>oldName</code> or there's already a event with the name
|
||||
@@ -550,7 +543,7 @@ public interface SailingServiceAsync {
|
||||
|
||||
void importWindFromIgtimi(List<RaceDTO> selectedRaces, boolean correctByDeclination, AsyncCallback<Map<RegattaAndRaceIdentifier, Integer>> asyncCallback);
|
||||
|
||||
void getEventById(UUID id, AsyncCallback<EventDTO> callback);
|
||||
void getEventById(UUID id, boolean withStatisticalData, AsyncCallback<EventDTO> callback);
|
||||
|
||||
void getLeaderboardsByEvent(EventDTO event, AsyncCallback<List<StrippedLeaderboardDTO>> callback);
|
||||
|
||||
|
||||
+27
-13
@@ -281,8 +281,10 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe
|
||||
private LatLngBounds currentMapBounds;
|
||||
|
||||
private int currentZoomLevel;
|
||||
private boolean autoZooming = false;
|
||||
private LatLngBounds newLatLngBounds;
|
||||
private boolean autoZoomIn = false;
|
||||
private boolean autoZoomOut = false;
|
||||
private int autoZoomLevel;
|
||||
LatLngBounds autoZoomLatLngBounds;
|
||||
|
||||
private WindStreamletsRaceboardOverlay streamletOverlay;
|
||||
private final boolean showViewStreamlets;
|
||||
@@ -372,9 +374,11 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe
|
||||
map.addZoomChangeHandler(new ZoomChangeMapHandler() {
|
||||
@Override
|
||||
public void onEvent(ZoomChangeMapEvent event) {
|
||||
// stop automatic zoom after a manual zoom event; automatic zoom in zoomMapToNewBounds will restore old settings
|
||||
final List<RaceMapZoomSettings.ZoomTypes> emptyList = Collections.emptyList();
|
||||
settings.getZoomSettings().setTypesToConsiderOnZoom(emptyList);
|
||||
if (!autoZoomIn && !autoZoomOut) {
|
||||
// stop automatic zoom after a manual zoom event; automatic zoom in zoomMapToNewBounds will restore old settings
|
||||
final List<RaceMapZoomSettings.ZoomTypes> emptyList = Collections.emptyList();
|
||||
settings.getZoomSettings().setTypesToConsiderOnZoom(emptyList);
|
||||
}
|
||||
}
|
||||
});
|
||||
map.addDragEndHandler(new DragEndMapHandler() {
|
||||
@@ -388,9 +392,13 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe
|
||||
map.addIdleHandler(new IdleMapHandler() {
|
||||
@Override
|
||||
public void onEvent(IdleMapEvent event) {
|
||||
if (autoZooming) {
|
||||
map.panTo(newLatLngBounds.getCenter());
|
||||
autoZooming = false;
|
||||
if (autoZoomIn) {
|
||||
map.setZoom(autoZoomLevel);
|
||||
autoZoomIn = false;
|
||||
}
|
||||
if (autoZoomOut) {
|
||||
map.panTo(autoZoomLatLngBounds.getCenter());
|
||||
autoZoomOut = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -1224,8 +1232,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe
|
||||
// only change bounds if the new bounds don't fit into the current map zoom
|
||||
List<ZoomTypes> oldZoomSettings = settings.getZoomSettings().getTypesToConsiderOnZoom();
|
||||
setAutoZoomInProgress(true);
|
||||
newLatLngBounds = BoundsUtil.getAsLatLngBounds(newBounds);
|
||||
int newZoomLevel = getZoomLevel(newLatLngBounds);
|
||||
autoZoomLatLngBounds = BoundsUtil.getAsLatLngBounds(newBounds);
|
||||
int newZoomLevel = getZoomLevel(autoZoomLatLngBounds);
|
||||
if (newZoomLevel != map.getZoom()) {
|
||||
// remove the canvas animations for boats
|
||||
for (BoatOverlay boatOverlay : RaceMap.this.getBoatOverlays().values()) {
|
||||
@@ -1235,10 +1243,16 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe
|
||||
for(CompetitorInfoOverlay infoOverlay: competitorInfoOverlays.values()) {
|
||||
infoOverlay.removeCanvasPositionAndRotationTransition();
|
||||
}
|
||||
autoZooming = true;
|
||||
map.setZoom(newZoomLevel);
|
||||
autoZoomIn = newZoomLevel > map.getZoom();
|
||||
autoZoomOut = !autoZoomIn;
|
||||
autoZoomLevel = newZoomLevel;
|
||||
if (autoZoomIn) {
|
||||
map.panTo(autoZoomLatLngBounds.getCenter());
|
||||
} else {
|
||||
map.setZoom(autoZoomLevel);
|
||||
}
|
||||
} else {
|
||||
map.panTo(newLatLngBounds.getCenter());
|
||||
map.panTo(autoZoomLatLngBounds.getCenter());
|
||||
}
|
||||
settings.getZoomSettings().setTypesToConsiderOnZoom(oldZoomSettings);
|
||||
setAutoZoomInProgress(false);
|
||||
|
||||
+1
-1
@@ -297,7 +297,7 @@ public class RegattaOverviewPanel extends SimplePanel {
|
||||
}
|
||||
|
||||
private void retrieveEvent() {
|
||||
sailingService.getEventById(eventId, new MarkedAsyncCallback<EventDTO>(
|
||||
sailingService.getEventById(eventId, false, new MarkedAsyncCallback<EventDTO>(
|
||||
new AsyncCallback<EventDTO>() {
|
||||
@Override
|
||||
public void onFailure(Throwable cause) {
|
||||
|
||||
+7
-19
@@ -3019,7 +3019,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
String requestBaseURL = getRequestBaseURL().toString();
|
||||
List<EventDTO> result = new ArrayList<EventDTO>();
|
||||
for (Event event : getService().getAllEvents()) {
|
||||
EventDTO eventDTO = convertToEventDTO(event);
|
||||
EventDTO eventDTO = convertToEventDTO(event, false);
|
||||
eventDTO.setBaseURL(requestBaseURL);
|
||||
eventDTO.setIsOnRemoteServer(false);
|
||||
result.add(eventDTO);
|
||||
@@ -3111,7 +3111,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
new UpdateEvent(eventId, eventName, eventDescription, startTimePoint, endTimePoint, venue.getName(),
|
||||
isPublic, leaderboardGroupIds, logoImageURL, officialWebsiteURL, imageURLs, videoURLs,
|
||||
sponsorimagieURLs));
|
||||
return getEventById(eventId);
|
||||
return getEventById(eventId, false);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -3139,7 +3139,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
for (String courseAreaName : courseAreaNames) {
|
||||
createCourseArea(eventUuid, courseAreaName);
|
||||
}
|
||||
return getEventById(eventUuid);
|
||||
return getEventById(eventUuid, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -3166,23 +3166,11 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventDTO getEventByName(String eventName) {
|
||||
EventDTO result = null;
|
||||
for (Event event : getService().getAllEvents()) {
|
||||
if(event.getName().equals(eventName)) {
|
||||
result = convertToEventDTO(event);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EventDTO getEventById(UUID id) {
|
||||
public EventDTO getEventById(UUID id, boolean withStatisticalData) {
|
||||
EventDTO result = null;
|
||||
Event event = getService().getEvent(id);
|
||||
if (event != null) {
|
||||
result = convertToEventDTO(event);
|
||||
result = convertToEventDTO(event, withStatisticalData);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -3231,7 +3219,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
}
|
||||
}
|
||||
|
||||
private EventDTO convertToEventDTO(Event event) {
|
||||
private EventDTO convertToEventDTO(Event event, boolean withStatisticalData) {
|
||||
EventDTO eventDTO = new EventDTO(event.getName());
|
||||
copyEventBaseFieldsToDTO(event, eventDTO);
|
||||
eventDTO.regattas = new ArrayList<RegattaDTO>();
|
||||
@@ -3247,7 +3235,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
eventDTO.venue.getCourseAreas().add(courseAreaDTO);
|
||||
}
|
||||
for (LeaderboardGroup lg : event.getLeaderboardGroups()) {
|
||||
eventDTO.addLeaderboardGroup(convertToLeaderboardGroupDTO(lg, /* withGeoLocationData */false, /* withStatisticalData */ true));
|
||||
eventDTO.addLeaderboardGroup(convertToLeaderboardGroupDTO(lg, /* withGeoLocationData */false, withStatisticalData));
|
||||
}
|
||||
return eventDTO;
|
||||
}
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
<source path='ui/actions' />
|
||||
<source path='ui/simulator' />
|
||||
<source path='ui/regattaoverview' />
|
||||
<source path='ui/leaderboard'/>
|
||||
<source path='home' />
|
||||
<source path='idangerous' />
|
||||
</module>
|
||||
@@ -250,7 +250,7 @@
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
|
||||
<param-value>com.sap.sailing.server.gateway.jaxrs.AccessControlResponseFilter</param-value>
|
||||
<param-value>com.sap.sailing.server.gateway.jaxrs.AccessControlAndEncodingResponseFilter</param-value>
|
||||
</init-param>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
@@ -267,7 +267,7 @@
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
|
||||
<param-value>com.sap.sailing.server.gateway.jaxrs.AccessControlResponseFilter</param-value>
|
||||
<param-value>com.sap.sailing.server.gateway.jaxrs.AccessControlAndEncodingResponseFilter</param-value>
|
||||
</init-param>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.sap.sailing.server.gateway.jaxrs;
|
||||
|
||||
import javax.ws.rs.core.MultivaluedMap;
|
||||
|
||||
import com.sun.jersey.spi.container.ContainerRequest;
|
||||
import com.sun.jersey.spi.container.ContainerResponse;
|
||||
import com.sun.jersey.spi.container.ContainerResponseFilter;
|
||||
|
||||
public class AccessControlAndEncodingResponseFilter implements ContainerResponseFilter {
|
||||
|
||||
@Override
|
||||
public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {
|
||||
MultivaluedMap<String, Object> httpHeaders = response.getHttpHeaders();
|
||||
httpHeaders.add("Access-Control-Allow-Origin", "*");
|
||||
httpHeaders.add("Access-Control-Allow-Headers", "Authorization, Origin, X-Requested-With, Content-Type");
|
||||
httpHeaders.add("Access-Control-Expose-Headers", "Location, Content-Disposition");
|
||||
httpHeaders.add("Access-Control-Allow-Methods", "POST, PUT, GET, DELETE, HEAD, OPTIONS");
|
||||
httpHeaders.remove("Content-Type");
|
||||
httpHeaders.add("Content-Type", "application/json;charset=UTF-8");
|
||||
return response;
|
||||
}
|
||||
}
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.jaxrs;
|
||||
|
||||
import javax.ws.rs.core.MultivaluedMap;
|
||||
|
||||
import com.sun.jersey.spi.container.ContainerRequest;
|
||||
import com.sun.jersey.spi.container.ContainerResponse;
|
||||
import com.sun.jersey.spi.container.ContainerResponseFilter;
|
||||
|
||||
public class AccessControlResponseFilter implements ContainerResponseFilter {
|
||||
|
||||
@Override
|
||||
public ContainerResponse filter(ContainerRequest request, ContainerResponse response) {
|
||||
MultivaluedMap<String, Object> httpHeaders = response.getHttpHeaders();
|
||||
httpHeaders.add("Access-Control-Allow-Origin", "*");
|
||||
httpHeaders.add("Access-Control-Allow-Headers", "Authorization, Origin, X-Requested-With, Content-Type");
|
||||
httpHeaders.add("Access-Control-Expose-Headers", "Location, Content-Disposition");
|
||||
httpHeaders.add("Access-Control-Allow-Methods", "POST, PUT, GET, DELETE, HEAD, OPTIONS");
|
||||
return response;
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,7 @@
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console -clean"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dexpedition.udp.port=2010 -Xmx6000m -XX:+UseG1GC -Djetty.home=${project_loc:com.sap.sailing.server}/../target/configuration/jetty -Djava.util.logging.config.file=${project_loc:com.sap.sailing.server}/../target/configuration/logging_debug.properties -Dkiwo.results=${project_loc:com.sap.sailing.kiworesultimport.test}/resources -Dpersistentcompetitors.clear=false -XX:+UseMembar -Digtimi.client.id=7fcdd217e0aa16090edb4ad55b09ec43b2021090e209541fc9b7003c2a2b70c6 -Digtimi.client.secret=aa569cf4909bdc7b0e04b11873f3c4ea20687421e010fcc25b771cca9e6f3f9a -Digtimi.client.redirecturi=http://127.0.0.1:8888/igtimi/oauth/v1/authorizationcallback -DspatialWind=true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dfile.encoding=cp1252 -Dexpedition.udp.port=2010 -Xmx6000m -XX:+UseG1GC -Djetty.home=${project_loc:com.sap.sailing.server}/../target/configuration/jetty -Djava.util.logging.config.file=${project_loc:com.sap.sailing.server}/../target/configuration/logging_debug.properties -Dkiwo.results=${project_loc:com.sap.sailing.kiworesultimport.test}/resources -Dpersistentcompetitors.clear=false -XX:+UseMembar -Digtimi.client.id=7fcdd217e0aa16090edb4ad55b09ec43b2021090e209541fc9b7003c2a2b70c6 -Digtimi.client.secret=aa569cf4909bdc7b0e04b11873f3c4ea20687421e010fcc25b771cca9e6f3f9a -Digtimi.client.redirecturi=http://127.0.0.1:8888/igtimi/oauth/v1/authorizationcallback -DspatialWind=true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc}"/>
|
||||
<stringAttribute key="pde.version" value="3.3"/>
|
||||
<stringAttribute key="profilingTraceType-ALLOCATION_TRACE" value="KEY_APPLICATION_FILTER%CTX_KEY%*%CTX_ENTRY%INCREASE_COUNT%CTX_KEY%8192%CTX_ENTRY%KEY_MIN_SIZE%CTX_KEY%32%CTX_ENTRY%KEY_MAX_SIZE%CTX_KEY%65536%CTX_ENTRY%KEY_INC_LINE_NRS%CTX_KEY%true%CTX_ENTRY%KEY_SESSION_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_ENABLEMENT%CTX_KEY%false%CTX_ENTRY%CLASS_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_USER_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_REQUEST_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_ADAPTIVE%CTX_KEY%false%CTX_ENTRY%"/>
|
||||
|
||||
+1
-1
@@ -103,7 +103,7 @@ public class RemoteSailingServerSet {
|
||||
logger.fine("Updating events for remote server "+ref+" from URL "+eventsURL);
|
||||
URLConnection urlConnection = eventsURL.openConnection();
|
||||
urlConnection.connect();
|
||||
bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
|
||||
bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));
|
||||
JSONParser parser = new JSONParser();
|
||||
Object eventsAsObject = parser.parse(bufferedReader);
|
||||
EventBaseJsonDeserializer deserializer = new EventBaseJsonDeserializer(new VenueJsonDeserializer(
|
||||
|
||||
Reference in new issue
Block a user