# Template HTML5 Application for Application Framework Binder
## Setup
Install HTML5 development toolchain on your host
```
$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
$ sudo apt-get install nodejs
$ sudo npm install --global gulp
```
Then install NodeJS dependencies
```
$ cd html5 # or the project directory
$ npm install
```
## Overload ./app/etc/AppDefaults.js with '.noderc.js'
```
var config= {
APPNAME : 'xxxxxx-html5', // AppName is use as main Angular Module name
FRONTEND: "Frontend", // HTML5 frontend [no leading ./]
BACKEND : "Backend", // NodeJS Rest API [no leading ./]
URLBASE : '/opa/', // HTML basedir when running in production [should end with a /]
APIBASE : '/api/', // Api url base dir [should end with a /]
};
module.exports = config;
```
WARNING: in current development version Frontend/services/AppConfig.js is not updated automatically
you should manually assert that backend config is in sync with frontend config.
## Development build and deployment (development phase)
```
$ gulp help
$ gulp build-app-dev
$ BOARDIP=1.2.3.4 # change by your board IP address
$ rsync -Pav dist.dev/ root@$BOARDIP:xxxxxx-html5-dev/
```
## Test Application
Start AppFramework Binder:
```
$ ssh root@$BOARDIP
# afb-daemon --port=1234 --verbose --token=123456789 --rootdir=~/xxxxxx-html5-dev
```
Point your browser onto: http://$BOARDIP:1234/opa?token=123456789
Note:
- do not forget '/opa' that should match with your config.URLBASE
- if you change --token=xxxx do not forget to update ./Frontend/pages/HomeModules.js
- Force HTML/OPA reload with F5 after each HTML5/OPA update or new pages may not be loaded.
- When reloading HTML/OPA with F5 do not forget that your initial token wont be accepted anymore. You should either:
+ restart to clean existing session
+ cleanup AJB_session cookie
+ start an anonymous web page to get a fresh and clean environment.
## Create application package and install on target
Simply run:
```
$ gulp widget-prod
```
This should produce a .wgt file in the current directory. You can then install the widget file onto the target and run the application using application framework utilities:
```
$ scp *.wgt root@$BOARDIP:~/
$ ssh root@$BOARDIP
# afm-util install xxxxxx-html5.wgt
# afm-util start xxxxxx-html5@0.1
```
## Directory structure
/AppClient
|
|---- package.json
|---- bower.json
|---- gulpfile.js
|
|---- /Frontend
| |
| |---- index.html
| |---- app.js
| |
| |---- /styles
| | |
| | |---- _settings.scss
| | |---- app.scss
| |
| |---- /Widgets
| | |
| | |--- Widget-1
| | |...
| |
| |-----/Pages
| |--- Home-Page
| |...
|
|
|---- (/dist.dev)
|---- (/dist.prod)