This project contains the Scala.js project implementing a management console that can be used as a client to a blended container hosting the blended management REST Api.
The management console is a React application implemented in Scala.js using react4s and the Material UI react components.
The overall project contains several subprojects:
-
contains reusable objects which may be of use in any Scala.js/react4s application such as a simple logger and internationalization support.common
-
contains reusable higher level React components, such as a ReactTable.components
-
contains a simple generator which reads thematerialGen
files of Material-UI React and generates simple Scala.js wrappers to use those components in Scala.js / react4s.index.js
-
uses the generated components and is the place to enrich the Material-API manually to make it more Scala-ish. For now the manual code is around customizing the styles used in Material-Ui-React-Components.material
-
is essentially taken from https://github.com/werk/router4s with some more options for variable paths and some test cases. Once the management console reaches it’s final stages the changes will be contributed back to the original project.router
-
contains the actual management console.mgmtApp
-
contains a sample application that can be used as a playground to test out React Components without breaking the management console. Over time this subproject will become obsolete.sampleApp
-
contains the setup for testing the management console with Selenium. For now it just has a very simple test and the setup. The test performs tests on the management console built wihmgmtAppSeleniumest
and requires the SeleniumDriver for Chrome to be set up correctly. Test can be executed from the command line withapp/fastOptJS/webpack
./millw blended.mgmt.ui.mgmtAppSelenium.test
The fastest way to build the management console ist to run
. This will build everything into the directory ./millw blended.mgmt.ui.mgmtApp.packageHtml
../out/blended/mgmt/ui/mgmtApp/packageHtml/dest/dis
The console can be displayed in a browser by opening
from that directory within a browser.index.html
Alternatively, a webpack dev server can be started with
. This will run a node server on port 9000 hosting the management console../millw blended.mgmt.ui.mgmtApp.devServer
The management console requires a running management container hosting the REST- and WebSocket API to connect to.
All web ui projects implicitly define a bundle that can be hosted by a blended container with Akka HTTP support. For example, the web bundle for the
can be publish to the local ivy directory with mgmtApp
. This will run webpack on the web application, generate an ./millw blended.mgmt.ui.mgmtApp.webBundle.publishLocal
, generate an activator compatible with blended’s Akka HTTP suport and finally publish everything as an OSGi bundle.index.html