mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2024-12-27 03:27:37 +01:00
Fixed WorldPie Drilldown (Was missing a module)
This commit is contained in:
parent
3952268e71
commit
ecbdd630a3
@ -203,4 +203,45 @@ public class WorldTimesTable extends UserIDTable {
|
|||||||
close(set, statement);
|
close(set, statement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WorldTimes getWorldTimesOfUser(UUID uuid) throws SQLException {
|
||||||
|
PreparedStatement statement = null;
|
||||||
|
ResultSet set = null;
|
||||||
|
try {
|
||||||
|
String worldIDColumn = worldTable + "." + worldTable.getColumnID();
|
||||||
|
String worldNameColumn = worldTable + "." + worldTable.getColumnWorldName() + " as world_name";
|
||||||
|
String sessionIDColumn = sessionsTable + "." + sessionsTable.getColumnID();
|
||||||
|
statement = prepareStatement("SELECT " +
|
||||||
|
"SUM(" + columnSurvival + ") as survival, " +
|
||||||
|
"SUM(" + columnCreative + ") as creative, " +
|
||||||
|
"SUM(" + columnAdventure + ") as adventure, " +
|
||||||
|
"SUM(" + columnSpectator + ") as spectator, " +
|
||||||
|
worldNameColumn +
|
||||||
|
" FROM " + tableName +
|
||||||
|
" JOIN " + worldTable + " on " + worldIDColumn + "=" + columnWorldId +
|
||||||
|
" WHERE " + columnUserID + "=" + usersTable.statementSelectID
|
||||||
|
);
|
||||||
|
statement.setString(1, uuid.toString());
|
||||||
|
set = statement.executeQuery();
|
||||||
|
String[] gms = GMTimes.getGMKeyArray();
|
||||||
|
|
||||||
|
WorldTimes worldTimes = new WorldTimes(new HashMap<>());
|
||||||
|
while (set.next()) {
|
||||||
|
String worldName = set.getString("world_name");
|
||||||
|
|
||||||
|
Map<String, Long> gmMap = new HashMap<>();
|
||||||
|
gmMap.put(gms[0], set.getLong("survival"));
|
||||||
|
gmMap.put(gms[1], set.getLong("creative"));
|
||||||
|
gmMap.put(gms[2], set.getLong("adventure"));
|
||||||
|
gmMap.put(gms[3], set.getLong("spectator"));
|
||||||
|
GMTimes gmTimes = new GMTimes(gmMap);
|
||||||
|
|
||||||
|
worldTimes.setGMTimesForWorld(worldName, gmTimes);
|
||||||
|
}
|
||||||
|
return worldTimes;
|
||||||
|
} finally {
|
||||||
|
endTransaction(statement);
|
||||||
|
close(set, statement);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ import main.java.com.djrapitops.plan.utilities.file.FileUtil;
|
|||||||
import main.java.com.djrapitops.plan.utilities.html.HtmlStructure;
|
import main.java.com.djrapitops.plan.utilities.html.HtmlStructure;
|
||||||
import main.java.com.djrapitops.plan.utilities.html.HtmlUtils;
|
import main.java.com.djrapitops.plan.utilities.html.HtmlUtils;
|
||||||
import main.java.com.djrapitops.plan.utilities.html.graphs.PunchCardGraphCreator;
|
import main.java.com.djrapitops.plan.utilities.html.graphs.PunchCardGraphCreator;
|
||||||
|
import main.java.com.djrapitops.plan.utilities.html.graphs.WorldPieCreator;
|
||||||
import main.java.com.djrapitops.plan.utilities.html.tables.ActionsTableCreator;
|
import main.java.com.djrapitops.plan.utilities.html.tables.ActionsTableCreator;
|
||||||
|
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
@ -139,7 +140,15 @@ public class InspectPageParser {
|
|||||||
addValue("sessionCount", sessionCount);
|
addValue("sessionCount", sessionCount);
|
||||||
addValue("playtimeTotal", FormatUtils.formatTimeAmount(playTime));
|
addValue("playtimeTotal", FormatUtils.formatTimeAmount(playTime));
|
||||||
|
|
||||||
String puchCardData = PunchCardGraphCreator.createDataSeries(allSessions);
|
String punchCardData = PunchCardGraphCreator.createDataSeries(allSessions);
|
||||||
|
String[] worldPieData = WorldPieCreator.createSeriesData(db.getWorldTimesTable().getWorldTimesOfUser(uuid));
|
||||||
|
|
||||||
|
addValue("worldPieSeries", worldPieData[0]);
|
||||||
|
addValue("gmSeries", worldPieData[1]);
|
||||||
|
|
||||||
|
|
||||||
|
addValue("punchCardData", punchCardData);
|
||||||
|
|
||||||
List<Session> sessionsInLengthOrder = allSessions.stream()
|
List<Session> sessionsInLengthOrder = allSessions.stream()
|
||||||
.sorted(new SessionLengthComparator())
|
.sorted(new SessionLengthComparator())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
@ -73,10 +73,14 @@ public class WorldPieCreator {
|
|||||||
int smallSize = gmTimes.size();
|
int smallSize = gmTimes.size();
|
||||||
int j = 0;
|
int j = 0;
|
||||||
for (Map.Entry<String, Long> entry : gmTimes.entrySet()) {
|
for (Map.Entry<String, Long> entry : gmTimes.entrySet()) {
|
||||||
|
Long time = entry.getValue();
|
||||||
|
if (time == 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
drilldownBuilder.append("['")
|
drilldownBuilder.append("['")
|
||||||
.append(entry.getKey())
|
.append(entry.getKey())
|
||||||
.append("',")
|
.append("',")
|
||||||
.append(entry.getValue())
|
.append(time)
|
||||||
.append("]");
|
.append("]");
|
||||||
|
|
||||||
if (j < smallSize - 1) {
|
if (j < smallSize - 1) {
|
||||||
|
@ -122,7 +122,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="tab-performance" class="tab">
|
<div id="tab-overview" class="tab">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="column"> <!--First row (horizontal)-->
|
<div class="column"> <!--First row (horizontal)-->
|
||||||
<div class="column">
|
<div class="column">
|
||||||
@ -174,6 +174,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<script src="https://www.kryogenix.org/code/browser/sorttable/sorttable.js"></script>
|
<script src="https://www.kryogenix.org/code/browser/sorttable/sorttable.js"></script>
|
||||||
<script src="https://code.highcharts.com/stock/highstock.js"></script>
|
<script src="https://code.highcharts.com/stock/highstock.js"></script>
|
||||||
|
<script src="https://code.highcharts.com/modules/drilldown.js"></script>
|
||||||
<script src="https://code.highcharts.com/maps/modules/map.js"></script>
|
<script src="https://code.highcharts.com/maps/modules/map.js"></script>
|
||||||
<script src="https://code.highcharts.com/mapdata/custom/world.js"></script>
|
<script src="https://code.highcharts.com/mapdata/custom/world.js"></script>
|
||||||
<script src="./js/punchCard.js"></script>
|
<script src="./js/punchCard.js"></script>
|
||||||
@ -181,6 +182,14 @@
|
|||||||
<script src="./js/worldPie.js"></script>
|
<script src="./js/worldPie.js"></script>
|
||||||
<script src="./js/pluginsTabExpand.js"></script>
|
<script src="./js/pluginsTabExpand.js"></script>
|
||||||
<script src="./js/sessionTabExpand.js"></script>
|
<script src="./js/sessionTabExpand.js"></script>
|
||||||
|
<script>
|
||||||
|
var worldSeries = {
|
||||||
|
name:'World Playtime',
|
||||||
|
colorByPoint:true,
|
||||||
|
data: ${worldPieSeries}
|
||||||
|
};
|
||||||
|
var gmSeries = ${gmSeries};
|
||||||
|
</script>
|
||||||
<script>
|
<script>
|
||||||
var navButtons = document.getElementsByClassName("nav-button");
|
var navButtons = document.getElementsByClassName("nav-button");
|
||||||
var tabs = document.getElementsByClassName("tab");
|
var tabs = document.getElementsByClassName("tab");
|
||||||
@ -196,6 +205,9 @@
|
|||||||
tabs[i].style.width = "" + 100 / navButtons.length + "%";
|
tabs[i].style.width = "" + 100 / navButtons.length + "%";
|
||||||
}
|
}
|
||||||
x.style.opacity = "1";
|
x.style.opacity = "1";
|
||||||
|
|
||||||
|
worldPie('worldPie', worldSeries, gmSeries);
|
||||||
|
|
||||||
openFunc(slideIndex)();
|
openFunc(slideIndex)();
|
||||||
|
|
||||||
function openFunc(i) {
|
function openFunc(i) {
|
||||||
|
Loading…
Reference in New Issue
Block a user