Libraries - Third-Party JavaScript and CSS Libraries

Introduction

This section contains information about third-party JavaScript libraries used to build Orbeon Forms. Some of these libraries are patched by Orbeon.

See also:

Modified libraries

YUI

TinyMCE

As of 2012-02-05:

Twitter Bootstrap

As of 2013-08-12 (starting Orbeon Forms 4.4):
Build dependencies:

cd src/resources/apps/fr/style/bootstrap-src/
sudo brew upgrade node
npm install recess connect jshint hogan.js uglify-js@1

Then backport patches to Bootstrap:
  • all rules enclosed within .orbeon (commit)
  • code.less not included in bootstrap.css (commit)
  • change to popovers.less to fix popover overlapping control (commit)
Build and update:

cd src/resources/apps/fr/style/bootstrap-src
make clean
make bootstrap
cp bootstrap/css/*.css ../bootstrap/css/
cp bootstrap/img/*.png ../bootstrap/img/
cp bootstrap/js/*.js ../bootstrap/js/

NOTES:
  • npm install -g doesn't work with 2.3.2, so drop the -g
  • npm packages installed under ./node_modules

As of 2012-02-06 (up to Orbeon Forms 4.3):
  • we use Bootstrap 2.1.1 [2.2.2 is available but we haven't upgraded yet]
  • all rules enclosed within .orbeon (commit)
  • code.less not included in bootstrap.css (commit)
How to build Bootstrap:

sudo brew install node
npm install recess connect jshint -g
npm install uglify-js@1 -g [NOTE: for Bootstrap 2.1.1]
cd src/resources/apps/fr/style/bootstrap-src/
make bootstrap
cp bootstrap/css/*.css ../bootstrap/css/

Overrides

We override some rules in form-runner-bootstrap-override.less.

Some modifications are due to the fact that we want to use XForms controls, e.g. <xf:trigger appearance="minimal">, and still have the Bootstrap styles applied.  For example the NAV LIST is modified this way.

Issues

  • It's not ideal to duplicate and modify rules. Is patching Bootstrap better?
  • Some rules in form-runner-bootstrap-override.less are not "Boostrap overrides" and should be moved out.
  • If better solutions can be found, then great!