mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-05 11:53:53 +00:00
pass on showRaceDetails URL parameter consistently
This commit is contained in:
1 parent
348588816f
commit
f67ad453be
11 files changed
+34
-23
No files matched your search
+1
-1
@@ -19,7 +19,7 @@ public class LeaderboardPanelMock extends LeaderboardPanel {
|
||||
StringMessages stringConstants) {
|
||||
super(sailingService, null, LeaderboardSettingsFactory.getInstance().createNewDefaultSettings(
|
||||
/* racesToShow */null, /* namesOfRacesToShow */ null, null, /* autoExpandFirstRace */false), new CompetitorSelectionModel(
|
||||
/* hasMultiSelection */true), leaderboardName, null, errorReporter, stringConstants, null);
|
||||
/* hasMultiSelection */true), leaderboardName, null, errorReporter, stringConstants, null, /* showRaceDetails */ true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-1
@@ -60,7 +60,8 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
|
||||
leaderboardGroupConfigPanel.setSize("90%", "90%");
|
||||
tabPanel.add(leaderboardGroupConfigPanel, stringMessages.leaderboardGroupConfiguration(), /*asHTML*/ false);
|
||||
regattaDisplayers.add(leaderboardGroupConfigPanel);
|
||||
final LeaderboardConfigPanel leaderboardConfigPanel = new LeaderboardConfigPanel(sailingService, this, this, stringMessages);
|
||||
final LeaderboardConfigPanel leaderboardConfigPanel = new LeaderboardConfigPanel(sailingService, this, this, stringMessages,
|
||||
/* showRaceDetails */ true);
|
||||
leaderboardConfigPanel.setSize("90%", "90%");
|
||||
tabPanel.add(leaderboardConfigPanel, stringMessages.leaderboardConfiguration(), /* asHTML */ false);
|
||||
regattaDisplayers.add(leaderboardConfigPanel);
|
||||
|
||||
+2
-1
@@ -120,7 +120,7 @@ public class LeaderboardConfigPanel extends FormPanel implements RegattaDisplaye
|
||||
private static AnchorTemplates ANCHORTEMPLATE = GWT.create(AnchorTemplates.class);
|
||||
|
||||
public LeaderboardConfigPanel(SailingServiceAsync sailingService, AdminConsoleEntryPoint adminConsole,
|
||||
final ErrorReporter errorReporter, StringMessages theStringConstants) {
|
||||
final ErrorReporter errorReporter, StringMessages theStringConstants, final boolean showRaceDetails) {
|
||||
this.stringMessages = theStringConstants;
|
||||
this.sailingService = sailingService;
|
||||
leaderboardList = new ListDataProvider<StrippedLeaderboardDTO>();
|
||||
@@ -166,6 +166,7 @@ public class LeaderboardConfigPanel extends FormPanel implements RegattaDisplaye
|
||||
public SafeHtml getValue(StrippedLeaderboardDTO object) {
|
||||
String debugParam = Window.Location.getParameter("gwt.codesvr");
|
||||
String link = URLFactory.INSTANCE.encode("/gwt/Leaderboard.html?name=" + object.name
|
||||
+ (showRaceDetails ? "&showRaceDetails=true" : "")
|
||||
+ (debugParam != null && !debugParam.isEmpty() ? "&gwt.codesvr=" + debugParam : ""));
|
||||
return ANCHORTEMPLATE.cell(link, object.name);
|
||||
}
|
||||
|
||||
+6
-4
@@ -25,13 +25,15 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint {
|
||||
@Override
|
||||
public void onModuleLoad() {
|
||||
super.onModuleLoad();
|
||||
final boolean showRaceDetails = Window.Location.getParameter("showRaceDetails") != null
|
||||
&& Window.Location.getParameter("showRaceDetails").equalsIgnoreCase("true");
|
||||
sailingService.getLeaderboardNames(new AsyncCallback<List<String>>() {
|
||||
@Override
|
||||
public void onSuccess(List<String> leaderboardNames) {
|
||||
leaderboardName = Window.Location.getParameter("name");
|
||||
leaderboardGroupName = Window.Location.getParameter("leaderboardGroupName");
|
||||
if (leaderboardNames.contains(leaderboardName)) {
|
||||
createUI();
|
||||
createUI(showRaceDetails);
|
||||
} else {
|
||||
RootPanel.get().add(new Label(stringMessages.noSuchLeaderboard()));
|
||||
}
|
||||
@@ -44,7 +46,7 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint {
|
||||
});
|
||||
}
|
||||
|
||||
private void createUI() {
|
||||
private void createUI(boolean showRaceDetails) {
|
||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(leaderboardGroupName, stringMessages.leaderboard() + " " +leaderboardName, stringMessages);
|
||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||
|
||||
@@ -59,7 +61,7 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint {
|
||||
Timer timer = new Timer(PlayModes.Replay, 1000l);
|
||||
timer.setLivePlayDelayInMillis(5000l);
|
||||
TVViewPanel tvViewPanel = new TVViewPanel(sailingService, stringMessages, this, leaderboardName,
|
||||
userAgentType, null, timer, logoAndTitlePanel, mainPanel);
|
||||
userAgentType, null, timer, logoAndTitlePanel, mainPanel, showRaceDetails);
|
||||
contentScrollPanel.setWidget(tvViewPanel);
|
||||
} else {
|
||||
Timer timer = new Timer(PlayModes.Replay, /* delayBetweenAutoAdvancesInMilliseconds */3000l);
|
||||
@@ -68,7 +70,7 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint {
|
||||
LeaderboardSettingsFactory.getInstance().createNewDefaultSettings(null, null, null, /* autoExpandFirstRace */ false),
|
||||
/* preSelectedRace */ null, new CompetitorSelectionModel(/* hasMultiSelection */ true), timer,
|
||||
leaderboardName, leaderboardGroupName,
|
||||
LeaderboardEntryPoint.this, stringMessages, userAgentType);
|
||||
LeaderboardEntryPoint.this, stringMessages, userAgentType, showRaceDetails);
|
||||
contentScrollPanel.setWidget(leaderboardPanel);
|
||||
}
|
||||
|
||||
|
||||
+14
-8
@@ -209,6 +209,11 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
|
||||
* then sort by it. Otherwise, default sorting will default to the overall rank column.
|
||||
*/
|
||||
private String raceNameForDefaultSorting;
|
||||
|
||||
/**
|
||||
* Can be used to disallow users to drill into the race details.
|
||||
*/
|
||||
private final boolean showRaceDetails;
|
||||
|
||||
private class SettingsClickHandler implements ClickHandler {
|
||||
private final StringMessages stringMessages;
|
||||
@@ -909,21 +914,22 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
|
||||
public LeaderboardPanel(SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName,
|
||||
String leaderboardGroupName, ErrorReporter errorReporter, final StringMessages stringMessages,
|
||||
final UserAgentTypes userAgentType) {
|
||||
final UserAgentTypes userAgentType, boolean showRaceDetails) {
|
||||
this(sailingService, asyncActionsExecutor, settings, /* preSelectedRace */null, competitorSelectionProvider, leaderboardName,
|
||||
leaderboardGroupName, errorReporter, stringMessages, userAgentType);
|
||||
leaderboardGroupName, errorReporter, stringMessages, userAgentType, showRaceDetails);
|
||||
}
|
||||
|
||||
public LeaderboardPanel(SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings, RaceIdentifier preSelectedRace,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName, String leaderboardGroupName,
|
||||
ErrorReporter errorReporter, final StringMessages stringMessages, final UserAgentTypes userAgentType) {
|
||||
ErrorReporter errorReporter, final StringMessages stringMessages, final UserAgentTypes userAgentType, boolean showRaceDetails) {
|
||||
this(sailingService, asyncActionsExecutor, settings, preSelectedRace, competitorSelectionProvider, new Timer(PlayModes.Replay, /* delayBetweenAutoAdvancesInMilliseconds */3000l),
|
||||
leaderboardName, leaderboardGroupName, errorReporter, stringMessages, userAgentType);
|
||||
leaderboardName, leaderboardGroupName, errorReporter, stringMessages, userAgentType, showRaceDetails);
|
||||
}
|
||||
|
||||
public LeaderboardPanel(SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor, LeaderboardSettings settings, RaceIdentifier preSelectedRace,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, Timer timer, String leaderboardName, String leaderboardGroupName,
|
||||
ErrorReporter errorReporter, final StringMessages stringMessages, final UserAgentTypes userAgentType) {
|
||||
ErrorReporter errorReporter, final StringMessages stringMessages, final UserAgentTypes userAgentType, boolean showRaceDetails) {
|
||||
this.showRaceDetails = showRaceDetails;
|
||||
this.sailingService = sailingService;
|
||||
this.asyncActionsExecutor = asyncActionsExecutor;
|
||||
this.preSelectedRace = preSelectedRace;
|
||||
@@ -1036,7 +1042,7 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
|
||||
refreshAndSettingsPanel.add(refreshPanel);
|
||||
refreshAndSettingsPanel.add(settingsAnchor);
|
||||
toolbarPanel.add(refreshAndSettingsPanel, DockPanel.EAST);
|
||||
if (!isEmbedded) {
|
||||
if (!isEmbedded && showRaceDetails) {
|
||||
contentPanel.add(toolbarPanel);
|
||||
}
|
||||
contentPanel.add(getLeaderboardTable());
|
||||
@@ -1611,8 +1617,8 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
|
||||
}
|
||||
|
||||
protected RaceColumn<?> createRaceColumn(RaceColumnDTO raceInLeaderboard) {
|
||||
TextRaceColumn textRaceColumn = new TextRaceColumn(raceInLeaderboard, raceInLeaderboard.hasTrackedRaces(), RACE_COLUMN_HEADER_STYLE,
|
||||
RACE_COLUMN_STYLE);
|
||||
TextRaceColumn textRaceColumn = new TextRaceColumn(raceInLeaderboard, showRaceDetails
|
||||
&& raceInLeaderboard.hasTrackedRaces(), RACE_COLUMN_HEADER_STYLE, RACE_COLUMN_STYLE);
|
||||
return textRaceColumn;
|
||||
}
|
||||
|
||||
|
||||
+4
-5
@@ -58,7 +58,7 @@ public class TVViewPanel extends SimplePanel implements RaceTimesInfoProviderLis
|
||||
|
||||
public TVViewPanel(SailingServiceAsync sailingService, StringMessages stringMessages, ErrorReporter errorReporter,
|
||||
String leaderboardName, UserAgentTypes userAgentType, UserDTO userDTO, Timer timer,
|
||||
LogoAndTitlePanel logoAndTitlePanel, DockLayoutPanel dockPanel) {
|
||||
LogoAndTitlePanel logoAndTitlePanel, DockLayoutPanel dockPanel, boolean showRaceDetails) {
|
||||
setSize("100%", "100%");
|
||||
this.sailingService = sailingService;
|
||||
this.stringMessages = stringMessages;
|
||||
@@ -76,20 +76,19 @@ public class TVViewPanel extends SimplePanel implements RaceTimesInfoProviderLis
|
||||
timer.play();
|
||||
raceTimesInfoProvider = new RaceTimesInfoProvider(sailingService, errorReporter, new ArrayList<RegattaAndRaceIdentifier>(), 1000l);
|
||||
raceTimesInfoProvider.addRaceTimesInfoProviderListener(this);
|
||||
|
||||
leaderboardPanel = createLeaderboardPanel(leaderboardName);
|
||||
leaderboardPanel = createLeaderboardPanel(leaderboardName, showRaceDetails);
|
||||
leaderboard = null;
|
||||
showLeaderboard();
|
||||
}
|
||||
|
||||
private LeaderboardPanel createLeaderboardPanel(String leaderboardName) {
|
||||
private LeaderboardPanel createLeaderboardPanel(String leaderboardName, boolean showRaceDetails) {
|
||||
LeaderboardSettings settings = LeaderboardSettingsFactory.getInstance().createNewDefaultSettings(null, null, null, /* autoExpandFirstRace */ false);
|
||||
CompetitorSelectionModel selectionModel = new CompetitorSelectionModel(/* hasMultiSelection */ true);
|
||||
Timer timer = new Timer(PlayModes.Live, /* delayBetweenAutoAdvancesInMilliseconds */3000l);
|
||||
timer.play();
|
||||
LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, new AsyncActionsExecutor(), settings,
|
||||
/* preSelectedRace */null, selectionModel, timer, leaderboardName, null, errorReporter, stringMessages,
|
||||
userAgentType) {
|
||||
userAgentType, showRaceDetails) {
|
||||
@Override
|
||||
protected void setLeaderboard(LeaderboardDTO leaderboard) {
|
||||
super.setLeaderboard(leaderboard);
|
||||
|
||||
+1
-1
@@ -366,7 +366,7 @@ public class EditableLeaderboardPanel extends LeaderboardPanel {
|
||||
super(sailingService, asyncActionsExecutor, LeaderboardSettingsFactory.getInstance().createNewDefaultSettings(
|
||||
/* racesToShow */ null, /* namesOfRacesToShow */ null, null, /* autoExpandFirstRace */false),
|
||||
new CompetitorSelectionModel(/* hasMultiSelection */true),
|
||||
leaderboardName, leaderboardGroupName, errorReporter, stringMessages, userAgentType);
|
||||
leaderboardName, leaderboardGroupName, errorReporter, stringMessages, userAgentType, /* showRaceDetails */ true);
|
||||
ImageResource importIcon = resources.importIcon();
|
||||
Anchor importAnchor = new Anchor(AbstractImagePrototype.create(importIcon).getSafeHtml());
|
||||
getRefreshAndSettingsPanel().insert(importAnchor, 0);
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ public class GlobalNavigationPanel extends FlowPanel {
|
||||
}
|
||||
|
||||
if (leaderboardName != null && !leaderboardName.isEmpty()) {
|
||||
String leaderBoardLink = leaderboardViewLink + "?name=" + leaderboardName;
|
||||
String leaderBoardLink = leaderboardViewLink + "?name=" + leaderboardName + "&showRaceDetails=true";
|
||||
if (leaderboardGroupName != null && !leaderboardGroupName.isEmpty()) {
|
||||
leaderBoardLink += "&leaderboardGroupName=" + leaderboardGroupName;
|
||||
}
|
||||
|
||||
+1
-1
@@ -199,7 +199,7 @@ public class RaceBoardPanel extends FormPanel implements RegattaDisplayer, RaceS
|
||||
/* nameOfRaceColumnToShow */null, /* nameOfRaceToShow */selectedRaceIdentifier.getRaceName());
|
||||
return new LeaderboardPanel(sailingService, asyncActionsExecutor, leaderBoardSettings, selectedRaceIdentifier,
|
||||
competitorSelectionModel, timer, leaderboardName, leaderboardGroupName, errorReporter, stringMessages,
|
||||
userAgentType);
|
||||
userAgentType, /* showRaceDetails */ true);
|
||||
}
|
||||
|
||||
private <SettingsType> void addComponentToNavigationMenu(final ComponentViewer componentViewer,
|
||||
|
||||
+1
@@ -353,6 +353,7 @@ public class LeaderboardGroupOverviewPanel extends FormPanel {
|
||||
LeaderboardGroupDTO selectedGroup = groupsSelectionModel.getSelectedObject();
|
||||
String debugParam = Window.Location.getParameter("gwt.codesvr");
|
||||
String link = URLFactory.INSTANCE.encode("/gwt/Leaderboard.html?name=" + leaderboard.name
|
||||
+ (showRaceDetails ? "&showRaceDetails=true" : "")
|
||||
+ "&leaderboardGroupName=" + selectedGroup.name + "&root=overview"
|
||||
+ (debugParam != null && !debugParam.isEmpty() ? "&gwt.codesvr=" + debugParam : ""));
|
||||
return ANCHORTEMPLATE.anchor(link, leaderboard.name);
|
||||
|
||||
+1
@@ -172,6 +172,7 @@ public class LeaderboardGroupPanel extends FormPanel implements HasWelcomeWidget
|
||||
public SafeHtml getValue(StrippedLeaderboardDTO leaderboard) {
|
||||
String debugParam = Window.Location.getParameter("gwt.codesvr");
|
||||
String link = URLFactory.INSTANCE.encode("/gwt/Leaderboard.html?name=" + leaderboard.name
|
||||
+ (showRaceDetails ? "&showRaceDetails=true" : "")
|
||||
+ "&leaderboardGroupName=" + group.name + "&root=" + root
|
||||
+ (debugParam != null && !debugParam.isEmpty() ? "&gwt.codesvr=" + debugParam : ""));
|
||||
if (embedded) {
|
||||
|
||||
Reference in new issue
Block a user