diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/html/structure/NavLink.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/html/structure/NavLink.java index 2b3f8770a..15ca17b19 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/html/structure/NavLink.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/html/structure/NavLink.java @@ -17,7 +17,7 @@ package com.djrapitops.plan.delivery.rendering.html.structure; import com.djrapitops.plan.delivery.rendering.html.icon.Icon; -import com.djrapitops.plugin.utilities.Format; +import org.apache.commons.lang3.StringUtils; /** * Html utility for creating navigation link html. @@ -27,29 +27,39 @@ import com.djrapitops.plugin.utilities.Format; public class NavLink { private final Icon icon; + private String tabID; private final String tabName; private final boolean collapsed; - public NavLink(Icon icon, String tabName) { - this(icon, tabName, false); - } - - private NavLink(Icon icon, String tabName, boolean collapsed) { + private NavLink(Icon icon, String tabID, String tabName, boolean collapsed) { this.icon = icon; + this.tabID = tabID; this.tabName = tabName; this.collapsed = collapsed; } public static NavLink main(Icon icon, String tabName) { - return new NavLink(icon, tabName, false); + return new NavLink(icon, null, tabName, false); + } + + public static NavLink main(Icon icon, String tabID, String tabName) { + return new NavLink(icon, tabID, tabName, false); } public static NavLink collapsed(Icon icon, String tabName) { - return new NavLink(icon, tabName, true); + return new NavLink(icon, null, tabName, true); + } + + public static NavLink collapsed(Icon icon, String tabID, String tabName) { + return new NavLink(icon, tabID, tabName, true); + } + + public static String format(String id) { + return StringUtils.replaceChars(StringUtils.lowerCase(id), ' ', '-'); } public String toHtml() { - String tabID = new Format(tabName).justLetters().lowerCase().toString(); + String tabID = getTabID(); if (collapsed) { return "" + icon.toHtml() + ' ' + @@ -62,4 +72,7 @@ public class NavLink { ""; } + private String getTabID() { + return format(tabID != null ? tabID : tabName); + } } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/pages/PlayerPluginTab.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/pages/PlayerPluginTab.java index 24f6f99f6..28ff9fbeb 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/pages/PlayerPluginTab.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/pages/PlayerPluginTab.java @@ -25,7 +25,6 @@ import com.djrapitops.plan.extension.ElementOrder; import com.djrapitops.plan.extension.FormatType; import com.djrapitops.plan.extension.implementation.TabInformation; import com.djrapitops.plan.extension.implementation.results.*; -import com.djrapitops.plugin.utilities.Format; import java.util.*; @@ -86,13 +85,13 @@ public class PlayerPluginTab implements Comparable { private void generate() { if (playerData.isEmpty()) { - nav = NavLink.collapsed(Icon.called("cubes").build(), serverName + " (No Data)").toHtml(); - tab = wrapInTab( + nav = NavLink.collapsed(Icon.called("cubes").build(), "plugins-" + serverName, serverName + " (No Data)").toHtml(); + tab = wrapInWideTab( serverName + " (No Data)", - "

No Extension Data

" + "

No Extension Data

" ); } else { - nav = NavLink.collapsed(Icon.called("cubes").build(), serverName).toHtml(); + nav = NavLink.collapsed(Icon.called("cubes").build(), "plugins-" + serverName, serverName).toHtml(); tab = generatePageTab(); } } @@ -120,11 +119,21 @@ public class PlayerPluginTab implements Comparable { tabBuilder.append(wrapInContainer(extensionInformation, tabsElement)); } - return wrapInTab(serverName, tabBuilder.toString()); + return wrapInCardColumnsTab(serverName, tabBuilder.toString()); } - private String wrapInTab(String serverName, String content) { - return "
" + + private String wrapInWideTab(String serverName, String content) { + return "
" + + // Page heading + "
" + + "

" + serverName + " · Plugins Overview

${backButton}" + + "
" + + // End Page heading + "
" + content + "
"; + } + + private String wrapInCardColumnsTab(String serverName, String content) { + return "
" + // Page heading "
" + "

" + serverName + " · Plugins Overview

${backButton}" + diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/pages/ServerPluginTabs.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/pages/ServerPluginTabs.java index eb1e0cb5a..8f89b1d81 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/pages/ServerPluginTabs.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/pages/ServerPluginTabs.java @@ -26,7 +26,6 @@ import com.djrapitops.plan.extension.FormatType; import com.djrapitops.plan.extension.implementation.TabInformation; import com.djrapitops.plan.extension.implementation.results.*; import com.djrapitops.plan.utilities.java.Lists; -import com.djrapitops.plugin.utilities.Format; import java.util.*; @@ -85,15 +84,14 @@ public class ServerPluginTabs { } private void generate() { + String tabID = "plugins-overview"; if (serverData.isEmpty()) { - String tabName = "Overview (No Data)"; - nav = new StringBuilder(new NavLink(Icon.called("cubes").build(), tabName).toHtml()); - tab = wrapInTab( - tabName, - "

No Extension Data

" + nav = new StringBuilder(NavLink.main(Icon.called("cubes").build(), tabID, "Overview (No Data)").toHtml()); + tab = wrapInWideColumnTab( + tabID, "

No Extension Data

" ); } else { - nav = new StringBuilder(new NavLink(Icon.called("cubes").build(), "Overview").toHtml()); + nav = new StringBuilder(NavLink.main(Icon.called("cubes").build(), tabID, "Overview").toHtml()); tab = generatePageTabs(); } } @@ -125,14 +123,15 @@ public class ServerPluginTabs { ).toHtmlFull(); } - tabBuilder.append(wrapInTab(extensionInformation.getPluginName(), wrapInContainer(extensionInformation, tabsElement))); - nav.append(new NavLink(Icon.fromExtensionIcon(extensionInformation.getIcon()), extensionInformation.getPluginName()).toHtml()); + String tabName = extensionInformation.getPluginName(); + tabBuilder.append(wrapInWideColumnTab(tabName, wrapInContainer(extensionInformation, tabsElement))); + nav.append(NavLink.main(Icon.fromExtensionIcon(extensionInformation.getIcon()), "plugins-" + tabName, tabName).toHtml()); } return tabBuilder.toString(); } private String generateOverviewTab() { - StringBuilder tabBuilder = new StringBuilder(); + StringBuilder contentBuilder = new StringBuilder(); for (ExtensionData datum : serverData) { ExtensionInformation extensionInformation = datum.getExtensionInformation(); @@ -149,19 +148,29 @@ public class ServerPluginTabs { ).toHtmlFull(); } - tabBuilder.append(wrapInContainer(extensionInformation, tabsElement)); + contentBuilder.append(wrapInContainer(extensionInformation, tabsElement)); } - return wrapInTab("Plugins Overview", tabBuilder.toString()); + return wrapInOverviewTab(contentBuilder.toString()); } - private String wrapInTab(String tabName, String content) { - return "
" + + private String wrapInWideColumnTab(String tabName, String content) { + return "
" + // Page heading "
" + "

${serverName} · " + tabName + "

${backButton}" + "
" + // End Page heading + "
" + content + "
"; + } + + private String wrapInOverviewTab(String content) { + return "
" + + // Page heading + "
" + + "

${serverName} · Plugins Overview

${backButton}" + + "
" + + // End Page heading "
" + content + "
"; }