diff --git a/.gitignore b/.gitignore
index 05c52aaa38a..ec8015ee86a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,4 @@ openqa.log
t/data/openqa/factory/hdd/00099963-hdd_image2.qcow2
t/data/openqa/factory/hdd/hdd_image.qcow2
t/diagram-v*.png
+assets/cache/
diff --git a/Makefile b/Makefile
index d9e83225497..040b8742dcf 100644
--- a/Makefile
+++ b/Makefile
@@ -6,12 +6,14 @@ all:
.PHONY: install
install:
- for i in lib public script templates; do \
+ ./script/generate-packed-assets
+ for i in lib public script templates assets; do \
mkdir -p "$(DESTDIR)"/usr/share/openqa/$$i ;\
cp -a $$i/* "$(DESTDIR)"/usr/share/openqa/$$i ;\
done
+
# we didn't actually want to install these...
- for i in tidy check_coverage; do \
+ for i in tidy check_coverage generate-packed-assets; do \
rm "$(DESTDIR)"/usr/share/openqa/script/$$i ;\
done
#
diff --git a/assets/assetpack.db b/assets/assetpack.db
new file mode 100644
index 00000000000..8f29cd449ab
--- /dev/null
+++ b/assets/assetpack.db
@@ -0,0 +1,561 @@
+[js-min:http://code.jquery.com/jquery-1.11.2.js]
+checksum=5b57851b09
+format=js
+minified=1
+mtime=1418832321
+[original:http://code.jquery.com/jquery-1.11.2.js]
+format=js
+mtime=1418832321
+rel=cache/code.jquery.com/jquery-1.11.2.js
+[original:https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css]
+format=css
+mtime=1463187365
+rel=cache/maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css
+[original:https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/fonts/fontawesome-webfont.eot#iefix&v=4.6.3]
+format=eot
+mtime=1463187365
+rel=cache/maxcdn.bootstrapcdn.com/font-awesome/4.6.3/fonts/fontawesome-webfont.eot_iefix_v_4.6.3
+[original:https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/fonts/fontawesome-webfont.eot?v=4.6.3]
+format=eot
+mtime=1463187365
+rel=cache/maxcdn.bootstrapcdn.com/font-awesome/4.6.3/fonts/fontawesome-webfont.eot_v_4.6.3
+[original:https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular]
+format=svg
+mtime=1463187366
+rel=cache/maxcdn.bootstrapcdn.com/font-awesome/4.6.3/fonts/fontawesome-webfont.svg_v_4.6.3_fontawesomeregular
+[original:https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/fonts/fontawesome-webfont.ttf?v=4.6.3]
+format=ttf
+mtime=1463187366
+rel=cache/maxcdn.bootstrapcdn.com/font-awesome/4.6.3/fonts/fontawesome-webfont.ttf_v_4.6.3
+[original:https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/fonts/fontawesome-webfont.woff2?v=4.6.3]
+format=woff2
+mtime=1463187437
+rel=cache/maxcdn.bootstrapcdn.com/font-awesome/4.6.3/fonts/fontawesome-webfont.woff2_v_4.6.3
+[original:https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/fonts/fontawesome-webfont.woff?v=4.6.3]
+format=woff
+mtime=1463187366
+rel=cache/maxcdn.bootstrapcdn.com/font-awesome/4.6.3/fonts/fontawesome-webfont.woff_v_4.6.3
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/fonts/bootstrap/glyphicons-halflings-regular.eot]
+format=eot
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/fonts/bootstrap/glyphicons-halflings-regular.eot
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/fonts/bootstrap/glyphicons-halflings-regular.eot#iefix]
+format=eot
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/fonts/bootstrap/glyphicons-halflings-regular.eot_iefix
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular]
+format=svg
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/fonts/bootstrap/glyphicons-halflings-regular.svg_glyphicons_halflingsregular
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf]
+format=ttf
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/fonts/bootstrap/glyphicons-halflings-regular.woff]
+format=woff
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/fonts/bootstrap/glyphicons-halflings-regular.woff
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2]
+format=woff2
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2
+[js-min:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap.js]
+checksum=8cf4186ce8
+format=js
+minified=1
+mtime=1464786035
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap.js]
+format=js
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap.js
+[js-min:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap/collapse.js]
+checksum=bd1e9a435e
+format=js
+minified=1
+mtime=1464786035
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap/collapse.js]
+format=js
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap/collapse.js
+[js-min:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap/tab.js]
+checksum=75a8bdb904
+format=js
+minified=1
+mtime=1464786035
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap/tab.js]
+format=js
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap/tab.js
+[js-min:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap/tooltip.js]
+checksum=03d4e6b9c4
+format=js
+minified=1
+mtime=1464786035
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap/tooltip.js]
+format=js
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap/tooltip.js
+[js-min:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap/transition.js]
+checksum=399599edcd
+format=js
+minified=1
+mtime=1464786035
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap/transition.js]
+format=js
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/javascripts/bootstrap/transition.js
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/_bootstrap.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/_bootstrap.scss
+[sass:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/_bootstrap.scss]
+checksum=62cc436723
+format=css
+minified=0
+mtime=1464786035
+[sass-min:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/_bootstrap.scss]
+checksum=62cc436723
+format=css
+minified=1
+mtime=1464786035
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_alerts.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_alerts.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_badges.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_badges.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_breadcrumbs.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_breadcrumbs.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_button-groups.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_button-groups.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_buttons.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_buttons.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_carousel.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_carousel.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_close.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_close.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_code.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_code.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_component-animations.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_component-animations.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_dropdowns.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_dropdowns.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_forms.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_forms.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_glyphicons.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_glyphicons.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_grid.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_grid.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_input-groups.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_input-groups.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_jumbotron.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_jumbotron.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_labels.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_labels.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_list-group.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_list-group.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_media.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_media.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_mixins.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_mixins.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_modals.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_modals.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_navbar.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_navbar.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_navs.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_navs.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_normalize.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_normalize.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_pager.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_pager.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_pagination.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_pagination.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_panels.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_panels.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_popovers.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_popovers.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_print.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_print.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_progress-bars.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_progress-bars.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_responsive-embed.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_responsive-embed.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_responsive-utilities.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_responsive-utilities.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_scaffolding.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_scaffolding.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_tables.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_tables.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_thumbnails.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_thumbnails.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_tooltip.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_tooltip.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_type.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_type.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_utilities.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_utilities.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_variables.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_variables.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_wells.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/_wells.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_alerts.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_alerts.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_background-variant.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_background-variant.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_border-radius.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_border-radius.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_buttons.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_buttons.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_center-block.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_center-block.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_clearfix.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_clearfix.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_forms.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_forms.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_gradients.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_gradients.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_grid-framework.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_grid-framework.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_grid.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_grid.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_hide-text.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_hide-text.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_image.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_image.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_labels.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_labels.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_list-group.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_list-group.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_nav-divider.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_nav-divider.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_opacity.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_opacity.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_pagination.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_pagination.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_panels.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_panels.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_progress-bar.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_progress-bar.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_reset-filter.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_reset-filter.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_reset-text.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_reset-text.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_resize.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_resize.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_size.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_size.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_tab-focus.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_tab-focus.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_table-row.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_table-row.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_text-overflow.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_text-overflow.scss
+[original:https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss]
+format=scss
+mtime=1464786035
+rel=cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss
+[js-min:javascripts/admin_needle.js]
+checksum=aa33de64a8
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/admin_user.js]
+checksum=11db13332f
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/admintable.js]
+checksum=4e4d5d9344
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/assets.js]
+checksum=3a5434816d
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/audit_log.js]
+checksum=88364153c8
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/chosen.jquery.js]
+checksum=c431549312
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/comments.js]
+checksum=7a45085b57
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/dataTables.bootstrap.js]
+checksum=48383392ea
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/job_templates.js]
+checksum=cba8ffaddb
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/jquery.dataTables.js]
+checksum=bad157c0fd
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/jquery.timeago.js]
+checksum=95ac09dfb4
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/jquery_ujs.js]
+checksum=c1b4b6a328
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/lib/codemirror.js]
+checksum=2eab924dd5
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/mode/perl/perl.js]
+checksum=ddc2bf14f8
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/needlediff.js]
+checksum=bce19a771e
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/needleedit.js]
+checksum=85d33a7696
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/needleeditor.js]
+checksum=1d99a49d0d
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/openqa.js]
+checksum=ed7aa5dbac
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/overview.js]
+checksum=010b1c173b
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/running.js]
+checksum=59e51e77dc
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/shapes.js]
+checksum=173f6d2e27
+format=js
+minified=1
+mtime=1464781278
+[js-min:javascripts/tests.js]
+checksum=a42cd5e758
+format=js
+minified=1
+mtime=1464781278
+[sass:sass/bentostrap.scss]
+checksum=4e9dc68308
+format=css
+minified=0
+mtime=1464786169
+[sass-min:sass/bentostrap.scss]
+checksum=4e9dc68308
+format=css
+minified=1
+mtime=1464786169
+[css-min:stylesheets/chosen.css]
+checksum=74801d6228
+format=css
+minified=1
+mtime=1464781278
+[css-min:stylesheets/codemirror.css]
+checksum=4765637cf4
+format=css
+minified=1
+mtime=1464781278
+[css-min:stylesheets/comments.css]
+checksum=bbe13f4c14
+format=css
+minified=1
+mtime=1464781278
+[css-min:stylesheets/dataTables.bootstrap.css]
+checksum=62081d867d
+format=css
+minified=1
+mtime=1464781278
+[css-min:stylesheets/jquery.dataTables.css]
+checksum=95fd58c0b9
+format=css
+minified=1
+mtime=1464781278
+[css-min:stylesheets/openqa.css]
+checksum=16226f35c3
+format=css
+minified=1
+mtime=1464781278
+[sass:stylesheets/overview.scss]
+checksum=2a31bf905d
+format=css
+minified=0
+mtime=1464781278
+[sass-min:stylesheets/overview.scss]
+checksum=2a31bf905d
+format=css
+minified=1
+mtime=1464781278
+[css-min:stylesheets/tables.css]
+checksum=57feb43762
+format=css
+minified=1
+mtime=1464781278
diff --git a/public/javascripts/admin_needle.js b/assets/javascripts/admin_needle.js
similarity index 100%
rename from public/javascripts/admin_needle.js
rename to assets/javascripts/admin_needle.js
diff --git a/public/javascripts/admin_user.js b/assets/javascripts/admin_user.js
similarity index 100%
rename from public/javascripts/admin_user.js
rename to assets/javascripts/admin_user.js
diff --git a/public/javascripts/admintable.js b/assets/javascripts/admintable.js
similarity index 100%
rename from public/javascripts/admintable.js
rename to assets/javascripts/admintable.js
diff --git a/public/javascripts/assets.js b/assets/javascripts/assets.js
similarity index 100%
rename from public/javascripts/assets.js
rename to assets/javascripts/assets.js
diff --git a/public/javascripts/audit_log.js b/assets/javascripts/audit_log.js
similarity index 100%
rename from public/javascripts/audit_log.js
rename to assets/javascripts/audit_log.js
diff --git a/public/javascripts/chosen.jquery.js b/assets/javascripts/chosen.jquery.js
similarity index 100%
rename from public/javascripts/chosen.jquery.js
rename to assets/javascripts/chosen.jquery.js
diff --git a/public/javascripts/comments.js b/assets/javascripts/comments.js
similarity index 100%
rename from public/javascripts/comments.js
rename to assets/javascripts/comments.js
diff --git a/public/javascripts/dataTables.bootstrap.js b/assets/javascripts/dataTables.bootstrap.js
similarity index 100%
rename from public/javascripts/dataTables.bootstrap.js
rename to assets/javascripts/dataTables.bootstrap.js
diff --git a/public/javascripts/job_templates.js b/assets/javascripts/job_templates.js
similarity index 100%
rename from public/javascripts/job_templates.js
rename to assets/javascripts/job_templates.js
diff --git a/public/javascripts/jquery-1.11.2.js b/assets/javascripts/jquery-1.11.2.js
similarity index 100%
rename from public/javascripts/jquery-1.11.2.js
rename to assets/javascripts/jquery-1.11.2.js
diff --git a/public/javascripts/jquery.dataTables.js b/assets/javascripts/jquery.dataTables.js
similarity index 100%
rename from public/javascripts/jquery.dataTables.js
rename to assets/javascripts/jquery.dataTables.js
diff --git a/public/javascripts/jquery.timeago.js b/assets/javascripts/jquery.timeago.js
similarity index 100%
rename from public/javascripts/jquery.timeago.js
rename to assets/javascripts/jquery.timeago.js
diff --git a/public/javascripts/jquery_ujs.js b/assets/javascripts/jquery_ujs.js
similarity index 100%
rename from public/javascripts/jquery_ujs.js
rename to assets/javascripts/jquery_ujs.js
diff --git a/public/javascripts/keyevent.js b/assets/javascripts/keyevent.js
similarity index 100%
rename from public/javascripts/keyevent.js
rename to assets/javascripts/keyevent.js
diff --git a/public/javascripts/lib/codemirror.js b/assets/javascripts/lib/codemirror.js
similarity index 100%
rename from public/javascripts/lib/codemirror.js
rename to assets/javascripts/lib/codemirror.js
diff --git a/public/javascripts/mode/perl/perl.js b/assets/javascripts/mode/perl/perl.js
similarity index 100%
rename from public/javascripts/mode/perl/perl.js
rename to assets/javascripts/mode/perl/perl.js
diff --git a/public/javascripts/needlediff.js b/assets/javascripts/needlediff.js
similarity index 100%
rename from public/javascripts/needlediff.js
rename to assets/javascripts/needlediff.js
diff --git a/public/javascripts/needleedit.js b/assets/javascripts/needleedit.js
similarity index 100%
rename from public/javascripts/needleedit.js
rename to assets/javascripts/needleedit.js
diff --git a/public/javascripts/needleeditor.js b/assets/javascripts/needleeditor.js
similarity index 100%
rename from public/javascripts/needleeditor.js
rename to assets/javascripts/needleeditor.js
diff --git a/public/javascripts/openqa.js b/assets/javascripts/openqa.js
similarity index 100%
rename from public/javascripts/openqa.js
rename to assets/javascripts/openqa.js
diff --git a/public/javascripts/overview.js b/assets/javascripts/overview.js
similarity index 100%
rename from public/javascripts/overview.js
rename to assets/javascripts/overview.js
diff --git a/public/javascripts/running.js b/assets/javascripts/running.js
similarity index 100%
rename from public/javascripts/running.js
rename to assets/javascripts/running.js
diff --git a/public/javascripts/scheduler.js b/assets/javascripts/scheduler.js
similarity index 100%
rename from public/javascripts/scheduler.js
rename to assets/javascripts/scheduler.js
diff --git a/public/javascripts/shapes.js b/assets/javascripts/shapes.js
similarity index 100%
rename from public/javascripts/shapes.js
rename to assets/javascripts/shapes.js
diff --git a/public/javascripts/tests.js b/assets/javascripts/tests.js
similarity index 100%
rename from public/javascripts/tests.js
rename to assets/javascripts/tests.js
diff --git a/public/sass/bento/bootstrap_overrides.scss b/assets/sass/bento/bootstrap_overrides.scss
similarity index 100%
rename from public/sass/bento/bootstrap_overrides.scss
rename to assets/sass/bento/bootstrap_overrides.scss
diff --git a/public/sass/bento/bootstrap_variables.scss b/assets/sass/bento/bootstrap_variables.scss
similarity index 100%
rename from public/sass/bento/bootstrap_variables.scss
rename to assets/sass/bento/bootstrap_variables.scss
diff --git a/public/sass/bento/footer.scss b/assets/sass/bento/footer.scss
similarity index 100%
rename from public/sass/bento/footer.scss
rename to assets/sass/bento/footer.scss
diff --git a/public/sass/bento/global-navigation.scss b/assets/sass/bento/global-navigation.scss
similarity index 100%
rename from public/sass/bento/global-navigation.scss
rename to assets/sass/bento/global-navigation.scss
diff --git a/public/sass/bento/login-form.scss b/assets/sass/bento/login-form.scss
similarity index 100%
rename from public/sass/bento/login-form.scss
rename to assets/sass/bento/login-form.scss
diff --git a/public/sass/bentostrap.scss b/assets/sass/bentostrap.scss
similarity index 69%
rename from public/sass/bentostrap.scss
rename to assets/sass/bentostrap.scss
index 66d7abf0fe2..f9e8dc64b22 100644
--- a/public/sass/bentostrap.scss
+++ b/assets/sass/bentostrap.scss
@@ -2,7 +2,7 @@
// only on this file's content
// 20150324-2
@import "bento/bootstrap_variables";
-@import "bootstrap";
+@import "../cache/raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets/stylesheets/_bootstrap.scss";
@import "bootstrap_bento";
// Footer overrides for bento compatibility
diff --git a/public/sass/bootstrap_bento.scss b/assets/sass/bootstrap_bento.scss
similarity index 100%
rename from public/sass/bootstrap_bento.scss
rename to assets/sass/bootstrap_bento.scss
diff --git a/public/stylesheets/bento/960.css b/assets/stylesheets/bento/960.css
similarity index 100%
rename from public/stylesheets/bento/960.css
rename to assets/stylesheets/bento/960.css
diff --git a/public/stylesheets/bento/base.css b/assets/stylesheets/bento/base.css
similarity index 100%
rename from public/stylesheets/bento/base.css
rename to assets/stylesheets/bento/base.css
diff --git a/public/stylesheets/bento/base.fluid.fix.css b/assets/stylesheets/bento/base.fluid.fix.css
similarity index 100%
rename from public/stylesheets/bento/base.fluid.fix.css
rename to assets/stylesheets/bento/base.fluid.fix.css
diff --git a/public/stylesheets/bento/grid.css b/assets/stylesheets/bento/grid.css
similarity index 100%
rename from public/stylesheets/bento/grid.css
rename to assets/stylesheets/bento/grid.css
diff --git a/public/stylesheets/bento/images/bg_display-sidebar.png b/assets/stylesheets/bento/images/bg_display-sidebar.png
similarity index 100%
rename from public/stylesheets/bento/images/bg_display-sidebar.png
rename to assets/stylesheets/bento/images/bg_display-sidebar.png
diff --git a/public/stylesheets/bento/images/box_content_create.png b/assets/stylesheets/bento/images/box_content_create.png
similarity index 100%
rename from public/stylesheets/bento/images/box_content_create.png
rename to assets/stylesheets/bento/images/box_content_create.png
diff --git a/public/stylesheets/bento/images/box_content_discover.png b/assets/stylesheets/bento/images/box_content_discover.png
similarity index 100%
rename from public/stylesheets/bento/images/box_content_discover.png
rename to assets/stylesheets/bento/images/box_content_discover.png
diff --git a/public/stylesheets/bento/images/box_content_get.png b/assets/stylesheets/bento/images/box_content_get.png
similarity index 100%
rename from public/stylesheets/bento/images/box_content_get.png
rename to assets/stylesheets/bento/images/box_content_get.png
diff --git a/public/stylesheets/bento/images/gradient-dark-nav.png b/assets/stylesheets/bento/images/gradient-dark-nav.png
similarity index 100%
rename from public/stylesheets/bento/images/gradient-dark-nav.png
rename to assets/stylesheets/bento/images/gradient-dark-nav.png
diff --git a/public/stylesheets/bento/images/gradient-dark.png b/assets/stylesheets/bento/images/gradient-dark.png
similarity index 100%
rename from public/stylesheets/bento/images/gradient-dark.png
rename to assets/stylesheets/bento/images/gradient-dark.png
diff --git a/public/stylesheets/bento/images/gradient-darker.png b/assets/stylesheets/bento/images/gradient-darker.png
similarity index 100%
rename from public/stylesheets/bento/images/gradient-darker.png
rename to assets/stylesheets/bento/images/gradient-darker.png
diff --git a/public/stylesheets/bento/images/gradient-light-short-02.png b/assets/stylesheets/bento/images/gradient-light-short-02.png
similarity index 100%
rename from public/stylesheets/bento/images/gradient-light-short-02.png
rename to assets/stylesheets/bento/images/gradient-light-short-02.png
diff --git a/public/stylesheets/bento/images/gradient-light-short-green.png b/assets/stylesheets/bento/images/gradient-light-short-green.png
similarity index 100%
rename from public/stylesheets/bento/images/gradient-light-short-green.png
rename to assets/stylesheets/bento/images/gradient-light-short-green.png
diff --git a/public/stylesheets/bento/images/gradient-light-short.png b/assets/stylesheets/bento/images/gradient-light-short.png
similarity index 100%
rename from public/stylesheets/bento/images/gradient-light-short.png
rename to assets/stylesheets/bento/images/gradient-light-short.png
diff --git a/public/stylesheets/bento/images/gradient-light-short.psd b/assets/stylesheets/bento/images/gradient-light-short.psd
similarity index 100%
rename from public/stylesheets/bento/images/gradient-light-short.psd
rename to assets/stylesheets/bento/images/gradient-light-short.psd
diff --git a/public/stylesheets/bento/images/gradient-light.png b/assets/stylesheets/bento/images/gradient-light.png
similarity index 100%
rename from public/stylesheets/bento/images/gradient-light.png
rename to assets/stylesheets/bento/images/gradient-light.png
diff --git a/public/stylesheets/bento/images/gradient-light.psd b/assets/stylesheets/bento/images/gradient-light.psd
similarity index 100%
rename from public/stylesheets/bento/images/gradient-light.psd
rename to assets/stylesheets/bento/images/gradient-light.psd
diff --git a/public/stylesheets/bento/images/gradient-medium-short.png b/assets/stylesheets/bento/images/gradient-medium-short.png
similarity index 100%
rename from public/stylesheets/bento/images/gradient-medium-short.png
rename to assets/stylesheets/bento/images/gradient-medium-short.png
diff --git a/public/stylesheets/bento/images/gradient-medium.png b/assets/stylesheets/bento/images/gradient-medium.png
similarity index 100%
rename from public/stylesheets/bento/images/gradient-medium.png
rename to assets/stylesheets/bento/images/gradient-medium.png
diff --git a/public/stylesheets/bento/images/lp-quicklink-bg.png b/assets/stylesheets/bento/images/lp-quicklink-bg.png
similarity index 100%
rename from public/stylesheets/bento/images/lp-quicklink-bg.png
rename to assets/stylesheets/bento/images/lp-quicklink-bg.png
diff --git a/public/stylesheets/bento/images/right_btn.png b/assets/stylesheets/bento/images/right_btn.png
similarity index 100%
rename from public/stylesheets/bento/images/right_btn.png
rename to assets/stylesheets/bento/images/right_btn.png
diff --git a/public/stylesheets/bento/images/unfold-indicator-single-blue.png b/assets/stylesheets/bento/images/unfold-indicator-single-blue.png
similarity index 100%
rename from public/stylesheets/bento/images/unfold-indicator-single-blue.png
rename to assets/stylesheets/bento/images/unfold-indicator-single-blue.png
diff --git a/public/stylesheets/bento/images/unfold-indicator-single.png b/assets/stylesheets/bento/images/unfold-indicator-single.png
similarity index 100%
rename from public/stylesheets/bento/images/unfold-indicator-single.png
rename to assets/stylesheets/bento/images/unfold-indicator-single.png
diff --git a/public/stylesheets/bento/images/unfold-indikator.png b/assets/stylesheets/bento/images/unfold-indikator.png
similarity index 100%
rename from public/stylesheets/bento/images/unfold-indikator.png
rename to assets/stylesheets/bento/images/unfold-indikator.png
diff --git a/public/stylesheets/bento/print.css b/assets/stylesheets/bento/print.css
similarity index 100%
rename from public/stylesheets/bento/print.css
rename to assets/stylesheets/bento/print.css
diff --git a/public/stylesheets/bento/reset.css b/assets/stylesheets/bento/reset.css
similarity index 100%
rename from public/stylesheets/bento/reset.css
rename to assets/stylesheets/bento/reset.css
diff --git a/public/stylesheets/bento/style.css b/assets/stylesheets/bento/style.css
similarity index 100%
rename from public/stylesheets/bento/style.css
rename to assets/stylesheets/bento/style.css
diff --git a/public/stylesheets/bento/style.fluid.css b/assets/stylesheets/bento/style.fluid.css
similarity index 100%
rename from public/stylesheets/bento/style.fluid.css
rename to assets/stylesheets/bento/style.fluid.css
diff --git a/public/stylesheets/chosen.css b/assets/stylesheets/chosen.css
similarity index 100%
rename from public/stylesheets/chosen.css
rename to assets/stylesheets/chosen.css
diff --git a/public/stylesheets/codemirror.css b/assets/stylesheets/codemirror.css
similarity index 100%
rename from public/stylesheets/codemirror.css
rename to assets/stylesheets/codemirror.css
diff --git a/public/stylesheets/comments.css b/assets/stylesheets/comments.css
similarity index 100%
rename from public/stylesheets/comments.css
rename to assets/stylesheets/comments.css
diff --git a/public/stylesheets/cropper.css b/assets/stylesheets/cropper.css
similarity index 100%
rename from public/stylesheets/cropper.css
rename to assets/stylesheets/cropper.css
diff --git a/public/stylesheets/dataTables.bootstrap.css b/assets/stylesheets/dataTables.bootstrap.css
similarity index 100%
rename from public/stylesheets/dataTables.bootstrap.css
rename to assets/stylesheets/dataTables.bootstrap.css
diff --git a/public/stylesheets/jquery.dataTables.css b/assets/stylesheets/jquery.dataTables.css
similarity index 100%
rename from public/stylesheets/jquery.dataTables.css
rename to assets/stylesheets/jquery.dataTables.css
diff --git a/public/stylesheets/openqa.css b/assets/stylesheets/openqa.css
similarity index 100%
rename from public/stylesheets/openqa.css
rename to assets/stylesheets/openqa.css
diff --git a/public/stylesheets/overview.scss b/assets/stylesheets/overview.scss
similarity index 100%
rename from public/stylesheets/overview.scss
rename to assets/stylesheets/overview.scss
diff --git a/public/stylesheets/tables.css b/assets/stylesheets/tables.css
similarity index 100%
rename from public/stylesheets/tables.css
rename to assets/stylesheets/tables.css
diff --git a/cpanfile b/cpanfile
index e0cdec121bd..6e1aeaf02e7 100644
--- a/cpanfile
+++ b/cpanfile
@@ -1,5 +1,6 @@
requires 'Archive::Extract';
requires 'CGI';
+requires 'CSS::Minifier::XS', '>= 0.01';
requires 'Cache::Cache';
requires 'Carp';
requires 'Clone';
@@ -11,10 +12,10 @@ requires 'DBIx::Class';
requires 'DBIx::Class::Core';
requires 'DBIx::Class::DeploymentHandler';
requires 'DBIx::Class::DynamicDefault';
+requires 'DBIx::Class::OptimisticLocking';
requires 'DBIx::Class::ResultClass::HashRefInflator';
requires 'DBIx::Class::Schema';
requires 'DBIx::Class::Storage::Statistics';
-requires 'DBIx::Class::OptimisticLocking';
requires 'Data::Dump';
requires 'Data::Dumper';
requires 'Data::OptList';
@@ -37,6 +38,7 @@ requires 'IO::Socket::SSL';
requires 'IPC::Cmd';
requires 'IPC::Run';
requires 'JSON';
+requires 'JavaScript::Minifier::XS', '>= 0.11';
requires 'LWP::UserAgent';
requires 'List::MoreUtils';
requires 'MRO::Compat';
@@ -52,7 +54,7 @@ requires 'Mojo::Util';
requires 'Mojolicious';
requires 'Mojolicious::Commands';
requires 'Mojolicious::Plugin';
-requires 'Mojolicious::Plugin::AssetPack', '<= 0.69';
+requires 'Mojolicious::Plugin::AssetPack', '>= 1.1';
requires 'Mojolicious::Plugin::Bootstrap3';
requires 'Mojolicious::Static';
requires 'Net::DBus';
@@ -62,15 +64,15 @@ requires 'Params::Util';
requires 'Params::Validate';
requires 'Perl::Tidy';
requires 'Regexp::Common';
-requires 'SQL::Translator';
requires 'SQL::SplitStatement';
+requires 'SQL::Translator';
requires 'Scalar::Util';
requires 'Selenium::Remote::Driver';
requires 'Sub::Install';
requires 'Sub::Name';
+requires 'Test::Compile';
requires 'Test::Mojo';
requires 'Test::More';
-requires 'Test::Compile';
requires 'Text::Markdown';
requires 'Time::HiRes';
requires 'URI::Escape';
diff --git a/lib/OpenQA/WebAPI.pm b/lib/OpenQA/WebAPI.pm
index 9cf5eb01c00..336c64bc33e 100644
--- a/lib/OpenQA/WebAPI.pm
+++ b/lib/OpenQA/WebAPI.pm
@@ -229,7 +229,7 @@ sub startup {
unshift @{$self->renderer->paths}, '/etc/openqa/templates';
- $self->plugin('AssetPack');
+ $self->plugin(AssetPack => {pipes => [qw(Sass Css JavaScript Combine Fetch)]});
$self->plugin('OpenQA::WebAPI::Plugin::Helpers');
$self->plugin('OpenQA::WebAPI::Plugin::CSRF');
$self->plugin('OpenQA::WebAPI::Plugin::REST');
@@ -249,62 +249,51 @@ sub startup {
}
}
- $self->plugin(bootstrap3 => {css => [], js => []});
-
- $self->asset(
- 'step_edit.js' => qw(/javascripts/needleedit.js
- /javascripts/needleeditor.js
- /javascripts/shapes.js
- /javascripts/keyevent.js/)
+ $self->asset->process(
+ 'step_edit.js' => qw(javascripts/needleedit.js
+ javascripts/needleeditor.js
+ javascripts/shapes.js
+ javascripts/keyevent.js/)
);
- my @js = qw(/javascripts/jquery-1.11.2.js
- /javascripts/jquery_ujs.js
- /javascripts/chosen.jquery.js
- /javascripts/openqa.js
- /javascripts/jquery.dataTables.js
- /javascripts/admintable.js
- /javascripts/admin_user.js
- /javascripts/admin_needle.js
- /javascripts/audit_log.js
- /javascripts/jquery.timeago.js
- /javascripts/tests.js
- /javascripts/assets.js
- /javascripts/job_templates.js
- /javascripts/overview.js
- /javascripts/comments.js);
- my @css = qw(/stylesheets/font-awesome.css
- /stylesheets/chosen.css
- /stylesheets/overview.scss
- /stylesheets/comments.css
- /stylesheets/openqa.css );
-
- # preprocessors to expend the url() definitions in the css
- $self->asset->preprocessors->add(
- css => sub {
- my ($assetpack, $text, $file) = @_;
- $$text =~ s!url\('!url('../images/!g if $file =~ /chosen.css/;
- });
-
- $self->asset('app.css' => (qw(/stylesheets/jquery.dataTables.css /stylesheets/tables.css), @css));
- $self->asset('app.js' => @js);
- my $path = Mojolicious::Plugin::Bootstrap3->asset_path('sass');
- $ENV{SASS_PATH} = ".:$path";
- $self->asset(
- 'bootstrap.css' => (
- qw(/sass/bentostrap.scss
- /stylesheets/dataTables.bootstrap.css
- ), @css
- ));
- $self->asset(
- 'bootstrap.js' => (
- @js, qw(/js/bootstrap/collapse.js
- /js/bootstrap/tooltip.js
- /js/bootstrap/tab.js
- /js/bootstrap/bootstrap.js
- /js/bootstrap/transition.js
- /javascripts/dataTables.bootstrap.js)
- ));
+ my @js = qw(http://code.jquery.com/jquery-1.11.2.js
+ javascripts/jquery_ujs.js
+ javascripts/chosen.jquery.js
+ javascripts/openqa.js
+ javascripts/jquery.dataTables.js
+ javascripts/admintable.js
+ javascripts/admin_user.js
+ javascripts/admin_needle.js
+ javascripts/audit_log.js
+ javascripts/jquery.timeago.js
+ javascripts/tests.js
+ javascripts/assets.js
+ javascripts/job_templates.js
+ javascripts/overview.js
+ javascripts/comments.js);
+ my @css = qw(https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css
+ stylesheets/chosen.css
+ stylesheets/overview.scss
+ stylesheets/comments.css
+ stylesheets/openqa.css );
+
+ # preprocessors to expend the url() definitions in the css - TODO: reenable chosen in job group
+ # $self->asset->preprocessors->add(
+ # css => sub {
+ # my ($assetpack, $text, $file) = @_;
+ # $$text =~ s!url\('!url('../images/!g if $file =~ /chosen.css/;
+ # });
+
+ my $bootstrap_url = "https://raw.githubusercontent.com/twbs/bootstrap-sass/a73cc0f0e5c794206e9a70bc0b67e67cf37c1bca/assets";
+ $self->asset->process('app.css' => (qw(stylesheets/jquery.dataTables.css stylesheets/tables.css), @css));
+ $self->asset->process('app.js' => @js);
+ $self->asset->process('bootstrap.css' => ("$bootstrap_url/stylesheets/_bootstrap.scss", "sass/bentostrap.scss", "stylesheets/dataTables.bootstrap.css", @css));
+ $self->asset->process('codemirror.css' => qw(stylesheets/codemirror.css));
+ $self->asset->process('codemirror.js' => qw(javascripts/lib/codemirror.js javascripts/mode/perl/perl.js));
+ $self->asset->process('needlediff.js' => qw(javascripts/needlediff.js));
+ $self->asset->process('running.js' => qw(javascripts/running.js));
+ $self->asset->process('bootstrap.js' => (@js, ("$bootstrap_url/javascripts/bootstrap/collapse.js", "$bootstrap_url/javascripts/bootstrap/tooltip.js", "$bootstrap_url/javascripts/bootstrap/tab.js", "$bootstrap_url/javascripts/bootstrap.js", "$bootstrap_url/javascripts/bootstrap/transition.js", "javascripts/dataTables.bootstrap.js")));
+ $self->asset->store;
# set secure flag on cookies of https connections
$self->hook(
diff --git a/profiles/apparmor.d/usr.share.openqa.script.openqa b/profiles/apparmor.d/usr.share.openqa.script.openqa
index c1252abd6a4..9815de2d3d0 100644
--- a/profiles/apparmor.d/usr.share.openqa.script.openqa
+++ b/profiles/apparmor.d/usr.share.openqa.script.openqa
@@ -27,6 +27,7 @@
/usr/share/openqa/dbicdh/** r,
/usr/share/openqa/lib/** r,
/usr/share/openqa/public/** r,
+ /usr/share/openqa/assets/** r,
/usr/share/openqa/script/openqa r,
/usr/share/openqa/templates/ r,
/usr/share/openqa/templates/** r,
diff --git a/public/asset/images b/public/asset/images
new file mode 120000
index 00000000000..e4c5bd02a10
--- /dev/null
+++ b/public/asset/images
@@ -0,0 +1 @@
+../images/
\ No newline at end of file
diff --git a/public/fonts/FontAwesome.otf b/public/fonts/FontAwesome.otf
deleted file mode 100644
index f7936cc1e78..00000000000
Binary files a/public/fonts/FontAwesome.otf and /dev/null differ
diff --git a/public/fonts/fontawesome-webfont.eot b/public/fonts/fontawesome-webfont.eot
deleted file mode 100644
index 33b2bb80055..00000000000
Binary files a/public/fonts/fontawesome-webfont.eot and /dev/null differ
diff --git a/public/fonts/fontawesome-webfont.svg b/public/fonts/fontawesome-webfont.svg
deleted file mode 100644
index 1ee89d4368d..00000000000
--- a/public/fonts/fontawesome-webfont.svg
+++ /dev/null
@@ -1,565 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/public/fonts/fontawesome-webfont.ttf b/public/fonts/fontawesome-webfont.ttf
deleted file mode 100644
index ed9372f8ea0..00000000000
Binary files a/public/fonts/fontawesome-webfont.ttf and /dev/null differ
diff --git a/public/fonts/fontawesome-webfont.woff b/public/fonts/fontawesome-webfont.woff
deleted file mode 100644
index 8b280b98fa2..00000000000
Binary files a/public/fonts/fontawesome-webfont.woff and /dev/null differ
diff --git a/public/fonts/fontawesome-webfont.woff2 b/public/fonts/fontawesome-webfont.woff2
deleted file mode 100644
index 3311d585145..00000000000
Binary files a/public/fonts/fontawesome-webfont.woff2 and /dev/null differ
diff --git a/public/stylesheets/font-awesome.css b/public/stylesheets/font-awesome.css
deleted file mode 100644
index 2dcdc220722..00000000000
--- a/public/stylesheets/font-awesome.css
+++ /dev/null
@@ -1,1801 +0,0 @@
-/*!
- * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome
- * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */
-/* FONT PATH
- * -------------------------- */
-@font-face {
- font-family: 'FontAwesome';
- src: url('../fonts/fontawesome-webfont.eot?v=4.3.0');
- src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');
- font-weight: normal;
- font-style: normal;
-}
-.fa {
- display: inline-block;
- font: normal normal normal 14px/1 FontAwesome;
- font-size: inherit;
- text-rendering: auto;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- transform: translate(0, 0);
-}
-/* makes the font 33% larger relative to the icon container */
-.fa-lg {
- font-size: 1.33333333em;
- line-height: 0.75em;
- vertical-align: -15%;
-}
-.fa-2x {
- font-size: 2em;
-}
-.fa-3x {
- font-size: 3em;
-}
-.fa-4x {
- font-size: 4em;
-}
-.fa-5x {
- font-size: 5em;
-}
-.fa-fw {
- width: 1.28571429em;
- text-align: center;
-}
-.fa-ul {
- padding-left: 0;
- margin-left: 2.14285714em;
- list-style-type: none;
-}
-.fa-ul > li {
- position: relative;
-}
-.fa-li {
- position: absolute;
- left: -2.14285714em;
- width: 2.14285714em;
- top: 0.14285714em;
- text-align: center;
-}
-.fa-li.fa-lg {
- left: -1.85714286em;
-}
-.fa-border {
- padding: .2em .25em .15em;
- border: solid 0.08em #eeeeee;
- border-radius: .1em;
-}
-.pull-right {
- float: right;
-}
-.pull-left {
- float: left;
-}
-.fa.pull-left {
- margin-right: .3em;
-}
-.fa.pull-right {
- margin-left: .3em;
-}
-.fa-spin {
- -webkit-animation: fa-spin 2s infinite linear;
- animation: fa-spin 2s infinite linear;
-}
-.fa-pulse {
- -webkit-animation: fa-spin 1s infinite steps(8);
- animation: fa-spin 1s infinite steps(8);
-}
-@-webkit-keyframes fa-spin {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(359deg);
- transform: rotate(359deg);
- }
-}
-@keyframes fa-spin {
- 0% {
- -webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- -webkit-transform: rotate(359deg);
- transform: rotate(359deg);
- }
-}
-.fa-rotate-90 {
- filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
- -webkit-transform: rotate(90deg);
- -ms-transform: rotate(90deg);
- transform: rotate(90deg);
-}
-.fa-rotate-180 {
- filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
- -webkit-transform: rotate(180deg);
- -ms-transform: rotate(180deg);
- transform: rotate(180deg);
-}
-.fa-rotate-270 {
- filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
- -webkit-transform: rotate(270deg);
- -ms-transform: rotate(270deg);
- transform: rotate(270deg);
-}
-.fa-flip-horizontal {
- filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
- -webkit-transform: scale(-1, 1);
- -ms-transform: scale(-1, 1);
- transform: scale(-1, 1);
-}
-.fa-flip-vertical {
- filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
- -webkit-transform: scale(1, -1);
- -ms-transform: scale(1, -1);
- transform: scale(1, -1);
-}
-:root .fa-rotate-90,
-:root .fa-rotate-180,
-:root .fa-rotate-270,
-:root .fa-flip-horizontal,
-:root .fa-flip-vertical {
- filter: none;
-}
-.fa-stack {
- position: relative;
- display: inline-block;
- width: 2em;
- height: 2em;
- line-height: 2em;
- vertical-align: middle;
-}
-.fa-stack-1x,
-.fa-stack-2x {
- position: absolute;
- left: 0;
- width: 100%;
- text-align: center;
-}
-.fa-stack-1x {
- line-height: inherit;
-}
-.fa-stack-2x {
- font-size: 2em;
-}
-.fa-inverse {
- color: #ffffff;
-}
-/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
- readers do not read off random characters that represent icons */
-.fa-glass:before {
- content: "\f000";
-}
-.fa-music:before {
- content: "\f001";
-}
-.fa-search:before {
- content: "\f002";
-}
-.fa-envelope-o:before {
- content: "\f003";
-}
-.fa-heart:before {
- content: "\f004";
-}
-.fa-star:before {
- content: "\f005";
-}
-.fa-star-o:before {
- content: "\f006";
-}
-.fa-user:before {
- content: "\f007";
-}
-.fa-film:before {
- content: "\f008";
-}
-.fa-th-large:before {
- content: "\f009";
-}
-.fa-th:before {
- content: "\f00a";
-}
-.fa-th-list:before {
- content: "\f00b";
-}
-.fa-check:before {
- content: "\f00c";
-}
-.fa-remove:before,
-.fa-close:before,
-.fa-times:before {
- content: "\f00d";
-}
-.fa-search-plus:before {
- content: "\f00e";
-}
-.fa-search-minus:before {
- content: "\f010";
-}
-.fa-power-off:before {
- content: "\f011";
-}
-.fa-signal:before {
- content: "\f012";
-}
-.fa-gear:before,
-.fa-cog:before {
- content: "\f013";
-}
-.fa-trash-o:before {
- content: "\f014";
-}
-.fa-home:before {
- content: "\f015";
-}
-.fa-file-o:before {
- content: "\f016";
-}
-.fa-clock-o:before {
- content: "\f017";
-}
-.fa-road:before {
- content: "\f018";
-}
-.fa-download:before {
- content: "\f019";
-}
-.fa-arrow-circle-o-down:before {
- content: "\f01a";
-}
-.fa-arrow-circle-o-up:before {
- content: "\f01b";
-}
-.fa-inbox:before {
- content: "\f01c";
-}
-.fa-play-circle-o:before {
- content: "\f01d";
-}
-.fa-rotate-right:before,
-.fa-repeat:before {
- content: "\f01e";
-}
-.fa-refresh:before {
- content: "\f021";
-}
-.fa-list-alt:before {
- content: "\f022";
-}
-.fa-lock:before {
- content: "\f023";
-}
-.fa-flag:before {
- content: "\f024";
-}
-.fa-headphones:before {
- content: "\f025";
-}
-.fa-volume-off:before {
- content: "\f026";
-}
-.fa-volume-down:before {
- content: "\f027";
-}
-.fa-volume-up:before {
- content: "\f028";
-}
-.fa-qrcode:before {
- content: "\f029";
-}
-.fa-barcode:before {
- content: "\f02a";
-}
-.fa-tag:before {
- content: "\f02b";
-}
-.fa-tags:before {
- content: "\f02c";
-}
-.fa-book:before {
- content: "\f02d";
-}
-.fa-bookmark:before {
- content: "\f02e";
-}
-.fa-print:before {
- content: "\f02f";
-}
-.fa-camera:before {
- content: "\f030";
-}
-.fa-font:before {
- content: "\f031";
-}
-.fa-bold:before {
- content: "\f032";
-}
-.fa-italic:before {
- content: "\f033";
-}
-.fa-text-height:before {
- content: "\f034";
-}
-.fa-text-width:before {
- content: "\f035";
-}
-.fa-align-left:before {
- content: "\f036";
-}
-.fa-align-center:before {
- content: "\f037";
-}
-.fa-align-right:before {
- content: "\f038";
-}
-.fa-align-justify:before {
- content: "\f039";
-}
-.fa-list:before {
- content: "\f03a";
-}
-.fa-dedent:before,
-.fa-outdent:before {
- content: "\f03b";
-}
-.fa-indent:before {
- content: "\f03c";
-}
-.fa-video-camera:before {
- content: "\f03d";
-}
-.fa-photo:before,
-.fa-image:before,
-.fa-picture-o:before {
- content: "\f03e";
-}
-.fa-pencil:before {
- content: "\f040";
-}
-.fa-map-marker:before {
- content: "\f041";
-}
-.fa-adjust:before {
- content: "\f042";
-}
-.fa-tint:before {
- content: "\f043";
-}
-.fa-edit:before,
-.fa-pencil-square-o:before {
- content: "\f044";
-}
-.fa-share-square-o:before {
- content: "\f045";
-}
-.fa-check-square-o:before {
- content: "\f046";
-}
-.fa-arrows:before {
- content: "\f047";
-}
-.fa-step-backward:before {
- content: "\f048";
-}
-.fa-fast-backward:before {
- content: "\f049";
-}
-.fa-backward:before {
- content: "\f04a";
-}
-.fa-play:before {
- content: "\f04b";
-}
-.fa-pause:before {
- content: "\f04c";
-}
-.fa-stop:before {
- content: "\f04d";
-}
-.fa-forward:before {
- content: "\f04e";
-}
-.fa-fast-forward:before {
- content: "\f050";
-}
-.fa-step-forward:before {
- content: "\f051";
-}
-.fa-eject:before {
- content: "\f052";
-}
-.fa-chevron-left:before {
- content: "\f053";
-}
-.fa-chevron-right:before {
- content: "\f054";
-}
-.fa-plus-circle:before {
- content: "\f055";
-}
-.fa-minus-circle:before {
- content: "\f056";
-}
-.fa-times-circle:before {
- content: "\f057";
-}
-.fa-check-circle:before {
- content: "\f058";
-}
-.fa-question-circle:before {
- content: "\f059";
-}
-.fa-info-circle:before {
- content: "\f05a";
-}
-.fa-crosshairs:before {
- content: "\f05b";
-}
-.fa-times-circle-o:before {
- content: "\f05c";
-}
-.fa-check-circle-o:before {
- content: "\f05d";
-}
-.fa-ban:before {
- content: "\f05e";
-}
-.fa-arrow-left:before {
- content: "\f060";
-}
-.fa-arrow-right:before {
- content: "\f061";
-}
-.fa-arrow-up:before {
- content: "\f062";
-}
-.fa-arrow-down:before {
- content: "\f063";
-}
-.fa-mail-forward:before,
-.fa-share:before {
- content: "\f064";
-}
-.fa-expand:before {
- content: "\f065";
-}
-.fa-compress:before {
- content: "\f066";
-}
-.fa-plus:before {
- content: "\f067";
-}
-.fa-minus:before {
- content: "\f068";
-}
-.fa-asterisk:before {
- content: "\f069";
-}
-.fa-exclamation-circle:before {
- content: "\f06a";
-}
-.fa-gift:before {
- content: "\f06b";
-}
-.fa-leaf:before {
- content: "\f06c";
-}
-.fa-fire:before {
- content: "\f06d";
-}
-.fa-eye:before {
- content: "\f06e";
-}
-.fa-eye-slash:before {
- content: "\f070";
-}
-.fa-warning:before,
-.fa-exclamation-triangle:before {
- content: "\f071";
-}
-.fa-plane:before {
- content: "\f072";
-}
-.fa-calendar:before {
- content: "\f073";
-}
-.fa-random:before {
- content: "\f074";
-}
-.fa-comment:before {
- content: "\f075";
-}
-.fa-magnet:before {
- content: "\f076";
-}
-.fa-chevron-up:before {
- content: "\f077";
-}
-.fa-chevron-down:before {
- content: "\f078";
-}
-.fa-retweet:before {
- content: "\f079";
-}
-.fa-shopping-cart:before {
- content: "\f07a";
-}
-.fa-folder:before {
- content: "\f07b";
-}
-.fa-folder-open:before {
- content: "\f07c";
-}
-.fa-arrows-v:before {
- content: "\f07d";
-}
-.fa-arrows-h:before {
- content: "\f07e";
-}
-.fa-bar-chart-o:before,
-.fa-bar-chart:before {
- content: "\f080";
-}
-.fa-twitter-square:before {
- content: "\f081";
-}
-.fa-facebook-square:before {
- content: "\f082";
-}
-.fa-camera-retro:before {
- content: "\f083";
-}
-.fa-key:before {
- content: "\f084";
-}
-.fa-gears:before,
-.fa-cogs:before {
- content: "\f085";
-}
-.fa-comments:before {
- content: "\f086";
-}
-.fa-thumbs-o-up:before {
- content: "\f087";
-}
-.fa-thumbs-o-down:before {
- content: "\f088";
-}
-.fa-star-half:before {
- content: "\f089";
-}
-.fa-heart-o:before {
- content: "\f08a";
-}
-.fa-sign-out:before {
- content: "\f08b";
-}
-.fa-linkedin-square:before {
- content: "\f08c";
-}
-.fa-thumb-tack:before {
- content: "\f08d";
-}
-.fa-external-link:before {
- content: "\f08e";
-}
-.fa-sign-in:before {
- content: "\f090";
-}
-.fa-trophy:before {
- content: "\f091";
-}
-.fa-github-square:before {
- content: "\f092";
-}
-.fa-upload:before {
- content: "\f093";
-}
-.fa-lemon-o:before {
- content: "\f094";
-}
-.fa-phone:before {
- content: "\f095";
-}
-.fa-square-o:before {
- content: "\f096";
-}
-.fa-bookmark-o:before {
- content: "\f097";
-}
-.fa-phone-square:before {
- content: "\f098";
-}
-.fa-twitter:before {
- content: "\f099";
-}
-.fa-facebook-f:before,
-.fa-facebook:before {
- content: "\f09a";
-}
-.fa-github:before {
- content: "\f09b";
-}
-.fa-unlock:before {
- content: "\f09c";
-}
-.fa-credit-card:before {
- content: "\f09d";
-}
-.fa-rss:before {
- content: "\f09e";
-}
-.fa-hdd-o:before {
- content: "\f0a0";
-}
-.fa-bullhorn:before {
- content: "\f0a1";
-}
-.fa-bell:before {
- content: "\f0f3";
-}
-.fa-certificate:before {
- content: "\f0a3";
-}
-.fa-hand-o-right:before {
- content: "\f0a4";
-}
-.fa-hand-o-left:before {
- content: "\f0a5";
-}
-.fa-hand-o-up:before {
- content: "\f0a6";
-}
-.fa-hand-o-down:before {
- content: "\f0a7";
-}
-.fa-arrow-circle-left:before {
- content: "\f0a8";
-}
-.fa-arrow-circle-right:before {
- content: "\f0a9";
-}
-.fa-arrow-circle-up:before {
- content: "\f0aa";
-}
-.fa-arrow-circle-down:before {
- content: "\f0ab";
-}
-.fa-globe:before {
- content: "\f0ac";
-}
-.fa-wrench:before {
- content: "\f0ad";
-}
-.fa-tasks:before {
- content: "\f0ae";
-}
-.fa-filter:before {
- content: "\f0b0";
-}
-.fa-briefcase:before {
- content: "\f0b1";
-}
-.fa-arrows-alt:before {
- content: "\f0b2";
-}
-.fa-group:before,
-.fa-users:before {
- content: "\f0c0";
-}
-.fa-chain:before,
-.fa-link:before {
- content: "\f0c1";
-}
-.fa-cloud:before {
- content: "\f0c2";
-}
-.fa-flask:before {
- content: "\f0c3";
-}
-.fa-cut:before,
-.fa-scissors:before {
- content: "\f0c4";
-}
-.fa-copy:before,
-.fa-files-o:before {
- content: "\f0c5";
-}
-.fa-paperclip:before {
- content: "\f0c6";
-}
-.fa-save:before,
-.fa-floppy-o:before {
- content: "\f0c7";
-}
-.fa-square:before {
- content: "\f0c8";
-}
-.fa-navicon:before,
-.fa-reorder:before,
-.fa-bars:before {
- content: "\f0c9";
-}
-.fa-list-ul:before {
- content: "\f0ca";
-}
-.fa-list-ol:before {
- content: "\f0cb";
-}
-.fa-strikethrough:before {
- content: "\f0cc";
-}
-.fa-underline:before {
- content: "\f0cd";
-}
-.fa-table:before {
- content: "\f0ce";
-}
-.fa-magic:before {
- content: "\f0d0";
-}
-.fa-truck:before {
- content: "\f0d1";
-}
-.fa-pinterest:before {
- content: "\f0d2";
-}
-.fa-pinterest-square:before {
- content: "\f0d3";
-}
-.fa-google-plus-square:before {
- content: "\f0d4";
-}
-.fa-google-plus:before {
- content: "\f0d5";
-}
-.fa-money:before {
- content: "\f0d6";
-}
-.fa-caret-down:before {
- content: "\f0d7";
-}
-.fa-caret-up:before {
- content: "\f0d8";
-}
-.fa-caret-left:before {
- content: "\f0d9";
-}
-.fa-caret-right:before {
- content: "\f0da";
-}
-.fa-columns:before {
- content: "\f0db";
-}
-.fa-unsorted:before,
-.fa-sort:before {
- content: "\f0dc";
-}
-.fa-sort-down:before,
-.fa-sort-desc:before {
- content: "\f0dd";
-}
-.fa-sort-up:before,
-.fa-sort-asc:before {
- content: "\f0de";
-}
-.fa-envelope:before {
- content: "\f0e0";
-}
-.fa-linkedin:before {
- content: "\f0e1";
-}
-.fa-rotate-left:before,
-.fa-undo:before {
- content: "\f0e2";
-}
-.fa-legal:before,
-.fa-gavel:before {
- content: "\f0e3";
-}
-.fa-dashboard:before,
-.fa-tachometer:before {
- content: "\f0e4";
-}
-.fa-comment-o:before {
- content: "\f0e5";
-}
-.fa-comments-o:before {
- content: "\f0e6";
-}
-.fa-flash:before,
-.fa-bolt:before {
- content: "\f0e7";
-}
-.fa-sitemap:before {
- content: "\f0e8";
-}
-.fa-umbrella:before {
- content: "\f0e9";
-}
-.fa-paste:before,
-.fa-clipboard:before {
- content: "\f0ea";
-}
-.fa-lightbulb-o:before {
- content: "\f0eb";
-}
-.fa-exchange:before {
- content: "\f0ec";
-}
-.fa-cloud-download:before {
- content: "\f0ed";
-}
-.fa-cloud-upload:before {
- content: "\f0ee";
-}
-.fa-user-md:before {
- content: "\f0f0";
-}
-.fa-stethoscope:before {
- content: "\f0f1";
-}
-.fa-suitcase:before {
- content: "\f0f2";
-}
-.fa-bell-o:before {
- content: "\f0a2";
-}
-.fa-coffee:before {
- content: "\f0f4";
-}
-.fa-cutlery:before {
- content: "\f0f5";
-}
-.fa-file-text-o:before {
- content: "\f0f6";
-}
-.fa-building-o:before {
- content: "\f0f7";
-}
-.fa-hospital-o:before {
- content: "\f0f8";
-}
-.fa-ambulance:before {
- content: "\f0f9";
-}
-.fa-medkit:before {
- content: "\f0fa";
-}
-.fa-fighter-jet:before {
- content: "\f0fb";
-}
-.fa-beer:before {
- content: "\f0fc";
-}
-.fa-h-square:before {
- content: "\f0fd";
-}
-.fa-plus-square:before {
- content: "\f0fe";
-}
-.fa-angle-double-left:before {
- content: "\f100";
-}
-.fa-angle-double-right:before {
- content: "\f101";
-}
-.fa-angle-double-up:before {
- content: "\f102";
-}
-.fa-angle-double-down:before {
- content: "\f103";
-}
-.fa-angle-left:before {
- content: "\f104";
-}
-.fa-angle-right:before {
- content: "\f105";
-}
-.fa-angle-up:before {
- content: "\f106";
-}
-.fa-angle-down:before {
- content: "\f107";
-}
-.fa-desktop:before {
- content: "\f108";
-}
-.fa-laptop:before {
- content: "\f109";
-}
-.fa-tablet:before {
- content: "\f10a";
-}
-.fa-mobile-phone:before,
-.fa-mobile:before {
- content: "\f10b";
-}
-.fa-circle-o:before {
- content: "\f10c";
-}
-.fa-quote-left:before {
- content: "\f10d";
-}
-.fa-quote-right:before {
- content: "\f10e";
-}
-.fa-spinner:before {
- content: "\f110";
-}
-.fa-circle:before {
- content: "\f111";
-}
-.fa-mail-reply:before,
-.fa-reply:before {
- content: "\f112";
-}
-.fa-github-alt:before {
- content: "\f113";
-}
-.fa-folder-o:before {
- content: "\f114";
-}
-.fa-folder-open-o:before {
- content: "\f115";
-}
-.fa-smile-o:before {
- content: "\f118";
-}
-.fa-frown-o:before {
- content: "\f119";
-}
-.fa-meh-o:before {
- content: "\f11a";
-}
-.fa-gamepad:before {
- content: "\f11b";
-}
-.fa-keyboard-o:before {
- content: "\f11c";
-}
-.fa-flag-o:before {
- content: "\f11d";
-}
-.fa-flag-checkered:before {
- content: "\f11e";
-}
-.fa-terminal:before {
- content: "\f120";
-}
-.fa-code:before {
- content: "\f121";
-}
-.fa-mail-reply-all:before,
-.fa-reply-all:before {
- content: "\f122";
-}
-.fa-star-half-empty:before,
-.fa-star-half-full:before,
-.fa-star-half-o:before {
- content: "\f123";
-}
-.fa-location-arrow:before {
- content: "\f124";
-}
-.fa-crop:before {
- content: "\f125";
-}
-.fa-code-fork:before {
- content: "\f126";
-}
-.fa-unlink:before,
-.fa-chain-broken:before {
- content: "\f127";
-}
-.fa-question:before {
- content: "\f128";
-}
-.fa-info:before {
- content: "\f129";
-}
-.fa-exclamation:before {
- content: "\f12a";
-}
-.fa-superscript:before {
- content: "\f12b";
-}
-.fa-subscript:before {
- content: "\f12c";
-}
-.fa-eraser:before {
- content: "\f12d";
-}
-.fa-puzzle-piece:before {
- content: "\f12e";
-}
-.fa-microphone:before {
- content: "\f130";
-}
-.fa-microphone-slash:before {
- content: "\f131";
-}
-.fa-shield:before {
- content: "\f132";
-}
-.fa-calendar-o:before {
- content: "\f133";
-}
-.fa-fire-extinguisher:before {
- content: "\f134";
-}
-.fa-rocket:before {
- content: "\f135";
-}
-.fa-maxcdn:before {
- content: "\f136";
-}
-.fa-chevron-circle-left:before {
- content: "\f137";
-}
-.fa-chevron-circle-right:before {
- content: "\f138";
-}
-.fa-chevron-circle-up:before {
- content: "\f139";
-}
-.fa-chevron-circle-down:before {
- content: "\f13a";
-}
-.fa-html5:before {
- content: "\f13b";
-}
-.fa-css3:before {
- content: "\f13c";
-}
-.fa-anchor:before {
- content: "\f13d";
-}
-.fa-unlock-alt:before {
- content: "\f13e";
-}
-.fa-bullseye:before {
- content: "\f140";
-}
-.fa-ellipsis-h:before {
- content: "\f141";
-}
-.fa-ellipsis-v:before {
- content: "\f142";
-}
-.fa-rss-square:before {
- content: "\f143";
-}
-.fa-play-circle:before {
- content: "\f144";
-}
-.fa-ticket:before {
- content: "\f145";
-}
-.fa-minus-square:before {
- content: "\f146";
-}
-.fa-minus-square-o:before {
- content: "\f147";
-}
-.fa-level-up:before {
- content: "\f148";
-}
-.fa-level-down:before {
- content: "\f149";
-}
-.fa-check-square:before {
- content: "\f14a";
-}
-.fa-pencil-square:before {
- content: "\f14b";
-}
-.fa-external-link-square:before {
- content: "\f14c";
-}
-.fa-share-square:before {
- content: "\f14d";
-}
-.fa-compass:before {
- content: "\f14e";
-}
-.fa-toggle-down:before,
-.fa-caret-square-o-down:before {
- content: "\f150";
-}
-.fa-toggle-up:before,
-.fa-caret-square-o-up:before {
- content: "\f151";
-}
-.fa-toggle-right:before,
-.fa-caret-square-o-right:before {
- content: "\f152";
-}
-.fa-euro:before,
-.fa-eur:before {
- content: "\f153";
-}
-.fa-gbp:before {
- content: "\f154";
-}
-.fa-dollar:before,
-.fa-usd:before {
- content: "\f155";
-}
-.fa-rupee:before,
-.fa-inr:before {
- content: "\f156";
-}
-.fa-cny:before,
-.fa-rmb:before,
-.fa-yen:before,
-.fa-jpy:before {
- content: "\f157";
-}
-.fa-ruble:before,
-.fa-rouble:before,
-.fa-rub:before {
- content: "\f158";
-}
-.fa-won:before,
-.fa-krw:before {
- content: "\f159";
-}
-.fa-bitcoin:before,
-.fa-btc:before {
- content: "\f15a";
-}
-.fa-file:before {
- content: "\f15b";
-}
-.fa-file-text:before {
- content: "\f15c";
-}
-.fa-sort-alpha-asc:before {
- content: "\f15d";
-}
-.fa-sort-alpha-desc:before {
- content: "\f15e";
-}
-.fa-sort-amount-asc:before {
- content: "\f160";
-}
-.fa-sort-amount-desc:before {
- content: "\f161";
-}
-.fa-sort-numeric-asc:before {
- content: "\f162";
-}
-.fa-sort-numeric-desc:before {
- content: "\f163";
-}
-.fa-thumbs-up:before {
- content: "\f164";
-}
-.fa-thumbs-down:before {
- content: "\f165";
-}
-.fa-youtube-square:before {
- content: "\f166";
-}
-.fa-youtube:before {
- content: "\f167";
-}
-.fa-xing:before {
- content: "\f168";
-}
-.fa-xing-square:before {
- content: "\f169";
-}
-.fa-youtube-play:before {
- content: "\f16a";
-}
-.fa-dropbox:before {
- content: "\f16b";
-}
-.fa-stack-overflow:before {
- content: "\f16c";
-}
-.fa-instagram:before {
- content: "\f16d";
-}
-.fa-flickr:before {
- content: "\f16e";
-}
-.fa-adn:before {
- content: "\f170";
-}
-.fa-bitbucket:before {
- content: "\f171";
-}
-.fa-bitbucket-square:before {
- content: "\f172";
-}
-.fa-tumblr:before {
- content: "\f173";
-}
-.fa-tumblr-square:before {
- content: "\f174";
-}
-.fa-long-arrow-down:before {
- content: "\f175";
-}
-.fa-long-arrow-up:before {
- content: "\f176";
-}
-.fa-long-arrow-left:before {
- content: "\f177";
-}
-.fa-long-arrow-right:before {
- content: "\f178";
-}
-.fa-apple:before {
- content: "\f179";
-}
-.fa-windows:before {
- content: "\f17a";
-}
-.fa-android:before {
- content: "\f17b";
-}
-.fa-linux:before {
- content: "\f17c";
-}
-.fa-dribbble:before {
- content: "\f17d";
-}
-.fa-skype:before {
- content: "\f17e";
-}
-.fa-foursquare:before {
- content: "\f180";
-}
-.fa-trello:before {
- content: "\f181";
-}
-.fa-female:before {
- content: "\f182";
-}
-.fa-male:before {
- content: "\f183";
-}
-.fa-gittip:before,
-.fa-gratipay:before {
- content: "\f184";
-}
-.fa-sun-o:before {
- content: "\f185";
-}
-.fa-moon-o:before {
- content: "\f186";
-}
-.fa-archive:before {
- content: "\f187";
-}
-.fa-bug:before {
- content: "\f188";
-}
-.fa-vk:before {
- content: "\f189";
-}
-.fa-weibo:before {
- content: "\f18a";
-}
-.fa-renren:before {
- content: "\f18b";
-}
-.fa-pagelines:before {
- content: "\f18c";
-}
-.fa-stack-exchange:before {
- content: "\f18d";
-}
-.fa-arrow-circle-o-right:before {
- content: "\f18e";
-}
-.fa-arrow-circle-o-left:before {
- content: "\f190";
-}
-.fa-toggle-left:before,
-.fa-caret-square-o-left:before {
- content: "\f191";
-}
-.fa-dot-circle-o:before {
- content: "\f192";
-}
-.fa-wheelchair:before {
- content: "\f193";
-}
-.fa-vimeo-square:before {
- content: "\f194";
-}
-.fa-turkish-lira:before,
-.fa-try:before {
- content: "\f195";
-}
-.fa-plus-square-o:before {
- content: "\f196";
-}
-.fa-space-shuttle:before {
- content: "\f197";
-}
-.fa-slack:before {
- content: "\f198";
-}
-.fa-envelope-square:before {
- content: "\f199";
-}
-.fa-wordpress:before {
- content: "\f19a";
-}
-.fa-openid:before {
- content: "\f19b";
-}
-.fa-institution:before,
-.fa-bank:before,
-.fa-university:before {
- content: "\f19c";
-}
-.fa-mortar-board:before,
-.fa-graduation-cap:before {
- content: "\f19d";
-}
-.fa-yahoo:before {
- content: "\f19e";
-}
-.fa-google:before {
- content: "\f1a0";
-}
-.fa-reddit:before {
- content: "\f1a1";
-}
-.fa-reddit-square:before {
- content: "\f1a2";
-}
-.fa-stumbleupon-circle:before {
- content: "\f1a3";
-}
-.fa-stumbleupon:before {
- content: "\f1a4";
-}
-.fa-delicious:before {
- content: "\f1a5";
-}
-.fa-digg:before {
- content: "\f1a6";
-}
-.fa-pied-piper:before {
- content: "\f1a7";
-}
-.fa-pied-piper-alt:before {
- content: "\f1a8";
-}
-.fa-drupal:before {
- content: "\f1a9";
-}
-.fa-joomla:before {
- content: "\f1aa";
-}
-.fa-language:before {
- content: "\f1ab";
-}
-.fa-fax:before {
- content: "\f1ac";
-}
-.fa-building:before {
- content: "\f1ad";
-}
-.fa-child:before {
- content: "\f1ae";
-}
-.fa-paw:before {
- content: "\f1b0";
-}
-.fa-spoon:before {
- content: "\f1b1";
-}
-.fa-cube:before {
- content: "\f1b2";
-}
-.fa-cubes:before {
- content: "\f1b3";
-}
-.fa-behance:before {
- content: "\f1b4";
-}
-.fa-behance-square:before {
- content: "\f1b5";
-}
-.fa-steam:before {
- content: "\f1b6";
-}
-.fa-steam-square:before {
- content: "\f1b7";
-}
-.fa-recycle:before {
- content: "\f1b8";
-}
-.fa-automobile:before,
-.fa-car:before {
- content: "\f1b9";
-}
-.fa-cab:before,
-.fa-taxi:before {
- content: "\f1ba";
-}
-.fa-tree:before {
- content: "\f1bb";
-}
-.fa-spotify:before {
- content: "\f1bc";
-}
-.fa-deviantart:before {
- content: "\f1bd";
-}
-.fa-soundcloud:before {
- content: "\f1be";
-}
-.fa-database:before {
- content: "\f1c0";
-}
-.fa-file-pdf-o:before {
- content: "\f1c1";
-}
-.fa-file-word-o:before {
- content: "\f1c2";
-}
-.fa-file-excel-o:before {
- content: "\f1c3";
-}
-.fa-file-powerpoint-o:before {
- content: "\f1c4";
-}
-.fa-file-photo-o:before,
-.fa-file-picture-o:before,
-.fa-file-image-o:before {
- content: "\f1c5";
-}
-.fa-file-zip-o:before,
-.fa-file-archive-o:before {
- content: "\f1c6";
-}
-.fa-file-sound-o:before,
-.fa-file-audio-o:before {
- content: "\f1c7";
-}
-.fa-file-movie-o:before,
-.fa-file-video-o:before {
- content: "\f1c8";
-}
-.fa-file-code-o:before {
- content: "\f1c9";
-}
-.fa-vine:before {
- content: "\f1ca";
-}
-.fa-codepen:before {
- content: "\f1cb";
-}
-.fa-jsfiddle:before {
- content: "\f1cc";
-}
-.fa-life-bouy:before,
-.fa-life-buoy:before,
-.fa-life-saver:before,
-.fa-support:before,
-.fa-life-ring:before {
- content: "\f1cd";
-}
-.fa-circle-o-notch:before {
- content: "\f1ce";
-}
-.fa-ra:before,
-.fa-rebel:before {
- content: "\f1d0";
-}
-.fa-ge:before,
-.fa-empire:before {
- content: "\f1d1";
-}
-.fa-git-square:before {
- content: "\f1d2";
-}
-.fa-git:before {
- content: "\f1d3";
-}
-.fa-hacker-news:before {
- content: "\f1d4";
-}
-.fa-tencent-weibo:before {
- content: "\f1d5";
-}
-.fa-qq:before {
- content: "\f1d6";
-}
-.fa-wechat:before,
-.fa-weixin:before {
- content: "\f1d7";
-}
-.fa-send:before,
-.fa-paper-plane:before {
- content: "\f1d8";
-}
-.fa-send-o:before,
-.fa-paper-plane-o:before {
- content: "\f1d9";
-}
-.fa-history:before {
- content: "\f1da";
-}
-.fa-genderless:before,
-.fa-circle-thin:before {
- content: "\f1db";
-}
-.fa-header:before {
- content: "\f1dc";
-}
-.fa-paragraph:before {
- content: "\f1dd";
-}
-.fa-sliders:before {
- content: "\f1de";
-}
-.fa-share-alt:before {
- content: "\f1e0";
-}
-.fa-share-alt-square:before {
- content: "\f1e1";
-}
-.fa-bomb:before {
- content: "\f1e2";
-}
-.fa-soccer-ball-o:before,
-.fa-futbol-o:before {
- content: "\f1e3";
-}
-.fa-tty:before {
- content: "\f1e4";
-}
-.fa-binoculars:before {
- content: "\f1e5";
-}
-.fa-plug:before {
- content: "\f1e6";
-}
-.fa-slideshare:before {
- content: "\f1e7";
-}
-.fa-twitch:before {
- content: "\f1e8";
-}
-.fa-yelp:before {
- content: "\f1e9";
-}
-.fa-newspaper-o:before {
- content: "\f1ea";
-}
-.fa-wifi:before {
- content: "\f1eb";
-}
-.fa-calculator:before {
- content: "\f1ec";
-}
-.fa-paypal:before {
- content: "\f1ed";
-}
-.fa-google-wallet:before {
- content: "\f1ee";
-}
-.fa-cc-visa:before {
- content: "\f1f0";
-}
-.fa-cc-mastercard:before {
- content: "\f1f1";
-}
-.fa-cc-discover:before {
- content: "\f1f2";
-}
-.fa-cc-amex:before {
- content: "\f1f3";
-}
-.fa-cc-paypal:before {
- content: "\f1f4";
-}
-.fa-cc-stripe:before {
- content: "\f1f5";
-}
-.fa-bell-slash:before {
- content: "\f1f6";
-}
-.fa-bell-slash-o:before {
- content: "\f1f7";
-}
-.fa-trash:before {
- content: "\f1f8";
-}
-.fa-copyright:before {
- content: "\f1f9";
-}
-.fa-at:before {
- content: "\f1fa";
-}
-.fa-eyedropper:before {
- content: "\f1fb";
-}
-.fa-paint-brush:before {
- content: "\f1fc";
-}
-.fa-birthday-cake:before {
- content: "\f1fd";
-}
-.fa-area-chart:before {
- content: "\f1fe";
-}
-.fa-pie-chart:before {
- content: "\f200";
-}
-.fa-line-chart:before {
- content: "\f201";
-}
-.fa-lastfm:before {
- content: "\f202";
-}
-.fa-lastfm-square:before {
- content: "\f203";
-}
-.fa-toggle-off:before {
- content: "\f204";
-}
-.fa-toggle-on:before {
- content: "\f205";
-}
-.fa-bicycle:before {
- content: "\f206";
-}
-.fa-bus:before {
- content: "\f207";
-}
-.fa-ioxhost:before {
- content: "\f208";
-}
-.fa-angellist:before {
- content: "\f209";
-}
-.fa-cc:before {
- content: "\f20a";
-}
-.fa-shekel:before,
-.fa-sheqel:before,
-.fa-ils:before {
- content: "\f20b";
-}
-.fa-meanpath:before {
- content: "\f20c";
-}
-.fa-buysellads:before {
- content: "\f20d";
-}
-.fa-connectdevelop:before {
- content: "\f20e";
-}
-.fa-dashcube:before {
- content: "\f210";
-}
-.fa-forumbee:before {
- content: "\f211";
-}
-.fa-leanpub:before {
- content: "\f212";
-}
-.fa-sellsy:before {
- content: "\f213";
-}
-.fa-shirtsinbulk:before {
- content: "\f214";
-}
-.fa-simplybuilt:before {
- content: "\f215";
-}
-.fa-skyatlas:before {
- content: "\f216";
-}
-.fa-cart-plus:before {
- content: "\f217";
-}
-.fa-cart-arrow-down:before {
- content: "\f218";
-}
-.fa-diamond:before {
- content: "\f219";
-}
-.fa-ship:before {
- content: "\f21a";
-}
-.fa-user-secret:before {
- content: "\f21b";
-}
-.fa-motorcycle:before {
- content: "\f21c";
-}
-.fa-street-view:before {
- content: "\f21d";
-}
-.fa-heartbeat:before {
- content: "\f21e";
-}
-.fa-venus:before {
- content: "\f221";
-}
-.fa-mars:before {
- content: "\f222";
-}
-.fa-mercury:before {
- content: "\f223";
-}
-.fa-transgender:before {
- content: "\f224";
-}
-.fa-transgender-alt:before {
- content: "\f225";
-}
-.fa-venus-double:before {
- content: "\f226";
-}
-.fa-mars-double:before {
- content: "\f227";
-}
-.fa-venus-mars:before {
- content: "\f228";
-}
-.fa-mars-stroke:before {
- content: "\f229";
-}
-.fa-mars-stroke-v:before {
- content: "\f22a";
-}
-.fa-mars-stroke-h:before {
- content: "\f22b";
-}
-.fa-neuter:before {
- content: "\f22c";
-}
-.fa-facebook-official:before {
- content: "\f230";
-}
-.fa-pinterest-p:before {
- content: "\f231";
-}
-.fa-whatsapp:before {
- content: "\f232";
-}
-.fa-server:before {
- content: "\f233";
-}
-.fa-user-plus:before {
- content: "\f234";
-}
-.fa-user-times:before {
- content: "\f235";
-}
-.fa-hotel:before,
-.fa-bed:before {
- content: "\f236";
-}
-.fa-viacoin:before {
- content: "\f237";
-}
-.fa-train:before {
- content: "\f238";
-}
-.fa-subway:before {
- content: "\f239";
-}
-.fa-medium:before {
- content: "\f23a";
-}
diff --git a/script/generate-packed-assets b/script/generate-packed-assets
index 5c7c025f870..512bb98d54a 100755
--- a/script/generate-packed-assets
+++ b/script/generate-packed-assets
@@ -48,26 +48,21 @@ function finish {
rm -rf "$DIR"
}
trap finish EXIT
-mkdir "$DIR/db" "$DIR/tmp"
+mkdir "$DIR/tmp"
touch "$DIR/openqa.ini"
-cat >>$DIR/database.ini < /dev/null
# 'version' is the smallest codepath we can hit to produce the assets
-"$PREFIX/script/openqa" version -m production > /dev/null
+./script/openqa version -m test > /dev/null
+./script/openqa version -m development > /dev/null
# we don't want this hanging around
rm -rf "$PREFIX/public/sass/.sass-cache"
-# /usr/share/openqa/public/packed should be now generated
+# asset/cache is now generated
+
diff --git a/templates/step/src.html.ep b/templates/step/src.html.ep
index 38950c1aace..13c0727bf54 100644
--- a/templates/step/src.html.ep
+++ b/templates/step/src.html.ep
@@ -1,7 +1,6 @@
% layout 'default';
-%= javascript '/javascripts/lib/codemirror.js'
-%= javascript '/javascripts/mode/perl/perl.js'
-%= stylesheet '/stylesheets/codemirror.css'
+%= asset 'codemirror.js'
+%= asset 'codemirror.css'
% title $moduleid;
% content_for 'ready_function' => begin
diff --git a/templates/step/viewimg.html.ep b/templates/step/viewimg.html.ep
index ade29203231..1bc28ef9229 100644
--- a/templates/step/viewimg.html.ep
+++ b/templates/step/viewimg.html.ep
@@ -2,7 +2,7 @@
% title $moduleid;
% content_for 'head' => begin
-%= javascript '/javascripts/needlediff.js'
+%= asset 'needlediff.js'
% end
% content_for 'head_javascript' => begin
diff --git a/templates/test/running.html.ep b/templates/test/running.html.ep
index a257597c73c..63eb095472d 100644
--- a/templates/test/running.html.ep
+++ b/templates/test/running.html.ep
@@ -2,7 +2,7 @@
% title $testname;
% content_for 'head' => begin
- %= javascript '/javascripts/running.js'
+ %= asset 'running.js'
% end
% content_for 'ready_function' => begin