This patchset aims to remove the gulp-util package using the
steps outlined in the deprecation message[1]
[1] https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5
Change-Id: I11ed0f56cb3756e395f3684655f4b54e906b6a55
This commit removes vendor-js related code. We already didn't have the
vendor-js directory[1]. So this is just a cleaning up.
[1] Ibfefe310fbad1d80f4c7ec96bda083d97a09824e
Change-Id: Id5cb4bfb34e867cded9106bed9d13e3a8d383d37
This commit replaces the openstack logo to new one. The new logo is
simple and clean. Let's use it.
Change-Id: I324c4063ee9c036ef1cf932e62650a3a94fb62e7
This fixes a race condition in gulp tasks where the 'browserify' task
would occasionally run before the 'views' task had finished, causing
an exception to be thrown when it failed to find the generated
templates. This makes the 'browserify' task wait for all other tasks
to complete before running, so the templates will always be generated
first.
Change-Id: I17dd4cd234dc61b98ba9f0e5ab527d8798e28434
This disables the Protractor E2E tests due to a high failure rate
related to a protractor/chrome bug [1] where ChromeDriver would
frequently hang. The E2E tests were mainly used to check for
dependency injection failures, but they didn't catch all (or even
most) failures. Instead, this enables angular's built-in 'strictDi'
mode, which will raise errors during normal development (i.e.
non-production builds) and during unit tests whenever a bad injection
is used.
[1] https://github.com/angular/protractor/issues/2419
Change-Id: I825986a3df457326a6c0c0c3b4d8584617a9d5e2
This commit makes gulp unconditionally create external-file sourcemaps
for dev builds. Currently dev builds create both external and inline
sourcemaps, which seems to confuse browsers and often prevents maps
from loading. Additionally, this enables 'loadMaps' for the gulp
sourcemap plugin to make sure that all sourcemaps from browserify are
moved into the external file, fixing maps for dependencies.
Change-Id: I9fcb945d639a60c19c94d688ff26126c8f49e256
This adds a gulp task that runs at the end of `gulp e2e` to copy
the built production site into the 'reports/' directory. This
directory will be uploaded to the log server during the npm test jobs
and should be viewable from browsers for quick evaluation of
client-side patches. A default config file is also included that
points to the official http://health.openstack.org/ API server so
this build preview can work against live data.
Change-Id: Ideb59ae050f77dab99a4f025e27519fd0fd11f6f
This enables end-to-end testing with Protractor, along with some
basic route and page load testing for the home and project pages.
PhantomJS is used to execute tests, and API requests are mocked
using `protractor-http-mock` (see `test/e2e/mocks/`).
A new gulp `e2e` task is also added to prepare and execute the
tests, along with a shortcut, `npm run protractor`. The default
`npm run test` is also amended to include E2E tests, with unit
tests moved to the new shortcut `npm run unit`.
Change-Id: Idb2eef2d851035c715e23553db56fc80deeab8e7
On my previous commits I forgot to include the newly created task
'images' as part of the production task.
Change-Id: I0ad63356e2bf16ff2794333216a2c0b4f5b16089
One of the requests we got during Summit was to make OpenStack Health
look more like other status pages. This commit includes the status
header.
Change-Id: Id96ee1688e66445c3b42222bad088211f4e19437
Configuration parameters that vary between build and production
(e.g. the API URL) can now be stored in the external `config.json`
file located alongside `index.html`. The ConfigService loads and
caches this configuration file at runtime, allowing other code
(such as the HealthService) to fetch parameters as needed.
A development-ready config file is also included in `etc/` with
default settings, and is copied into `build/` automatically when
`gulp dev` is run.
Change-Id: I42e9b73c55a1a5372401ed64e0e3f60cb57ea696
Both jshint and jslint contain the 'do no evil' license which
makes it unusable for OpenStack. This patch switches this project
to use eslint, the published eslint-config-openstack rules, and
the john-papa eslint style guides. It also adds the 'npm run lint'
command used by infra in the javascript-jobs macro.
Change-Id: I724d3a12fb5b9c85446adcd07c03a676e966bd41
This removes several large and unnecessary node dependencies,
reducing the total space consumed by build dependencies by around
34%. In particular, `gulp-imagemin` and `debowerify` (along with
their associated build steps) are removed, freeing ~200MB.
Change-Id: Ic560d30c559ddd24f1a7089f5287ce26108de212
As Highcharts does not support module loaders, remove its npm
dependency and add it manually as part of a new "vendor-js" build
step. Libraries in `app/vendor-js/` will be concatenated into a final
"vendor.js" file which is included manually into the index page. The
Highcharts module is then exposed via a shim.
Change-Id: I0d3b1d938b85ffe5f54fca7467a55a08507bd155