mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-07 12:51:02 +00:00
Merge remote-tracking branch 'origin/newhome' into newhome_with_leaderboard
This commit is contained in:
commit
bb48c3cc79
10 files changed
+49
-11
No files matched your search
@@ -19,11 +19,12 @@ Like businesses, sailors need the latest information to make strategic decisions
|
||||
* [[Monitoring Apache and RabbitMQ|wiki/monitoring-apache-and-rabbitmq]]
|
||||
* [[JMX Support|wiki/jmx]]
|
||||
* Information for Developers
|
||||
* [[Cook Book|wiki/cook-book]]
|
||||
* [[OnBoarding Information|wiki/onboarding]]
|
||||
* [[Cook Book|wiki/cook-book]]
|
||||
* [[Building and Deploying|wiki/building-and-deploying]]
|
||||
* [[Continuous Integration with Hudson/Jenkins|wiki/ci]]
|
||||
* [[UI Tests with Selenium|wiki/selenium-ui-tests]]
|
||||
* [[Profiling|wiki/profiling]]
|
||||
* [[Typical Development Scenarios|wiki/typical-development-scenarios]]
|
||||
* [[Load Tests|wiki/server-load-tests]]
|
||||
* [[Server Replication|wiki/server-replication]]
|
||||
|
||||
+1
@@ -26,6 +26,7 @@ public interface TextMessages extends Messages {
|
||||
String pleaseTryAgain();
|
||||
String reloadPage();
|
||||
String errorMessageLoadingData();
|
||||
String raceNotScheduled();
|
||||
|
||||
String countdownDays();
|
||||
String countdownHours();
|
||||
|
||||
+1
@@ -18,6 +18,7 @@ pleaseEnterASearchTerm=Please enter a search term.
|
||||
pleaseTryAgain=Please try again...
|
||||
reloadPage=Reload page
|
||||
errorMessageLoadingData=An error occured while loading the data for this page.
|
||||
raceNotScheduled=Not scheduled.
|
||||
|
||||
countdownDays=Days
|
||||
countdownHours=Hrs
|
||||
|
||||
+1
@@ -18,6 +18,7 @@ pleaseEnterASearchTerm=Bitte gebe einen Suchbegriff ein.
|
||||
pleaseTryAgain=Bitte versuchen sie es erneut...
|
||||
reloadPage=Seite neu laden
|
||||
errorMessageLoadingData=Beim Laden der Daten für diese Seite ist ein Fehler aufgetreten.
|
||||
raceNotScheduled=Keine Startzeit bekannt
|
||||
|
||||
countdownDays=Tage
|
||||
countdownHours=Std.
|
||||
|
||||
+22
-5
@@ -25,7 +25,7 @@ import com.sap.sse.gwt.client.player.Timer;
|
||||
public class EventRegattaRacesRace extends UIObject {
|
||||
private static EventRegattaRacesRaceUiBinder uiBinder = GWT.create(EventRegattaRacesRaceUiBinder.class);
|
||||
|
||||
private enum SimpleRaceStates { NOT_TRACKED, TRACKED_AND_NOT_LIVE, TRACKED_AND_LIVE };
|
||||
private enum SimpleRaceStates { NOT_TRACKED, TRACKED_AND_FINISHED, TRACKED_AND_RUNNING, TRACKED_BUT_NOT_SCHEDULED };
|
||||
|
||||
interface EventRegattaRacesRaceUiBinder extends UiBinder<DivElement, EventRegattaRacesRace> {
|
||||
}
|
||||
@@ -38,6 +38,7 @@ public class EventRegattaRacesRace extends UIObject {
|
||||
@UiField SpanElement averageRaceWind;
|
||||
|
||||
@UiField DivElement raceNotTrackedDiv;
|
||||
@UiField DivElement raceNotScheduledDiv;
|
||||
@UiField DivElement watchRaceDiv;
|
||||
@UiField DivElement analyzeRaceDiv;
|
||||
@UiField AnchorElement watchRaceLink;
|
||||
@@ -83,7 +84,7 @@ public class EventRegattaRacesRace extends UIObject {
|
||||
EventRegattaRacesResources.INSTANCE.css().ensureInjected();
|
||||
setElement(uiBinder.createAndBindUi(this));
|
||||
|
||||
allConditionalElements = new Element[] {raceWinnerDiv, raceLeaderDiv, watchRaceDiv, analyzeRaceDiv, raceNotTrackedDiv,
|
||||
allConditionalElements = new Element[] {raceWinnerDiv, raceLeaderDiv, watchRaceDiv, analyzeRaceDiv, raceNotTrackedDiv, raceNotScheduledDiv,
|
||||
raceFeaturesDiv, legProgressDiv, raceFlagDiv, windStatusDiv };
|
||||
|
||||
if(fleet.getColor() != null) {
|
||||
@@ -127,7 +128,20 @@ public class EventRegattaRacesRace extends UIObject {
|
||||
SimpleRaceStates simpleRaceState = SimpleRaceStates.NOT_TRACKED;
|
||||
|
||||
if(race != null && race.trackedRace != null) {
|
||||
simpleRaceState = isLive() ? SimpleRaceStates.TRACKED_AND_LIVE : SimpleRaceStates.TRACKED_AND_NOT_LIVE;
|
||||
if(isLive()) {
|
||||
simpleRaceState = SimpleRaceStates.TRACKED_AND_RUNNING;
|
||||
if(race.startOfRace == null) {
|
||||
simpleRaceState = SimpleRaceStates.TRACKED_BUT_NOT_SCHEDULED;
|
||||
} else if (race.endOfRace != null) {
|
||||
simpleRaceState = SimpleRaceStates.TRACKED_AND_FINISHED;
|
||||
}
|
||||
} else {
|
||||
if(race.startOfRace == null) {
|
||||
simpleRaceState = SimpleRaceStates.TRACKED_BUT_NOT_SCHEDULED;
|
||||
} else if (race.endOfRace != null) {
|
||||
simpleRaceState = SimpleRaceStates.TRACKED_AND_FINISHED;
|
||||
}
|
||||
}
|
||||
}
|
||||
return simpleRaceState;
|
||||
}
|
||||
@@ -147,7 +161,10 @@ public class EventRegattaRacesRace extends UIObject {
|
||||
case NOT_TRACKED:
|
||||
showElement(raceNotTrackedDiv);
|
||||
break;
|
||||
case TRACKED_AND_LIVE:
|
||||
case TRACKED_BUT_NOT_SCHEDULED:
|
||||
showElement(raceNotScheduledDiv);
|
||||
break;
|
||||
case TRACKED_AND_RUNNING:
|
||||
showElement(watchRaceDiv);
|
||||
|
||||
if(race.startOfRace != null) {
|
||||
@@ -164,7 +181,7 @@ public class EventRegattaRacesRace extends UIObject {
|
||||
}
|
||||
|
||||
break;
|
||||
case TRACKED_AND_NOT_LIVE:
|
||||
case TRACKED_AND_FINISHED:
|
||||
showElement(analyzeRaceDiv);
|
||||
|
||||
if(race.trackedRaceStatistics.hasLeaderData && race.trackedRaceStatistics.leaderOrWinner != null) {
|
||||
|
||||
+3
@@ -41,6 +41,9 @@
|
||||
<div ui:field="raceNotTrackedDiv" class="{local_res.css.eventregattarace_action} {local_res.css.eventregattarace_actiondisabled}">
|
||||
<ui:text from='{i18n.eventRegattaRaceNotTracked}'/>
|
||||
</div>
|
||||
<div ui:field="raceNotScheduledDiv" class="{local_res.css.eventregattarace_action} {local_res.css.eventregattarace_actiondisabled}">
|
||||
<ui:text from='{i18n.raceNotScheduled}'/>
|
||||
</div>
|
||||
<div ui:field="watchRaceDiv" class="{local_res.css.eventregattarace_action}">
|
||||
<a ui:field="watchRaceLink" class="{res.mainCss.button} {local_res.css.eventregattarace_action_watch}"><ui:text from='{i18n.eventRegattaRaceWatch}'/></a>
|
||||
</div>
|
||||
|
||||
+3
-3
@@ -23,9 +23,9 @@ public abstract class AbstractEventsView extends Composite implements EventsView
|
||||
@Override
|
||||
public void setEvents(List<EventBaseDTO> events) {
|
||||
for(EventBaseDTO event: events) {
|
||||
if(event.startDate != null) {
|
||||
if(DateUtil.isDayInPast(event.startDate)) {
|
||||
// recent event
|
||||
if(event.startDate != null && event.endDate != null) {
|
||||
if(DateUtil.isDayInPast(event.startDate) || event.isRunning()) {
|
||||
// recent event or live event
|
||||
int year = DateUtil.getYear(event.startDate);
|
||||
List<EventBaseDTO> eventsOfYear = recentEventsOrderedByYear.get(year);
|
||||
if(eventsOfYear == null) {
|
||||
|
||||
+7
-1
@@ -7,6 +7,7 @@ import com.google.gwt.dom.client.AnchorElement;
|
||||
import com.google.gwt.dom.client.DivElement;
|
||||
import com.google.gwt.dom.client.ImageElement;
|
||||
import com.google.gwt.dom.client.SpanElement;
|
||||
import com.google.gwt.dom.client.Style.Display;
|
||||
import com.google.gwt.safehtml.shared.SafeHtml;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
import com.google.gwt.uibinder.client.UiField;
|
||||
@@ -26,7 +27,8 @@ public class RecentEvent extends UIObject {
|
||||
@UiField SpanElement eventStartDate;
|
||||
@UiField AnchorElement eventOverviewLink;
|
||||
@UiField ImageElement eventImage;
|
||||
|
||||
@UiField DivElement isLiveDiv;
|
||||
|
||||
private EventBaseDTO event;
|
||||
|
||||
private final String defaultImageUrl = "http://static.sapsailing.com/ubilabsimages/default/default_event_photo.jpg";
|
||||
@@ -64,6 +66,10 @@ public class RecentEvent extends UIObject {
|
||||
SafeHtml safeHtmlEventName = LongNamesUtil.breakLongName(event.getName());
|
||||
eventName.setInnerSafeHtml(safeHtmlEventName);
|
||||
|
||||
if(!event.isRunning()) {
|
||||
isLiveDiv.getStyle().setDisplay(Display.NONE);
|
||||
}
|
||||
|
||||
venueName.setInnerText(event.venue.getName());
|
||||
eventStartDate.setInnerText(EventDatesFormatterUtil.formatDateRangeWithoutYear(event.startDate, event.endDate));
|
||||
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@
|
||||
<div class="{local_res.css.eventteasercontainer}">
|
||||
<a href="javascript:;" ui:field="eventOverviewLink" class="{local_res.css.eventteaser}">
|
||||
<figure class="{local_res.css.eventteaser_image}"><img ui:field="eventImage" />
|
||||
<div class="{local_res.css.eventteaser_series} {res.mainCss.label}"></div>
|
||||
<div ui:field="isLiveDiv" data-labeltype="live" class="{local_res.css.eventteaser_series} {res.mainCss.label}"><ui:text from='{i18n.live}'/></div>
|
||||
</figure>
|
||||
<div class="{local_res.css.eventteaser_name}"><span ui:field="eventName" /></div>
|
||||
<div class="{local_res.css.eventteaser_location}">
|
||||
|
||||
+8
@@ -52,6 +52,14 @@ public class EventBaseDTO extends NamedDTO implements IsSerializable {
|
||||
this.leaderboardGroups = leaderboardGroups;
|
||||
}
|
||||
|
||||
public boolean isRunning() {
|
||||
Date now = new Date();
|
||||
if(startDate != null && endDate != null && (now.after(startDate) && now.before(endDate))) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user