diff --git a/Plan/common/src/main/java/com/djrapitops/plan/modules/APFModule.java b/Plan/common/src/main/java/com/djrapitops/plan/modules/APFModule.java index 3c9c06148..96ece2542 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/modules/APFModule.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/modules/APFModule.java @@ -47,7 +47,7 @@ public class APFModule { @Named("currentVersion") @Singleton String provideCurrentVersion(IPlugin plugin) { - return plugin.getVersion(); + return plugin.getVersion().replace("%buildNumber%", "?"); } @Provides diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/update/VersionCheckSystem.java b/Plan/common/src/main/java/com/djrapitops/plan/system/update/VersionCheckSystem.java index db5378398..af914980b 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/update/VersionCheckSystem.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/update/VersionCheckSystem.java @@ -103,10 +103,45 @@ public class VersionCheckSystem implements SubSystem { return Optional.ofNullable(newVersionAvailable); } - public Optional getUpdateHtml() { + public Optional getUpdateButton() { return getNewVersionAvailable() - .map(v -> v.isTrusted() ? "" + - "

v" + v.getVersion().getVersionString() + " available!

" : ""); + .filter(VersionInfo::isTrusted) + .map(v -> "" + ); + } + + public String getCurrentVersionButton() { + return ""; + } + + public String getUpdateModal() { + return getNewVersionAvailable() + .filter(VersionInfo::isTrusted) + .map(v -> "
" + + "
" + + " Version " + v.getVersion().getVersionString() + " is Available!" + + "
" + + "
" + // Close modal-header + "
" + + "

A new version has been released and is now available for download." + + (v.isRelease() ? "" : "
This version is a DEV release.") + "

" + + "" + + " View Changelog" + + "" + + " Download Plan-4.6.2.jar" + + "
") // Close modal-body + .orElse("
" + + "
" + + " You have version " + getCurrentVersion() + "" + + "
" + + "
" + // Close modal-header + "
" + + "

You are running the latest version.

" + + "
"); // Close modal-body } public String getCurrentVersion() { diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/response/errors/ErrorResponse.java b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/response/errors/ErrorResponse.java index 72d12ad5b..2dcb20cfa 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/response/errors/ErrorResponse.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/webserver/response/errors/ErrorResponse.java @@ -48,15 +48,15 @@ public class ErrorResponse extends PageResponse { } public void replacePlaceholders() { - Map placeHolders = new HashMap<>(); - placeHolders.put("title", title); + Map placeholders = new HashMap<>(); + placeholders.put("title", title); String[] split = title.split(">", 3); - placeHolders.put("titleText", split.length == 3 ? split[2] : title); - placeHolders.put("paragraph", paragraph); - placeHolders.put("version", versionCheckSystem.getCurrentVersion()); - placeHolders.put("update", versionCheckSystem.getUpdateHtml().orElse("")); + placeholders.put("titleText", split.length == 3 ? split[2] : title); + placeholders.put("paragraph", paragraph); + placeholders.put("version", versionCheckSystem.getUpdateButton().orElse(versionCheckSystem.getCurrentVersionButton())); + placeholders.put("updateModal", versionCheckSystem.getUpdateModal()); - setContent(StringSubstitutor.replace(getContent(), placeHolders)); + setContent(StringSubstitutor.replace(getContent(), placeholders)); } public void setTitle(String title) { diff --git a/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/NetworkPage.java b/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/NetworkPage.java index 667fffe7d..d8e54ebec 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/NetworkPage.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/NetworkPage.java @@ -85,7 +85,8 @@ public class NetworkPage implements Page { placeholders.put("avgPingColor", theme.getValue(ThemeVal.GRAPH_AVG_PING)); placeholders.put("timeZone", config.getTimeZoneOffsetHours()); - placeholders.put("update", versionCheckSystem.getUpdateHtml().orElse("")); + placeholders.put("version", versionCheckSystem.getUpdateButton().orElse(versionCheckSystem.getCurrentVersionButton())); + placeholders.put("updateModal", versionCheckSystem.getUpdateModal()); List extensionData = dbSystem.getDatabase() .query(new ExtensionServerDataQuery(serverUUID)); diff --git a/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/PlayerPage.java b/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/PlayerPage.java index 99d0e9412..69b4b77e1 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/PlayerPage.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/PlayerPage.java @@ -90,33 +90,33 @@ public class PlayerPage implements Page { long now = System.currentTimeMillis(); UUID playerUUID = player.getUnsafe(PlayerKeys.UUID); - PlaceholderReplacer replacer = new PlaceholderReplacer(); + PlaceholderReplacer placeholders = new PlaceholderReplacer(); - replacer.put("refresh", clockLongFormatter.apply(now)); - replacer.put("refreshFull", secondLongFormatter.apply(now)); - replacer.put("version", versionCheckSystem.getCurrentVersion()); - replacer.put("update", versionCheckSystem.getUpdateHtml().orElse("")); - replacer.put("timeZone", config.getTimeZoneOffsetHours()); + placeholders.put("refresh", clockLongFormatter.apply(now)); + placeholders.put("refreshFull", secondLongFormatter.apply(now)); + placeholders.put("version", versionCheckSystem.getUpdateButton().orElse(versionCheckSystem.getCurrentVersionButton())); + placeholders.put("updateModal", versionCheckSystem.getUpdateModal()); + placeholders.put("timeZone", config.getTimeZoneOffsetHours()); String playerName = player.getValue(PlayerKeys.NAME).orElse(playerUUID.toString()); - replacer.put("playerName", playerName); + placeholders.put("playerName", playerName); - replacer.put("worldPieColors", theme.getValue(ThemeVal.GRAPH_WORLD_PIE)); - replacer.put("gmPieColors", theme.getValue(ThemeVal.GRAPH_GM_PIE)); - replacer.put("serverPieColors", theme.getValue(ThemeVal.GRAPH_SERVER_PREF_PIE)); - replacer.put("firstDay", 1); + placeholders.put("worldPieColors", theme.getValue(ThemeVal.GRAPH_WORLD_PIE)); + placeholders.put("gmPieColors", theme.getValue(ThemeVal.GRAPH_GM_PIE)); + placeholders.put("serverPieColors", theme.getValue(ThemeVal.GRAPH_SERVER_PREF_PIE)); + placeholders.put("firstDay", 1); if (serverInfo.getServer().isProxy()) { - replacer.put("backButton", "
  • arrow_backcloud
  • "); + placeholders.put("backButton", "
  • arrow_backcloud
  • "); } else { - replacer.put("backButton", "
  • arrow_backstorage
  • "); + placeholders.put("backButton", "
  • arrow_backstorage
  • "); } PlayerPluginTab pluginTabs = pageFactory.inspectPluginTabs(playerUUID); - replacer.put("navPluginsTabs", pluginTabs.getNav()); - replacer.put("pluginsTabs", pluginTabs.getTab()); + placeholders.put("navPluginsTabs", pluginTabs.getNav()); + placeholders.put("pluginsTabs", pluginTabs.getTab()); - return replacer.apply(files.getCustomizableResourceOrDefault("web/player.html").asString()); + return placeholders.apply(files.getCustomizableResourceOrDefault("web/player.html").asString()); } } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/PlayersPage.java b/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/PlayersPage.java index 1c0a003aa..0543ecac5 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/PlayersPage.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/PlayersPage.java @@ -70,22 +70,22 @@ public class PlayersPage implements Page { @Override public String toHtml() throws ParseException { try { - PlaceholderReplacer placeholderReplacer = new PlaceholderReplacer(); + PlaceholderReplacer placeholders = new PlaceholderReplacer(); - placeholderReplacer.put("version", versionCheckSystem.getCurrentVersion()); - placeholderReplacer.put("update", versionCheckSystem.getUpdateHtml().orElse("")); + placeholders.put("version", versionCheckSystem.getUpdateButton().orElse(versionCheckSystem.getCurrentVersionButton())); + placeholders.put("updateModal", versionCheckSystem.getUpdateModal()); if (serverInfo.getServer().isProxy()) { - placeholderReplacer.put("networkName", config.get(ProxySettings.NETWORK_NAME)); + placeholders.put("networkName", config.get(ProxySettings.NETWORK_NAME)); } else { - placeholderReplacer.put("networkName", config.get(PluginSettings.SERVER_NAME)); + placeholders.put("networkName", config.get(PluginSettings.SERVER_NAME)); } timings.start("Players page players table parsing"); List playerContainers = database.query(ContainerFetchQueries.fetchAllPlayerContainers()); - placeholderReplacer.put("playersTable", tables.playerTableForPlayersPage(playerContainers).parseHtml()); + placeholders.put("playersTable", tables.playerTableForPlayersPage(playerContainers).parseHtml()); timings.end("Pages", "Players page players table parsing"); - return placeholderReplacer.apply(files.getCustomizableResourceOrDefault("web/players.html").asString()); + return placeholders.apply(files.getCustomizableResourceOrDefault("web/players.html").asString()); } catch (Exception e) { throw new ParseException(e); } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/ServerPage.java b/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/ServerPage.java index 624fe32a7..9c3db5926 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/ServerPage.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/utilities/html/pages/ServerPage.java @@ -118,7 +118,8 @@ public class ServerPage implements Page { } else { placeholders.put("backButton", ""); } - placeholders.put("update", versionCheckSystem.getUpdateHtml().orElse("")); + placeholders.put("version", versionCheckSystem.getUpdateButton().orElse(versionCheckSystem.getCurrentVersionButton())); + placeholders.put("updateModal", versionCheckSystem.getUpdateModal()); List extensionData = dbSystem.getDatabase() .query(new ExtensionServerDataQuery(server.getUuid())); diff --git a/Plan/common/src/main/resources/assets/plan/web/error.html b/Plan/common/src/main/resources/assets/plan/web/error.html index cb9d5822d..89c61e1f8 100644 --- a/Plan/common/src/main/resources/assets/plan/web/error.html +++ b/Plan/common/src/main/resources/assets/plan/web/error.html @@ -56,9 +56,9 @@ - + +
    + ${version}
    @@ -230,28 +230,7 @@ tabindex="-1">