mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-06 12:23:55 +00:00
Merge branch 'master' into dev
This commit is contained in:
commit
bbcb47e3c1
6 files changed
+227
-30
No files matched your search
@@ -35,5 +35,8 @@ bin.includes = META-INF/,\
|
||||
com.sap.sailing.gwt.ui.YoutubePopup/,\
|
||||
YoutubePopup.html,\
|
||||
TvView.html,\
|
||||
com.sap.sailing.gwt.ui.TvView/
|
||||
com.sap.sailing.gwt.ui.TvView/,\
|
||||
BrowserUnsupported.html,\
|
||||
PolarSheets.css,\
|
||||
PolarSheets.html
|
||||
output.. = WEB-INF/classes/
|
||||
+2
-4
@@ -309,11 +309,9 @@ public class LeaderboardGroupPanel extends FormPanel implements HasWelcomeWidget
|
||||
b.append(TEXTTEMPLATE.textWithClass(fleet.name, 50, STYLE_TABLE_TEXT));
|
||||
} else {
|
||||
String displayName = fleet.name;
|
||||
if ("Default".equals(fleet.name)) {
|
||||
b.append(TEXTTEMPLATE.textWithClass("", 70, STYLE_TABLE_TEXT));
|
||||
} else {
|
||||
if (! "Default".equals(fleet.name)) {
|
||||
b.append(TEXTTEMPLATE.textWithClass(displayName, 50, STYLE_TABLE_TEXT));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
renderRacesToHTml(leaderboard.name, raceColumns, fleet, b);
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" >
|
||||
<head>
|
||||
<title>Extreme Sailing Series leaderboard</title>
|
||||
<link rel="stylesheet" href="../css/leaderboard.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="../css/tablesorter.css" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery-latest.js"></script>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="jquery.tablesorter.js"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$.getJSON('http://ess40-2012.sapsailing.com/sailingserver/leaderboard?leaderboardName=Extreme%2040%20Rio', function (data) {
|
||||
|
||||
var h1; h2;
|
||||
var Header = new Array();
|
||||
var Row = new Array();
|
||||
var Values = new Array();
|
||||
var Competitors = new Array();
|
||||
var toWrite = '';
|
||||
var imgFlagPath = '/gwt/images/flags/';
|
||||
|
||||
h1 = data.name.toString();
|
||||
if(data.scoringComment) {
|
||||
h2 = data.scoringComment.toString();
|
||||
} else {
|
||||
h2 = '';
|
||||
}
|
||||
Header.push("Rank");
|
||||
Header.push("Team");
|
||||
Header = $.merge(Header, data.columnNames);
|
||||
Header.push("∑");
|
||||
Competitors = data.competitors;
|
||||
|
||||
//create HTML Header
|
||||
toWrite += '<thead><tr>';
|
||||
for (var i = 0; i < Header.length; i++) {
|
||||
toWrite += '<th>' + Header[i] + '</th>';
|
||||
};
|
||||
toWrite += '</tr></thead><tbody>';
|
||||
|
||||
//collect Row Data
|
||||
$.each(Competitors, function (index, values) {
|
||||
Row.push(values.rank.toString());
|
||||
Row.push(values.name.toString());
|
||||
Values = values.raceScores;
|
||||
|
||||
//get Competitor Points
|
||||
$.each(Values, function (indexPoints, valuesPoints) {
|
||||
if(valuesPoints.maxPointsReason.toString() != 'NONE') {
|
||||
Row.push(valuesPoints.maxPointsReason.toString());
|
||||
} else {
|
||||
Row.push(valuesPoints.totalPoints.toString());
|
||||
}
|
||||
});
|
||||
|
||||
Row.push(values.totalPoints.toString());
|
||||
//Row complete
|
||||
|
||||
//write Row
|
||||
toWrite += '<tr>';
|
||||
for (var j = 0; j < Header.length; j++) {
|
||||
if (j < Row.length) {
|
||||
if(j == 0) {
|
||||
toWrite += '<td>' + Row[j] + '</td>';
|
||||
} else if(j == 1) {
|
||||
toWrite += '<td style="white-space:nowrap;">';
|
||||
toWrite += '<img style="padding-right:8px;" src="' + imgFlagPath + values.countryCode.toString().toLowerCase() + '.png">';
|
||||
toWrite += Row[j];
|
||||
toWrite + '</td>';
|
||||
} else if (j > 1 && j < (Row.length - 1)) {
|
||||
toWrite += '<td class="leaderboard-points-TotalPoints-NotDiscarded">' + Row[j] + '</td>';
|
||||
} else {
|
||||
toWrite += '<td>' + Row[j] + '</td>';
|
||||
}
|
||||
} else {//fill rest of the Header row
|
||||
toWrite += '<td> </td>';
|
||||
}
|
||||
};
|
||||
toWrite += '</tr>';
|
||||
//Row completed
|
||||
|
||||
//reset Row
|
||||
Row = new Array();
|
||||
});
|
||||
toWrite += '</tbody>';
|
||||
|
||||
$('#h1').text(h1);
|
||||
$('#h2').text(h2);
|
||||
$('#leaderboardTable').html(toWrite);
|
||||
|
||||
$("#leaderboardTable").tablesorter();
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1 id="h1"></h1>
|
||||
<h2 id="h2"></h2>
|
||||
<table id="leaderboardTable" class="tablesorter"></table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,109 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" >
|
||||
<head>
|
||||
<title>Extreme Sailing Series leaderboard</title>
|
||||
<link rel="stylesheet" href="../css/leaderboard.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="../css/tablesorter.css" type="text/css"/>
|
||||
<script type="text/javascript" src="jquery-latest.js"></script>
|
||||
<script type="text/javascript" src="jquery.js"></script>
|
||||
<script type="text/javascript" src="jquery.tablesorter.js"></script>
|
||||
<script type="text/javascript">
|
||||
String.prototype.startsWith = function(str)
|
||||
{ return (this.match("^"+str)==str) }
|
||||
|
||||
$.getJSON('http://ess40-2012.sapsailing.com/sailingserver/leaderboard?leaderboardName=Extreme%20Sailing%20Series%202012%20Overall', function (data) {
|
||||
|
||||
var h1; h2;
|
||||
var Header = new Array();
|
||||
var Row = new Array();
|
||||
var Values = new Array();
|
||||
var Competitors = new Array();
|
||||
var toWrite = '';
|
||||
var imgFlagPath = '/gwt/images/flags/';
|
||||
|
||||
h1 = data.name.toString();
|
||||
if(data.scoringComment) {
|
||||
h2 = data.scoringComment.toString();
|
||||
} else {
|
||||
h2 = '';
|
||||
}
|
||||
Header.push("Rank");
|
||||
Header.push("Team");
|
||||
Header = $.merge(Header, data.columnNames);
|
||||
Header.push("∑");
|
||||
Competitors = data.competitors;
|
||||
|
||||
//create HTML Header
|
||||
toWrite += '<thead><tr>';
|
||||
for (var i = 0; i < Header.length; i++) {
|
||||
var headerText = Header[i];
|
||||
if(headerText.startsWith('Extreme 40 ')) {
|
||||
headerText = headerText.substring(11, headerText.length);
|
||||
}
|
||||
|
||||
toWrite += '<th>' + headerText + '</th>';
|
||||
};
|
||||
toWrite += '</tr></thead><tbody>';
|
||||
|
||||
//collect Row Data
|
||||
$.each(Competitors, function (index, values) {
|
||||
Row.push(values.rank.toString());
|
||||
Row.push(values.name.toString());
|
||||
Values = values.raceScores;
|
||||
|
||||
//get Competitor Points
|
||||
$.each(Values, function (indexPoints, valuesPoints) {
|
||||
if(valuesPoints.maxPointsReason.toString() != 'NONE') {
|
||||
Row.push(valuesPoints.maxPointsReason.toString());
|
||||
} else {
|
||||
Row.push(valuesPoints.totalPoints.toString());
|
||||
}
|
||||
});
|
||||
|
||||
Row.push(values.totalPoints.toString());
|
||||
//Row complete
|
||||
|
||||
//write Row
|
||||
toWrite += '<tr>';
|
||||
for (var j = 0; j < Header.length; j++) {
|
||||
if (j < Row.length) {
|
||||
if(j == 0) {
|
||||
toWrite += '<td>' + Row[j] + '</td>';
|
||||
} else if(j == 1) {
|
||||
toWrite += '<td style="white-space:nowrap;">';
|
||||
toWrite += '<img style="padding-right:8px;" src="' + imgFlagPath + values.countryCode.toString().toLowerCase() + '.png">';
|
||||
toWrite += Row[j];
|
||||
toWrite + '</td>';
|
||||
} else if (j > 1 && j < (Row.length - 1)) {
|
||||
toWrite += '<td class="leaderboard-points-TotalPoints-NotDiscarded">' + Row[j] + '</td>';
|
||||
} else {
|
||||
toWrite += '<td>' + Row[j] + '</td>';
|
||||
}
|
||||
} else {//fill rest of the Header row
|
||||
toWrite += '<td> </td>';
|
||||
}
|
||||
};
|
||||
toWrite += '</tr>';
|
||||
//Row completed
|
||||
|
||||
//reset Row
|
||||
Row = new Array();
|
||||
});
|
||||
toWrite += '</tbody>';
|
||||
|
||||
$('#h1').text(h1);
|
||||
$('#h2').text(h2);
|
||||
$('#leaderboardTable').html(toWrite);
|
||||
|
||||
$("#leaderboardTable").tablesorter();
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1 id="h1"></h1>
|
||||
<h2 id="h2"></h2>
|
||||
<table id="leaderboardTable" class="tablesorter"></table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+9
-24
@@ -82,6 +82,7 @@ public class ESS40ResultsAsCSVServlet extends AbstractCSVHttpServlet {
|
||||
csvLine.add(competitor.getName());
|
||||
csv.add(csvLine);
|
||||
|
||||
// TODO: we should only export complete races where all competitors have valid totalPoints for a race
|
||||
for (RaceColumn raceColumn : raceColumns) {
|
||||
List<Competitor> rankedCompetitorsForColumn = rankedCompetitorsPerColumn.get(raceColumn);
|
||||
if (rankedCompetitorsForColumn == null) {
|
||||
@@ -89,34 +90,18 @@ public class ESS40ResultsAsCSVServlet extends AbstractCSVHttpServlet {
|
||||
timePoint);
|
||||
rankedCompetitorsPerColumn.put(raceColumn, rankedCompetitorsForColumn);
|
||||
}
|
||||
Double netRacePoints = leaderboard.getNetPoints(competitor, raceColumn, timePoint);
|
||||
// Double netRacePoints = leaderboard.getNetPoints(competitor, raceColumn, timePoint);
|
||||
Double totalRacePoints = leaderboard.getTotalPoints(competitor, raceColumn, timePoint);
|
||||
MaxPointsReason maxPointsReason = leaderboard.getMaxPointsReason(competitor, raceColumn,
|
||||
timePoint);
|
||||
// int rank = rankedCompetitorsForColumn.indexOf(competitor)+1;
|
||||
// TrackedRace trackedRace = raceColumn.getTrackedRace(competitor);
|
||||
// if (trackedRace != null) {
|
||||
// int raceRank = trackedRace.getRank(competitor, timePoint);
|
||||
// }
|
||||
// boolean isCorrected = leaderboard.getScoreCorrection().isScoreCorrected(competitor,
|
||||
// raceColumn);
|
||||
boolean isDiscarded = leaderboard.isDiscarded(competitor, raceColumn, timePoint);
|
||||
MaxPointsReason maxPointsReason = leaderboard.getMaxPointsReason(competitor, raceColumn, timePoint);
|
||||
int rank = rankedCompetitorsForColumn.indexOf(competitor)+1;
|
||||
if(totalRacePoints != null) {
|
||||
if (maxPointsReason == null || maxPointsReason == MaxPointsReason.NONE) {
|
||||
csvLine.add(rank);
|
||||
csvLine.add(totalRacePoints);
|
||||
|
||||
if (maxPointsReason == null || maxPointsReason == MaxPointsReason.NONE) {
|
||||
if (!isDiscarded) {
|
||||
if (totalRacePoints != null) {
|
||||
csvLine.add(totalRacePoints);
|
||||
}
|
||||
} else {
|
||||
if (netRacePoints != null) {
|
||||
csvLine.add(netRacePoints);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!isDiscarded) {
|
||||
csvLine.add(maxPointsReason.name());
|
||||
} else {
|
||||
csvLine.add(maxPointsReason.name());
|
||||
csvLine.add(totalRacePoints);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
</p>
|
||||
</div>
|
||||
<div id='navigation'>
|
||||
<a class='navButton event' href='http://ess40-2013.sapsailing.com/gwt/Leaderboard.html?name=Extreme%20Sailing%20Series%202013%20Muscat&showRaceDetails=true&leaderboardGroupName=Extreme%20Sailing%20Series%202013&root=leaderboardGroupPanel;refreshIntervalMillis=10000&lastN=3'>
|
||||
<a class='navButton event' href='http://ess40-2013.sapsailing.com/gwt/Leaderboard.html?name=Extreme%20Sailing%20Series%202013%20Muscat&displayName=Muscat&showRaceDetails=true&leaderboardGroupName=Extreme%20Sailing%20Series%202013&root=leaderboardGroupPanel;refreshIntervalMillis=10000&lastN=3'>
|
||||
Live Muscat Act Leaderboard
|
||||
</a>
|
||||
<a class='navButton overall' href='http://ess40-2013.sapsailing.com/gwt/Leaderboard.html?name=Extreme%20Sailing%20Series%202013%20Overall&showRaceDetails=false&refreshIntervalMillis=10000&displayName=Overall%20Standings&leaderboardGroupName=Extreme%20Sailing%20Series%202013&root=leaderboardGroupPanel'>
|
||||
|
||||
Reference in new issue
Block a user