Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
__mocks__ import "frontend web_application" legacy code Nov 21, 2016
bin complete refactor of routing and tabs Aug 14, 2018
config add option to enable syslog May 24, 2018
cordova Frontend react translate (#60) Nov 25, 2016
electron Frontend react translate (#60) Nov 25, 2016
locale add validation to compose draft Dec 4, 2018
public implement login form Jan 11, 2017
server fix handle HAS_SSR in express server Nov 5, 2018
src Fix BSOD on quick reply. Dec 12, 2018
template add react-dcument-title and basic implem Nov 24, 2017
test update unit and functional tests Dec 5, 2018
webpack remote identity with oauth Oct 30, 2018
.babelrc update translations Oct 18, 2018
.dockerignore Add ADD directive of local code instead of gh repo Apr 27, 2017
.eslintrc.json add initial msg notifications May 4, 2018
.gitignore remove & ignore _build folder Feb 20, 2018
.stylelintrc.yml fix style lint Apr 6, 2018
CONTRIBUTING.md load configuration from file & overrides with env var Oct 12, 2017
Dockerfile use multi-stage build in frontend Dockerfile Sep 24, 2018
Dockerfile.caliopen-node Moved Selenium tests image to frontend directory [ci skip] Aug 7, 2018
README.md move sub index files to respective directory name May 3, 2018
package.json Version 0.13.2 for package all Dec 11, 2018
postcss.config.js Install and configure autoprefixer with postCSS Aug 30, 2017
yarn.lock apply Take A Tour component upgrade Dec 11, 2018

README.md

Caliopen frontend

Important note:

Please refer to global documentation on readthedocs the following documentation wil not be maintained anymore. Some informations are still useful.

This subtree is meant for building and serving CaliOpen frontend.

  • serving html, js and static files
  • build web application
  • build or run desktop applications
  • build or run mobile devices applications

Prerequisite

(make sure you have an up-to-date version)

Usage (production ready)

This will install dependencies then start the web server. Depending you custom options, you will be able to access to Caliopen interface via http://0.0.0.0:4000

export NODE_ENV=production
yarn
bin/server

Web Server Options

You can set instance config via environment variables and a json file:

export CALIOPEN_API_HOSTNAME=api.foobar.tld
NODE_ENV=production bin/server --config=<path-to-file>.json

The default variables are set in config/server.default.js. The environment variables are set in config/server.env-var.js.

We strongly recommand to overide CALIOPEN_COOKIE_SECRET and CALIOPEN_SEAL_SECRET.

The precedence of config definitions:

env var > custom file > defaults

Config for the client is not dynamic and can be done in release phase (see below).

Release

NODE_ENV=production yarn release

This will build the different packages to run Caliopen web server in the dist directory.

Client options

Due to webpack restrictions, config can be pass using environment variables only.

The default variables and environment variables definitions are set in config/client.default.js.

We strongly recommand to overide CALIOPEN_PIWIK_SITE_ID.

Code architecture

All the things related to react follows this guide in src folder.

Each build target has its folder:

  • server (the web server providing html pages thanks to SSR and the javascript browser client)
  • cordova (for platforms android, ios and WP)
  • electron (for linux, macos and windows)

The index.html is generated using webpack and a template.

And each target has its webpack config.