diff --git a/src/main/java/se/koc/trader/api/TraderPage.java b/src/main/java/se/koc/trader/api/TraderPage.java index cc02147..572583b 100644 --- a/src/main/java/se/koc/trader/api/TraderPage.java +++ b/src/main/java/se/koc/trader/api/TraderPage.java @@ -11,6 +11,7 @@ import zutil.ui.Navigation; import zutil.ui.UserMessageManager; import java.io.IOException; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -41,28 +42,32 @@ public abstract class TraderPage implements HttpPage { Map session, Map cookie, Map request) throws IOException { try { + // Prepare common template data + + Map data = new HashMap<>(); + data.put("rootNav", rootNav.createPagedNavInstance(header).getSubNavs()); + data.put("userNav", userNav.createPagedNavInstance(header).getSubNavs()); + data.put("breadcrumb", Navigation.getBreadcrumb(Navigation.getPagedNavigation(header))); + data.put("page", Navigation.getPagedNavigation(header)); + data.put("alerts", AlertEndpoint.getInstance().generateAlerts()); + data.put("user", "Profile"); + + // Create templates + Templator navigationTemplate = new Templator(FileUtil.find(TEMPLATE_NAVIGATION)); - navigationTemplate.set("rootNav", rootNav.createPagedNavInstance(header).getSubNavs()); - navigationTemplate.set("userNav", userNav.createPagedNavInstance(header).getSubNavs()); + navigationTemplate.setAll(data); Templator subNavigationTemplate = null; if (showSubNav) { subNavigationTemplate = new Templator(FileUtil.find(TEMPLATE_SUB_NAVIGATION)); - List breadcrumb = Navigation.getBreadcrumb(Navigation.getPagedNavigation(header)); - - subNavigationTemplate.set("rootNav", rootNav.createPagedNavInstance(header).getSubNavs()); - subNavigationTemplate.set("userNav", userNav.createPagedNavInstance(header).getSubNavs()); - if (!breadcrumb.isEmpty()) - subNavigationTemplate.set("sub_navigation", breadcrumb.get(1).createPagedNavInstance(header).getSubNavs()); + subNavigationTemplate.setAll(data); } Templator main = new Templator(FileUtil.find(TEMPLATE_MAIN)); + main.setAll(data); main.set("navigation", navigationTemplate); main.set("sub_navigation", subNavigationTemplate); - main.set("alerts", AlertEndpoint.getInstance().generateAlerts()); main.set("content", httpRespond(session, cookie, request)); - main.set("user", "Profile"); - out.print(main.compile()); } catch (Exception e) { diff --git a/src/main/java/se/koc/trader/page/ExchangeConfigPage.java b/src/main/java/se/koc/trader/page/ExchangeConfigPage.java new file mode 100644 index 0000000..12ace39 --- /dev/null +++ b/src/main/java/se/koc/trader/page/ExchangeConfigPage.java @@ -0,0 +1,45 @@ +package se.koc.trader.page; + +import se.koc.trader.TraderContext; +import se.koc.trader.api.TraderPage; +import se.koc.trader.struct.Symbol; +import zutil.ObjectUtil; +import zutil.db.DBConnection; +import zutil.io.file.FileUtil; +import zutil.log.LogUtil; +import zutil.parser.Templator; + +import java.util.Map; +import java.util.logging.Logger; + +import static zutil.ui.UserMessageManager.*; + + +public class ExchangeConfigPage extends TraderPage { + private static final Logger logger = LogUtil.getLogger(); + private static final String TEMPLATE = TraderContext.RESOURCE_WEB_ROOT + "/exchange_config.tmpl"; + + + public ExchangeConfigPage() { + super("exchange_config"); + super.getRootNav().createSubNav("Settings").createSubNav(this.getId(), "Exchange Settings").setWeight(100); + } + + @Override + public Templator httpRespond( + Map session, + Map cookie, + Map request) + throws Exception{ + + DBConnection db = TraderContext.getDB(); + + // Output + Templator tmpl = new Templator(FileUtil.find(TEMPLATE)); + tmpl.set("exchanges", Symbol.getSymbols(db)); + + return tmpl; + + } + +} diff --git a/src/main/java/se/koc/trader/plugin.json b/src/main/java/se/koc/trader/plugin.json index 30d8e59..cb3a50d 100644 --- a/src/main/java/se/koc/trader/plugin.json +++ b/src/main/java/se/koc/trader/plugin.json @@ -5,6 +5,7 @@ "interfaces": [ {"se.koc.trader.api.TraderDaemon": "se.hal.page.SensorOverviewWebPage"}, + {"se.koc.trader.api.TraderPage": "se.koc.trader.page.ExchangeConfigPage"}, {"se.koc.trader.api.TraderPage": "se.koc.trader.page.SymbolConfigPage"}, {"se.koc.trader.api.TraderPage": "se.koc.trader.page.SymbolOverviewPage"} ] diff --git a/src/main/resources/web/img/favicon.svg b/src/main/resources/web/img/favicon.svg new file mode 100644 index 0000000..b94b720 --- /dev/null +++ b/src/main/resources/web/img/favicon.svg @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/src/main/resources/web/main.tmpl b/src/main/resources/web/main.tmpl index f7b230b..bc34a92 100644 --- a/src/main/resources/web/main.tmpl +++ b/src/main/resources/web/main.tmpl @@ -3,12 +3,12 @@ - + Trader - - + + @@ -24,26 +24,39 @@ -
- +
+ {{navigation}} -
-
- {{sub_navigation}} +
+
+
+
+

{{page.getName()}}

+
-
- {{content}} -
-
+
+ +
+
+ +
+ {{content}} +
+
-
+ diff --git a/src/main/resources/web/main_nav.tmpl b/src/main/resources/web/main_nav.tmpl index c441c96..8ce7c7d 100644 --- a/src/main/resources/web/main_nav.tmpl +++ b/src/main/resources/web/main_nav.tmpl @@ -1,31 +1,29 @@ - + \ No newline at end of file diff --git a/src/main/resources/web/main_subnav.tmpl b/src/main/resources/web/main_subnav.tmpl index a0d002d..df5b5c8 100644 --- a/src/main/resources/web/main_subnav.tmpl +++ b/src/main/resources/web/main_subnav.tmpl @@ -1,30 +1,55 @@ - diff --git a/src/main/resources/web/symbol_overview.tmpl b/src/main/resources/web/symbol_overview.tmpl index 4e48532..e313098 100644 --- a/src/main/resources/web/symbol_overview.tmpl +++ b/src/main/resources/web/symbol_overview.tmpl @@ -1,34 +1,46 @@ -
-

Market Overview

-
+
-
-
-
Open Trades
-
-
-
- - - - - - - - - - - - - - - - - - - -
#HeaderHeaderHeaderHeader
1,001randomdataplaceholdertext
+
+
+ +
Recent Movement
+
+ +
+
+ + + + + + + + + + + + + + + + + + + +
#HeaderHeaderHeaderHeader
1,001randomdataplaceholdertext
+
-