FireCloud user interface for web browsers.
ClojureScript is used for the UI.
We use the Leiningen build tool to manage ClojureScript dependencies.
The code incorporates usage of react-cljs which is a ClojureScript wrapper for React.
Figwheel replaces the running JavaScript within the page so changes are visible without a browser reload. More information here. This video gives some insight into the productivity gains available when using this technology (up to about 15:00 is all that is necessary).
FireCloud is currently supported within Broad's engineering environment:
https://github.com/broadinstitute/firecloud-develop
Support for running FireCloud outside of the Broad is planned.
./config/docker-rsync-local-ui.shYou must be viewing the application via HTTP, not HTTPS. HTTPS is not supported by Figwheel.
This can take around 20 seconds to completely start. When ready, it will display the following message:
Prompt will show when figwheel connects to your application
To connect, reload the browser window. The prompt should appear less than ten seconds after you reload the page. If it is not connecting, make sure to check the JavaScript console for error messages.
To run all tests, enter this at the JavaScript console:
broadfcuitest.testrunner.run_all_tests()Check the JavaScript console for test output.
To run a single test, add the following to the bottom of the file you wish to test:
(.clear js/console) ; optional
(cljs.test/run-tests)Now, each time that file is saved, Figwheel will reload it and the tests will automatically run.
To compile the clojure project into the target directory, run
./script/build.sh compile
To compile and build the broadinstitute/firecloud-ui docker image, run
./script/build.sh compile -d build