Do not specify Webpack loaders in requires

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Specify resolve.root, DRY paths in Webpack config

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Expose I18n as global with Webpack expose-loader

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Add shelljs for synchronous command exec

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Add helpers to make node translations-plugin aware

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Teach Webpack to bundle translations plugin locales

Bug # 14679

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Remove i18n-js (as gem dependency)

Translations are now bundled by Webpack.

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Add lodash (as npm dependency)

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Flesh out helpers to support all OP(Rails) plugins

This currently use a very native approach to determines if a gem is a
OpenProject plugin - simply matching 'openproject-'.

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Filter out OP(Rails) plugins without package.json

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Add Rails plugin dirs to Webpack modulesDirectories

This should allow Webpack to bundle assets from Rails plugins/gems,
as if they were npm modules or Bower components, but without us
having to add an entry to core's `package.json`/`bower.json`.

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Add I18n function for plugins to add translations

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Create Webpack entry points for each plugin

User Story # #5697

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Update paths in Protractor HTML file, gulp tasks

Changed in previous commit 3d34ff2e.

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Stick to single quotes in webpack.config.js

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Allow a few shelljs globals in rails-plugin.conf.js

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Move Angular app under frontend/app

This mass rename has been brought forward to work-around an apparent
naming collision when running Karma tests.

    ERROR [karma]: [Error: Path is a file /_js/app/assets/javascripts/angular]
    Error: Path is a file /_js/app/assets/javascripts/angular

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Merge branch 'dev' into feature/webpack-i18n-support
Move auto-complete-helper.js into place

Signed-off-by: Alex Coles <alex@alexbcoles.com>
Teach Webpack to build Bundler git dependencies

Plugins that are Bundler git dependencies have a SHA fragment appended
to the directory where they are cloned, e.g.
`openproject-backlogs-e8338514e9d9`.

We create an alias to help Webpack handle this.

Signed-off-by: Alex Coles <alex@alexbcoles.com>