Bonita BPM Dashboard built on AngularJS and integrated as a SPA (Single Page Application). Based on Philippe Ozil (Bonitasoft) original work (that was based on Fabio Lombardi's (Bonitasoft) original work)
This pages uses ngBonita (a non-official Bonita REST API client for AngularJS): ngBonita GitHub project
Note: this is just a demo to show how to integrate ngBonita.
- get the source
- npm install
- bower install
- grunt serve:http://PATH_TO_BONITA:PORT/bonita
- access your localhost:9000
The param added to grunt serve is the destination for proxy, it allow developper to use this demo on a different domain without configuring CORS.
- To have something pretty to look at =)
- Manage a logout feature
- Create real independant directives
- Need to mutualise utility (getDate, openStartModal) : directive ? exposed utility functions ?
- Need to cache a little bit the call to avoid having multiple dashboard calling the same service with the same properties)
- Having a way to customize dashboard through declarative HTML and isolated scope properties
- Deploy ngBonita on bower so that it can be defined as a bower dependency
- Have a task to deploy the final 'custom page', ready to be imported into Bonita
Pozil's demo (https://github.com/pozil/bonita-angular-dashboard) has some culprit :
- it is a 'custom page' project, so that it needs advanced Bonita feature that may not be available to anyone that want to try it
- it doesn't not use Grunt process workflow
- it doesn't use bower for front end dependencies management
- I'd really like to have self contained directives
- Boostrap is customizable through less (you'll find a variable file that will override Bootstrap default properties : app/less/_overriden_variables.less)
- Login is managed through a mandatory step ; the dashboard is only accessible after going through the login screen
- Dashboard need to be isolated from any scope / directive to ease their use (at least for the most common one ... maybe they need a module on their own like ngBonita-common-dashboard =))