New Grunt task
This commit is contained in:
parent
3270236507
commit
e8b0609a43
7
.gitignore
vendored
7
.gitignore
vendored
@ -14,4 +14,9 @@ tmp
|
|||||||
app/assets/css
|
app/assets/css
|
||||||
.sass-cache/
|
.sass-cache/
|
||||||
out/
|
out/
|
||||||
build/
|
|
||||||
|
# Grunt generated files
|
||||||
|
dist/
|
||||||
|
.tmp/
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,11 +32,11 @@ ADD /app /opt/adagios-frontend/app
|
|||||||
|
|
||||||
# Override those variables at runtime to point Bansho to another backend
|
# Override those variables at runtime to point Bansho to another backend
|
||||||
ENV BANSHO_BACKEND surveil
|
ENV BANSHO_BACKEND surveil
|
||||||
|
ENV BANSHO_PROD true
|
||||||
ENV BANSHO_SURVEIL_URL http://surveil:8080/
|
ENV BANSHO_SURVEIL_URL http://surveil:8080/
|
||||||
ENV BANSHO_ADAGIOS_URL http://demo.kaji-project.org/
|
ENV BANSHO_ADAGIOS_URL http://demo.kaji-project.org/
|
||||||
|
|
||||||
CMD ./configure.sh && \
|
CMD ./configure.sh && \
|
||||||
cd /opt/adagios-frontend && \
|
cd /opt/adagios-frontend && \
|
||||||
grunt sass && \
|
bash -c "if [ $BANSHO_PROD = true ] ; then grunt production:$BANSHO_BACKEND ; fi" && \
|
||||||
grunt uglify:${BANSHO_BACKEND} && \
|
|
||||||
bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND"
|
bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND"
|
||||||
|
344
Gruntfile.js
344
Gruntfile.js
@ -2,15 +2,66 @@
|
|||||||
|
|
||||||
module.exports = function (grunt) {
|
module.exports = function (grunt) {
|
||||||
|
|
||||||
|
require('load-grunt-tasks')(grunt);
|
||||||
|
|
||||||
grunt.initConfig({
|
grunt.initConfig({
|
||||||
|
|
||||||
pkg: grunt.file.readJSON('package.json'),
|
pkg: grunt.file.readJSON('package.json'),
|
||||||
|
|
||||||
project: {
|
project: {
|
||||||
app: ['app'],
|
app: 'app',
|
||||||
assets: ['<%= project.app %>/assets'],
|
assets: '<%= project.app %>/assets',
|
||||||
css: ['<%= project.assets %>/sass/app.scss'],
|
scss: '<%= project.assets %>/sass/app.scss',
|
||||||
build: ['<%= project.app %>/build/']
|
tmp: '.tmp',
|
||||||
|
dist: 'dist'
|
||||||
|
},
|
||||||
|
|
||||||
|
clean: {
|
||||||
|
dist: ['<%= project.dist %>/'],
|
||||||
|
tmp: ['<%= project.tmp %>/']
|
||||||
|
},
|
||||||
|
|
||||||
|
copy: {
|
||||||
|
prod: {
|
||||||
|
files: [
|
||||||
|
{
|
||||||
|
cwd: '<%= project.assets %>/css/',
|
||||||
|
expand: true,
|
||||||
|
src: ['**.*'],
|
||||||
|
dest: '<%= project.dist %>/assets/css/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
cwd: '<%= project.app %>/',
|
||||||
|
expand: true,
|
||||||
|
src: ['**/*.html'],
|
||||||
|
dest: '<%= project.dist %>/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '<%= project.app %>/components/config/config.json',
|
||||||
|
dest: '<%= project.dist %>/components/config/config.json'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
src: '<%= project.app %>/index.html',
|
||||||
|
dest: '<%= project.dist %>/index.html'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
adagios: {
|
||||||
|
files: [
|
||||||
|
{
|
||||||
|
dest: '<%= project.app %>/components/live/live.js',
|
||||||
|
src: '<%= project.app %>/components/live/adagios.js'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
surveil: {
|
||||||
|
files: [
|
||||||
|
{
|
||||||
|
dest: '<%= project.app %>/components/live/live.js',
|
||||||
|
src: '<%= project.app %>/components/live/surveil.js'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
sass: {
|
sass: {
|
||||||
@ -20,31 +71,11 @@ module.exports = function (grunt) {
|
|||||||
compass: false
|
compass: false
|
||||||
},
|
},
|
||||||
files: {
|
files: {
|
||||||
'<%= project.assets %>/css/app.css' : '<%= project.css %>'
|
'<%= project.assets %>/css/app.css': '<%= project.scss %>'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
watch: {
|
|
||||||
sass: {
|
|
||||||
files: [
|
|
||||||
'<%= project.assets %>/sass/{,*/}*.{scss,sass}',
|
|
||||||
'<%= project.app %>/{,*/}*/{,*/}*.{scss,sass}'
|
|
||||||
],
|
|
||||||
tasks: ['sass:dev']
|
|
||||||
},
|
|
||||||
uglify: {
|
|
||||||
files: [
|
|
||||||
'<%= project.app %>/**/*.js',
|
|
||||||
'<%= project.app %>/**/*_test.js',
|
|
||||||
'!<%= project.app %>/bower_components/**',
|
|
||||||
'!<%= project.build %>/**',
|
|
||||||
'!<%= project.assets %>/**'
|
|
||||||
],
|
|
||||||
tasks: ['uglify:surveil']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
jslint: { // configure the task
|
jslint: { // configure the task
|
||||||
|
|
||||||
client: {
|
client: {
|
||||||
@ -82,237 +113,70 @@ module.exports = function (grunt) {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
useminPrepare: {
|
||||||
|
html: {
|
||||||
|
src: ['<%= project.app %>/index.html']
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
dest: '<%= project.dist %>/'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
usemin: {
|
||||||
|
html: '<%= project.dist %>/index.html'
|
||||||
|
},
|
||||||
|
|
||||||
|
concat: {
|
||||||
|
generated: {
|
||||||
|
nonull: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
// Minify and concatenate bansho in one file
|
// Minify and concatenate bansho in one file
|
||||||
uglify: {
|
uglify: {
|
||||||
compress: {
|
generated: {
|
||||||
files: [{
|
nonull: true
|
||||||
'<%= project.build %>/js/bansho.min.js' : [
|
},
|
||||||
'<%= project.app %>/app.js',
|
|
||||||
'<%= project.app %>/app.js',
|
|
||||||
'<%= project.app %>/components/config/config.js',
|
|
||||||
'<%= project.app %>/components/utils/promise_manager.js',
|
|
||||||
'<%= project.app %>/components/live/live.js',
|
|
||||||
'<%= project.app %>/components/live/surveil.js',
|
|
||||||
'<%= project.app %>/components/ng-justgage/ng-justgage.js',
|
|
||||||
'<%= project.app %>/components/filters/filters.js',
|
|
||||||
'<%= project.app %>/components/sidebar/sidebar.js',
|
|
||||||
'<%= project.app %>/components/topbar/topbar.js',
|
|
||||||
'<%= project.app %>/components/tactical/tactical.js',
|
|
||||||
'<%= project.app %>/components/tactical/status_overview/status_overview.js',
|
|
||||||
'<%= project.app %>/components/tactical/current_health/current_health.js',
|
|
||||||
'<%= project.app %>/components/tactical/top_alert_producers/top_alert_producers.js',
|
|
||||||
'<%= project.app %>/components/table/actionbar/actionbar.js',
|
|
||||||
'<%= project.app %>/components/table/table.js',
|
|
||||||
'<%= project.app %>/components/table/cell_duration/cell_duration.js',
|
|
||||||
'<%= project.app %>/components/table/cell_host/cell_host.js',
|
|
||||||
'<%= project.app %>/components/table/cell_last_check/cell_last_check.js',
|
|
||||||
'<%= project.app %>/components/table/cell_service_check/cell_service_check.js',
|
|
||||||
'<%= project.app %>/components/table/cell_host_address/cell_host_address.js',
|
|
||||||
'<%= project.app %>/components/table/cell_host_status/cell_host_status.js',
|
|
||||||
'<%= project.app %>/components/host/host.js',
|
|
||||||
'<%= project.app %>/components/host/host_cpu/host_cpu.js',
|
|
||||||
'<%= project.app %>/components/host/host_info/host_info.js',
|
|
||||||
'<%= project.app %>/components/host/host_load/host_load.js',
|
|
||||||
'<%= project.app %>/components/host/host_main/host_main.js',
|
|
||||||
'<%= project.app %>/components/host/host_services_list/host_services_list.js',
|
|
||||||
'<%= project.app %>/components/service/service.js',
|
|
||||||
'<%= project.app %>/components/service/service_main/service_main.js',
|
|
||||||
'<%= project.app %>/components/service/service_info/service_info.js',
|
|
||||||
'<%= project.app %>/components/service/service_metrics/service_metrics.js',
|
|
||||||
'<%= project.app %>/routing_view/routing_view.js',
|
|
||||||
'<%= project.app %>/templates/dashboard/dashboard.js',
|
|
||||||
'<%= project.app %>/templates/single_table/single_table.js',
|
|
||||||
'<%= project.app %>/templates/host/host.js',
|
|
||||||
'<%= project.app %>/templates/service/service.js'
|
|
||||||
]
|
|
||||||
}],
|
|
||||||
options: {
|
options: {
|
||||||
mangle: true
|
mangle: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
watch: {
|
||||||
adagios: {
|
adagios: {
|
||||||
files: [
|
files: [
|
||||||
{
|
'<%= project.app %>/components/live/adagios.js',
|
||||||
'<%= project.build %>/app.js': '<%= project.app %>/app.js',
|
'<%= project.assets %>/sass/{,*/}*.{scss,sass}'
|
||||||
'<%= project.build %>/components/config/config.js': '<%= project.app %>/components/config/config.js',
|
|
||||||
'<%= project.build %>/components/utils/promise_manager.js': '<%= project.app %>/components/utils/promise_manager.js',
|
|
||||||
'<%= project.build %>/components/live/live.js': '<%= project.app %>/components/live/live.js',
|
|
||||||
'<%= project.build %>/components/live/adagios.js': '<%= project.app %>/components/live/adagios.js',
|
|
||||||
'<%= project.build %>/components/ng-justgage/ng-justgage.js': '<%= project.app %>/components/ng-justgage/ng-justgage.js',
|
|
||||||
'<%= project.build %>/components/filters/filters.js': '<%= project.app %>/components/filters/filters.js',
|
|
||||||
'<%= project.build %>/components/sidebar/sidebar.js': '<%= project.app %>/components/sidebar/sidebar.js',
|
|
||||||
'<%= project.build %>/components/topbar/topbar.js': '<%= project.app %>/components/topbar/topbar.js',
|
|
||||||
'<%= project.build %>/components/tactical/tactical.js': '<%= project.app %>/components/tactical/tactical.js',
|
|
||||||
'<%= project.build %>/components/tactical/status_overview/status_overview.js': '<%= project.app %>/components/tactical/status_overview/status_overview.js',
|
|
||||||
'<%= project.build %>/components/tactical/current_health/current_health.js': '<%= project.app %>/components/tactical/current_health/current_health.js',
|
|
||||||
'<%= project.build %>/components/tactical/top_alert_producers/top_alert_producers.js': '<%= project.app %>/components/tactical/top_alert_producers/top_alert_producers.js',
|
|
||||||
'<%= project.build %>/components/table/actionbar/actionbar.js': '<%= project.app %>/components/table/actionbar/actionbar.js',
|
|
||||||
'<%= project.build %>/components/table/table.js': '<%= project.app %>/components/table/table.js',
|
|
||||||
'<%= project.build %>/components/table/cell_duration/cell_duration.js': '<%= project.app %>/components/table/cell_duration/cell_duration.js',
|
|
||||||
'<%= project.build %>/components/table/cell_host/cell_host.js': '<%= project.app %>/components/table/cell_host/cell_host.js',
|
|
||||||
'<%= project.build %>/components/table/cell_last_check/cell_last_check.js': '<%= project.app %>/components/table/cell_last_check/cell_last_check.js',
|
|
||||||
'<%= project.build %>/components/table/cell_service_check/cell_service_check.js': '<%= project.app %>/components/table/cell_service_check/cell_service_check.js',
|
|
||||||
'<%= project.build %>/components/table/cell_host_address/cell_host_address.js': '<%= project.app %>/components/table/cell_host_address/cell_host_address.js',
|
|
||||||
'<%= project.build %>/components/table/cell_host_status/cell_host_status.js': '<%= project.app %>/components/table/cell_host_status/cell_host_status.js',
|
|
||||||
|
|
||||||
'<%= project.build %>/components/host/host.js': '<%= project.app %>/components/host/host.js',
|
|
||||||
'<%= project.build %>/components/host/host_cpu/host_cpu.js': '<%= project.app %>/components/host/host_cpu/host_cpu.js',
|
|
||||||
'<%= project.build %>/components/host/host_info/host_info.js': '<%= project.app %>/components/host/host_info/host_info.js',
|
|
||||||
'<%= project.build %>/components/host/host_load/host_load.js': '<%= project.app %>/components/host/host_load/host_load.js',
|
|
||||||
'<%= project.build %>/components/host/host_main/host_main.js': '<%= project.app %>/components/host/host_main/host_main.js',
|
|
||||||
'<%= project.build %>/components/host/host_services_list/host_services_list.js': '<%= project.app %>/components/host/host_services_list/host_services_list.js',
|
|
||||||
'<%= project.build %>/components/service/service.js': '<%= project.app %>/components/service/service.js',
|
|
||||||
'<%= project.build %>/components/service/service_main/service_main.js': '<%= project.app %>/components/service/service_main/service_main.js',
|
|
||||||
'<%= project.build %>/components/service/service_info/service_info.js': '<%= project.app %>/components/service/service_info/service_info.js',
|
|
||||||
'<%= project.build %>/components/service/service_metrics/service_metrics.js': '<%= project.app %>/components/service/service_metrics/service_metrics.js',
|
|
||||||
|
|
||||||
'<%= project.build %>/routing_view/routing_view.js': '<%= project.app %>/routing_view/routing_view.js',
|
|
||||||
'<%= project.build %>/templates/dashboard/dashboard.js': '<%= project.app %>/templates/dashboard/dashboard.js',
|
|
||||||
'<%= project.build %>/templates/single_table/single_table.js' : '<%= project.app %>/templates/single_table/single_table.js',
|
|
||||||
'<%= project.build %>/templates/host/host.js': '<%= project.app %>/templates/host/host.js',
|
|
||||||
'<%= project.build %>/templates/service/service.js': '<%= project.app %>/templates/service/service.js'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'<%= project.build %>/js/bansho.min.js' : [
|
|
||||||
'<%= project.build %>/app.js',
|
|
||||||
'<%= project.build %>/components/config/config.js',
|
|
||||||
'<%= project.build %>/components/utils/promise_manager.js',
|
|
||||||
'<%= project.build %>/components/live/live.js',
|
|
||||||
'<%= project.build %>/components/live/adagios.js',
|
|
||||||
'<%= project.build %>/components/ng-justgage/ng-justgage.js',
|
|
||||||
'<%= project.build %>/components/filters/filters.js',
|
|
||||||
'<%= project.build %>/components/sidebar/sidebar.js',
|
|
||||||
'<%= project.build %>/components/topbar/topbar.js',
|
|
||||||
'<%= project.build %>/components/tactical/tactical.js',
|
|
||||||
'<%= project.build %>/components/tactical/status_overview/status_overview.js',
|
|
||||||
'<%= project.build %>/components/tactical/current_health/current_health.js',
|
|
||||||
'<%= project.build %>/components/tactical/top_alert_producers/top_alert_producers.js',
|
|
||||||
'<%= project.build %>/components/table/actionbar/actionbar.js',
|
|
||||||
'<%= project.build %>/components/table/table.js',
|
|
||||||
'<%= project.build %>/components/table/cell_duration/cell_duration.js',
|
|
||||||
'<%= project.build %>/components/table/cell_host/cell_host.js',
|
|
||||||
'<%= project.build %>/components/table/cell_last_check/cell_last_check.js',
|
|
||||||
'<%= project.build %>/components/table/cell_service_check/cell_service_check.js',
|
|
||||||
'<%= project.build %>/components/table/cell_host_address/cell_host_address.js',
|
|
||||||
'<%= project.build %>/components/table/cell_host_status/cell_host_status.js',
|
|
||||||
'<%= project.build %>/components/host/host.js',
|
|
||||||
'<%= project.build %>/components/host/host_cpu/host_cpu.js',
|
|
||||||
'<%= project.build %>/components/host/host_info/host_info.js',
|
|
||||||
'<%= project.build %>/components/host/host_load/host_load.js',
|
|
||||||
'<%= project.build %>/components/host/host_main/host_main.js',
|
|
||||||
'<%= project.build %>/components/host/host_services_list/host_services_list.js',
|
|
||||||
'<%= project.build %>/components/service/service.js',
|
|
||||||
'<%= project.build %>/components/service/service_main/service_main.js',
|
|
||||||
'<%= project.build %>/components/service/service_info/service_info.js',
|
|
||||||
'<%= project.build %>/components/service/service_metrics/service_metrics.js',
|
|
||||||
'<%= project.build %>/routing_view/routing_view.js',
|
|
||||||
'<%= project.build %>/templates/dashboard/dashboard.js',
|
|
||||||
'<%= project.build %>/templates/single_table/single_table.js',
|
|
||||||
'<%= project.build %>/templates/host/host.js',
|
|
||||||
'<%= project.build %>/templates/service/service.js'
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
options: {
|
tasks: ['copy:adagios', 'sass:dev']
|
||||||
mangle: false,
|
|
||||||
beautify: true
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
surveil: {
|
surveil: {
|
||||||
files: [
|
files: [
|
||||||
{
|
'<%= project.app %>/components/live/surveil.js',
|
||||||
'<%= project.build %>/app.js': '<%= project.app %>/app.js',
|
'<%= project.assets %>/sass/{,*/}*.{scss,sass}'
|
||||||
'<%= project.build %>/components/config/config.js': '<%= project.app %>/components/config/config.js',
|
|
||||||
'<%= project.build %>/components/utils/promise_manager.js': '<%= project.app %>/components/utils/promise_manager.js',
|
|
||||||
'<%= project.build %>/components/live/live.js': '<%= project.app %>/components/live/live.js',
|
|
||||||
'<%= project.build %>/components/live/surveil.js': '<%= project.app %>/components/live/surveil.js',
|
|
||||||
'<%= project.build %>/components/ng-justgage/ng-justgage.js': '<%= project.app %>/components/ng-justgage/ng-justgage.js',
|
|
||||||
'<%= project.build %>/components/filters/filters.js': '<%= project.app %>/components/filters/filters.js',
|
|
||||||
'<%= project.build %>/components/sidebar/sidebar.js': '<%= project.app %>/components/sidebar/sidebar.js',
|
|
||||||
'<%= project.build %>/components/topbar/topbar.js': '<%= project.app %>/components/topbar/topbar.js',
|
|
||||||
'<%= project.build %>/components/tactical/tactical.js': '<%= project.app %>/components/tactical/tactical.js',
|
|
||||||
'<%= project.build %>/components/tactical/status_overview/status_overview.js': '<%= project.app %>/components/tactical/status_overview/status_overview.js',
|
|
||||||
'<%= project.build %>/components/tactical/current_health/current_health.js': '<%= project.app %>/components/tactical/current_health/current_health.js',
|
|
||||||
'<%= project.build %>/components/tactical/top_alert_producers/top_alert_producers.js': '<%= project.app %>/components/tactical/top_alert_producers/top_alert_producers.js',
|
|
||||||
'<%= project.build %>/components/table/actionbar/actionbar.js': '<%= project.app %>/components/table/actionbar/actionbar.js',
|
|
||||||
'<%= project.build %>/components/table/table.js': '<%= project.app %>/components/table/table.js',
|
|
||||||
'<%= project.build %>/components/table/cell_duration/cell_duration.js': '<%= project.app %>/components/table/cell_duration/cell_duration.js',
|
|
||||||
'<%= project.build %>/components/table/cell_host/cell_host.js': '<%= project.app %>/components/table/cell_host/cell_host.js',
|
|
||||||
'<%= project.build %>/components/table/cell_last_check/cell_last_check.js': '<%= project.app %>/components/table/cell_last_check/cell_last_check.js',
|
|
||||||
'<%= project.build %>/components/table/cell_service_check/cell_service_check.js': '<%= project.app %>/components/table/cell_service_check/cell_service_check.js',
|
|
||||||
'<%= project.build %>/components/table/cell_host_address/cell_host_address.js': '<%= project.app %>/components/table/cell_host_address/cell_host_address.js',
|
|
||||||
'<%= project.build %>/components/table/cell_host_status/cell_host_status.js': '<%= project.app %>/components/table/cell_host_status/cell_host_status.js',
|
|
||||||
|
|
||||||
'<%= project.build %>/components/host/host.js': '<%= project.app %>/components/host/host.js',
|
|
||||||
'<%= project.build %>/components/host/host_cpu/host_cpu.js': '<%= project.app %>/components/host/host_cpu/host_cpu.js',
|
|
||||||
'<%= project.build %>/components/host/host_info/host_info.js': '<%= project.app %>/components/host/host_info/host_info.js',
|
|
||||||
'<%= project.build %>/components/host/host_load/host_load.js': '<%= project.app %>/components/host/host_load/host_load.js',
|
|
||||||
'<%= project.build %>/components/host/host_main/host_main.js': '<%= project.app %>/components/host/host_main/host_main.js',
|
|
||||||
'<%= project.build %>/components/host/host_services_list/host_services_list.js': '<%= project.app %>/components/host/host_services_list/host_services_list.js',
|
|
||||||
'<%= project.build %>/components/service/service.js': '<%= project.app %>/components/service/service.js',
|
|
||||||
'<%= project.build %>/components/service/service_main/service_main.js': '<%= project.app %>/components/service/service_main/service_main.js',
|
|
||||||
'<%= project.build %>/components/service/service_info/service_info.js': '<%= project.app %>/components/service/service_info/service_info.js',
|
|
||||||
'<%= project.build %>/components/service/service_metrics/service_metrics.js': '<%= project.app %>/components/service/service_metrics/service_metrics.js',
|
|
||||||
|
|
||||||
'<%= project.build %>/routing_view/routing_view.js': '<%= project.app %>/routing_view/routing_view.js',
|
|
||||||
'<%= project.build %>/templates/dashboard/dashboard.js': '<%= project.app %>/templates/dashboard/dashboard.js',
|
|
||||||
'<%= project.build %>/templates/single_table/single_table.js' : '<%= project.app %>/templates/single_table/single_table.js',
|
|
||||||
'<%= project.build %>/templates/host/host.js': '<%= project.app %>/templates/host/host.js',
|
|
||||||
'<%= project.build %>/templates/service/service.js': '<%= project.app %>/templates/service/service.js'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'<%= project.build %>/js/bansho.min.js' : [
|
|
||||||
'<%= project.build %>/app.js',
|
|
||||||
'<%= project.build %>/components/config/config.js',
|
|
||||||
'<%= project.build %>/components/utils/promise_manager.js',
|
|
||||||
'<%= project.build %>/components/live/live.js',
|
|
||||||
'<%= project.build %>/components/live/surveil.js',
|
|
||||||
'<%= project.build %>/components/ng-justgage/ng-justgage.js',
|
|
||||||
'<%= project.build %>/components/filters/filters.js',
|
|
||||||
'<%= project.build %>/components/sidebar/sidebar.js',
|
|
||||||
'<%= project.build %>/components/topbar/topbar.js',
|
|
||||||
'<%= project.build %>/components/tactical/tactical.js',
|
|
||||||
'<%= project.build %>/components/tactical/status_overview/status_overview.js',
|
|
||||||
'<%= project.build %>/components/tactical/current_health/current_health.js',
|
|
||||||
'<%= project.build %>/components/tactical/top_alert_producers/top_alert_producers.js',
|
|
||||||
'<%= project.build %>/components/table/actionbar/actionbar.js',
|
|
||||||
'<%= project.build %>/components/table/table.js',
|
|
||||||
'<%= project.build %>/components/table/cell_duration/cell_duration.js',
|
|
||||||
'<%= project.build %>/components/table/cell_host/cell_host.js',
|
|
||||||
'<%= project.build %>/components/table/cell_last_check/cell_last_check.js',
|
|
||||||
'<%= project.build %>/components/table/cell_service_check/cell_service_check.js',
|
|
||||||
'<%= project.build %>/components/table/cell_host_address/cell_host_address.js',
|
|
||||||
'<%= project.build %>/components/table/cell_host_status/cell_host_status.js',
|
|
||||||
'<%= project.build %>/components/host/host.js',
|
|
||||||
'<%= project.build %>/components/host/host_cpu/host_cpu.js',
|
|
||||||
'<%= project.build %>/components/host/host_info/host_info.js',
|
|
||||||
'<%= project.build %>/components/host/host_load/host_load.js',
|
|
||||||
'<%= project.build %>/components/host/host_main/host_main.js',
|
|
||||||
'<%= project.build %>/components/host/host_services_list/host_services_list.js',
|
|
||||||
'<%= project.build %>/components/service/service.js',
|
|
||||||
'<%= project.build %>/components/service/service_main/service_main.js',
|
|
||||||
'<%= project.build %>/components/service/service_info/service_info.js',
|
|
||||||
'<%= project.build %>/components/service/service_metrics/service_metrics.js',
|
|
||||||
'<%= project.build %>/routing_view/routing_view.js',
|
|
||||||
'<%= project.build %>/templates/dashboard/dashboard.js',
|
|
||||||
'<%= project.build %>/templates/single_table/single_table.js',
|
|
||||||
'<%= project.build %>/templates/host/host.js',
|
|
||||||
'<%= project.build %>/templates/service/service.js'
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
options: {
|
tasks: ['copy:surveil', 'sass:dev']
|
||||||
mangle: false,
|
|
||||||
beautify: true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-sass');
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
|
||||||
grunt.loadNpmTasks('grunt-jslint');
|
|
||||||
|
|
||||||
grunt.registerTask('default', ['watch']);
|
grunt.registerTask('default', ['watch']);
|
||||||
|
|
||||||
|
grunt.registerTask('development:adagios', [
|
||||||
|
'sass', 'copy:adagios', 'watch:adagios'
|
||||||
|
]);
|
||||||
|
|
||||||
|
grunt.registerTask('development:surveil', [
|
||||||
|
'sass', 'copy:surveil', 'watch:surveil'
|
||||||
|
]);
|
||||||
|
|
||||||
|
grunt.registerTask('production:adagios', [
|
||||||
|
'clean', 'sass', 'copy:prod', 'useminPrepare:html', 'concat:generated',
|
||||||
|
'copy:adagios',
|
||||||
|
'uglify:generated', 'usemin:html']);
|
||||||
|
|
||||||
|
grunt.registerTask('production:surveil', [
|
||||||
|
'clean', 'sass', 'copy:prod', 'useminPrepare:html', 'concat:generated',
|
||||||
|
'copy:surveil',
|
||||||
|
'uglify:generated', 'usemin:html']);
|
||||||
};
|
};
|
||||||
|
11
Makefile
11
Makefile
@ -9,14 +9,17 @@ rebuild:
|
|||||||
sudo docker build --no-cache -t adg-fe .
|
sudo docker build --no-cache -t adg-fe .
|
||||||
|
|
||||||
interactive:
|
interactive:
|
||||||
sudo docker run -p 8888:8888 --link surveil_surveil_1:surveil -v ${PWD}:/opt/adagios-frontend -i -t --name adg-fe adg-fe bash
|
sudo docker run -p 8888:8888 --link surveil_surveil_1:surveil -v $(shell pwd)/app:/opt/adagios-frontend/dist -e BANSHO_ENV=false -i -t --name adg-fe adg-fe bash
|
||||||
|
|
||||||
daemon:
|
daemon:
|
||||||
sudo docker run -p 8888:8888 --link surveil_surveil_1:surveil -v ${PWD}:/opt/adagios-frontend -d -t --name adg-fe adg-fe
|
sudo docker run -p 8888:8888 --link surveil_surveil_1:surveil -v $(shell pwd)/app:/opt/adagios-frontend/dist -e BANSHO_PROD=false -d -t --name adg-fe adg-fe
|
||||||
grunt watch
|
grunt development:surveil
|
||||||
|
|
||||||
|
production:
|
||||||
|
sudo docker run -p 8888:8888 --link surveil_surveil_1:surveil -d -t --name adg-fe adg-fe
|
||||||
|
|
||||||
kill:
|
kill:
|
||||||
sudo docker kill adg-fe
|
sudo docker kill adg-fe
|
||||||
|
|
||||||
remove:
|
remove:
|
||||||
sudo docker rm adg-fe
|
sudo docker rm -f adg-fe
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
angular.module('bansho.host.cpu', [])
|
angular.module('bansho.host.cpu', ['bansho.live'])
|
||||||
|
|
||||||
.controller('HostCpuCtrl', ['$scope', 'getObjects', function ($scope, getObjects) {
|
.controller('HostCpuCtrl', ['$scope', 'getObjects', function ($scope, getObjects) {
|
||||||
var hostName = $scope.hostName,
|
var hostName = $scope.hostName,
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
angular.module('bansho.live')
|
angular.module('bansho.live', [])
|
||||||
|
|
||||||
.constant('filterSuffixes', { contains: '__contains',
|
.constant('filterSuffixes', { contains: '__contains',
|
||||||
has_field: '__has_field',
|
has_field: '__has_field',
|
||||||
|
@ -1,3 +1,375 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
angular.module('bansho.live', []);
|
angular.module('bansho.live', [])
|
||||||
|
|
||||||
|
.service('getObjects', ['$http', 'hostQueryTransform', 'hostMiddleware', 'serviceMiddleware',
|
||||||
|
function ($http, hostQueryTransform, hostMiddleware, serviceMiddleware) {
|
||||||
|
return function (fields, filters, apiName, additionnalFields) {
|
||||||
|
var query = {},
|
||||||
|
transformations;
|
||||||
|
|
||||||
|
// Merges additionnalFields into filters as 'is' filter
|
||||||
|
angular.forEach(additionnalFields, function (value, key) {
|
||||||
|
if (!('is' in filters)) {
|
||||||
|
filters.is = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(key in filters.is)) {
|
||||||
|
filters.is[key] = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
filters.is[key].push(value);
|
||||||
|
})
|
||||||
|
|
||||||
|
function appendTransform(defaults, transform) {
|
||||||
|
// We can't guarantee that the default transformation is an array
|
||||||
|
defaults = angular.isArray(defaults) ? defaults : [defaults];
|
||||||
|
|
||||||
|
return defaults.concat(transform);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (apiName === 'hosts') {
|
||||||
|
transformations = hostMiddleware;
|
||||||
|
} else if (apiName === 'services') {
|
||||||
|
transformations = serviceMiddleware;
|
||||||
|
} else {
|
||||||
|
throw new Error('getObjects : ' + apiName + ' API is not supported');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (apiName === 'hosts') {
|
||||||
|
hostQueryTransform(fields, filters);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fields.length > 0) {
|
||||||
|
query.fields = JSON.stringify(fields);
|
||||||
|
}
|
||||||
|
|
||||||
|
query.filters = JSON.stringify(filters);
|
||||||
|
|
||||||
|
return $http({
|
||||||
|
url: '/surveil/v2/status/' + apiName + '/',
|
||||||
|
method: 'POST',
|
||||||
|
data: query,
|
||||||
|
transformResponse: appendTransform($http.defaults.transformResponse, transformations),
|
||||||
|
}).error(function () {
|
||||||
|
throw new Error('getObjects : POST Request failed');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
|
||||||
|
.service('getService', ['$http', 'getObjects',
|
||||||
|
function ($http, getObjects) {
|
||||||
|
return function (hostName, description) {
|
||||||
|
var fields = [],
|
||||||
|
filters = {},
|
||||||
|
additionnalFields = { 'host_name': hostName, 'description': description };
|
||||||
|
|
||||||
|
return getObjects(fields, filters, 'services', additionnalFields)
|
||||||
|
.error(function () {
|
||||||
|
throw new Error('getService : POST Request failed');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
|
||||||
|
// This service is used to count the number of host open problems
|
||||||
|
.service('getHostOpenProblems', ['$http', 'getObjects',
|
||||||
|
function ($http, getObjects) {
|
||||||
|
return function () {
|
||||||
|
var fields = ['state'],
|
||||||
|
filters = {},
|
||||||
|
apiName = 'hosts',
|
||||||
|
additionnalFields = {'acknowledged': 0, 'state': 1};
|
||||||
|
|
||||||
|
return getObjects(fields, filters, apiName, additionnalFields)
|
||||||
|
.error(function () {
|
||||||
|
throw new Error('getHostOpenProblems : POST Request failed');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
|
||||||
|
// This service is used to count the number of service open problems
|
||||||
|
.service('getServiceOpenProblems', ['$http', '$q', 'getObjects',
|
||||||
|
function ($http, $q, getObjects) {
|
||||||
|
return function () {
|
||||||
|
var serviceFields = ['host_name', 'state'],
|
||||||
|
serviceFilters = { 'isnot': { 'state': [0] } },
|
||||||
|
serviceAdditionnalFields = { 'acknowledged': 0 },
|
||||||
|
hostFields = ['host_name', 'state'],
|
||||||
|
hostFilters = { 'isnot': { 'state': [2] } },
|
||||||
|
hostAdditionnalFields = {},
|
||||||
|
responsePromise = $q.defer();
|
||||||
|
|
||||||
|
getObjects(hostFields, hostFilters, 'hosts', hostAdditionnalFields)
|
||||||
|
.success(function (hostData) {
|
||||||
|
var hostsResult = {},
|
||||||
|
i;
|
||||||
|
|
||||||
|
// Creates a host dictionnary for performance
|
||||||
|
for (i = 0; i < hostData.length; i += 1) {
|
||||||
|
hostsResult[hostData[i].host_name] = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
getObjects(serviceFields, serviceFilters, 'services', serviceAdditionnalFields)
|
||||||
|
.success(function (serviceData) {
|
||||||
|
var result = [];
|
||||||
|
for (i = 0; i < serviceData.length; i += 1) {
|
||||||
|
if (serviceData[i].host_name in hostsResult) {
|
||||||
|
result.push(serviceData[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
responsePromise.resolve(result);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
return responsePromise.promise;
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
|
||||||
|
// This service is used to count the number of host problems
|
||||||
|
.service('getHostProblems', ['$http', 'getObjects',
|
||||||
|
function ($http, getObjects) {
|
||||||
|
return function () {
|
||||||
|
var fields = ['state'],
|
||||||
|
filters = { 'isnot': {'state': [0]} },
|
||||||
|
apiName = 'hosts',
|
||||||
|
additionnalFields = {};
|
||||||
|
|
||||||
|
return getObjects(fields, filters, apiName, additionnalFields)
|
||||||
|
.error(function () {
|
||||||
|
throw new Error('getHostProblems : POST Request failed');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
|
||||||
|
// This service is used to count the number of service problems
|
||||||
|
.service('getServiceProblems', ['$http', 'getObjects',
|
||||||
|
function ($http, getObjects) {
|
||||||
|
return function () {
|
||||||
|
var fields = ['state'],
|
||||||
|
filters = { 'isnot': {'state': [0]} },
|
||||||
|
apiName = 'services',
|
||||||
|
additionnalFields = {};
|
||||||
|
|
||||||
|
return getObjects(fields, filters, apiName, additionnalFields)
|
||||||
|
.error(function () {
|
||||||
|
throw new Error('getServiceOpenProblems : POST Request failed');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
|
||||||
|
// This service is used to count the number of hosts
|
||||||
|
.service('getTotalHosts', ['$http', 'getObjects',
|
||||||
|
function ($http, getObjects) {
|
||||||
|
return function () {
|
||||||
|
var fields = ['host_name'],
|
||||||
|
filters = {},
|
||||||
|
apiName = 'hosts',
|
||||||
|
additionnalFields = {};
|
||||||
|
|
||||||
|
return getObjects(fields, filters, apiName, additionnalFields)
|
||||||
|
.error(function () {
|
||||||
|
throw new Error('getTotalHosts : POST Request failed');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
|
||||||
|
// This service is used to count the number of services
|
||||||
|
.service('getTotalServices', ['$http', 'getObjects',
|
||||||
|
function ($http, getObjects) {
|
||||||
|
return function () {
|
||||||
|
var fields = ['host_name'],
|
||||||
|
filters = {},
|
||||||
|
apiName = 'services',
|
||||||
|
additionnalFields = {};
|
||||||
|
|
||||||
|
return getObjects(fields, filters, apiName, additionnalFields)
|
||||||
|
.error(function () {
|
||||||
|
throw new Error('getTotalServices : POST Request failed');
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
|
||||||
|
.service('getHost', ['$http', '$q', function ($http, $q) {
|
||||||
|
return function (objectType, objectIdentifier) {
|
||||||
|
var objectData = {},
|
||||||
|
endpoints = {
|
||||||
|
"host" : "hosts",
|
||||||
|
"service" : "services"
|
||||||
|
},
|
||||||
|
liveUrl = '/surveil/v2/status/' + endpoints[objectType] + '/' + objectIdentifier.host_name + '/',
|
||||||
|
configUrl = '/surveil/v2/config/'+ endpoints[objectType] + '/' + objectIdentifier.host_name + '/',
|
||||||
|
responsePromise = $q.defer();
|
||||||
|
|
||||||
|
$http.get(liveUrl) .success(function (liveData) {
|
||||||
|
$http.get(configUrl).success(function (configData) {
|
||||||
|
objectData.live = liveData;
|
||||||
|
objectData.config = configData;
|
||||||
|
responsePromise.resolve(objectData);
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
return responsePromise.promise;
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
|
||||||
|
.service('hostQueryTransform', function () {
|
||||||
|
return function (fields, filters) {
|
||||||
|
var i,
|
||||||
|
transformations = {
|
||||||
|
'host_state': 'state',
|
||||||
|
};
|
||||||
|
|
||||||
|
for (i = 0; i < fields.length; i += 1) {
|
||||||
|
if (fields[i] in transformations) {
|
||||||
|
fields[i] = transformations[fields[i]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// Modify response object to conform to web ui
|
||||||
|
.service('hostMiddleware', function() {
|
||||||
|
return function (data) {
|
||||||
|
var i = 0,
|
||||||
|
conversions = {
|
||||||
|
'state': 'host_state'
|
||||||
|
};
|
||||||
|
|
||||||
|
for (i = 0; i < data.length; i += 1) {
|
||||||
|
angular.forEach(data[i], function (value, field) {
|
||||||
|
if (field in conversions) {
|
||||||
|
data[i][conversions[field]] = value;
|
||||||
|
delete data[i][field];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
// Modify response object to conform to web ui
|
||||||
|
.service('serviceMiddleware', function() {
|
||||||
|
return function (data) {
|
||||||
|
var i = 0,
|
||||||
|
conversions = {
|
||||||
|
};
|
||||||
|
|
||||||
|
if (jQuery.isEmptyObject(conversions)) {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < data.length; i += 1) {
|
||||||
|
angular.forEach(data[i], function (value, field) {
|
||||||
|
if (field in conversions) {
|
||||||
|
data[i][conversions[field]] = value;
|
||||||
|
delete data[i][field];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
|
.service('getTableData', ['$q', 'getObjects',
|
||||||
|
function ($q, getObjects) {
|
||||||
|
return function (fields, filters, apiName, additionnalFields) {
|
||||||
|
var hostFields = [],
|
||||||
|
serviceFields = [],
|
||||||
|
hostFilters = {},
|
||||||
|
serviceFilters = {},
|
||||||
|
hostAdditionnalFields = {},
|
||||||
|
serviceAdditionnalFields = {},
|
||||||
|
hostKeys = {
|
||||||
|
'host_state': 'state',
|
||||||
|
'address': 'address',
|
||||||
|
'childs': 'childs'
|
||||||
|
},
|
||||||
|
responsePromise = $q.defer(),
|
||||||
|
i,
|
||||||
|
found = false;
|
||||||
|
|
||||||
|
if (apiName === 'hosts') {
|
||||||
|
getObjects(fields, filters, 'hosts', additionnalFields)
|
||||||
|
.success(function (data) {
|
||||||
|
responsePromise.resolve(data);
|
||||||
|
});
|
||||||
|
return responsePromise.promise;
|
||||||
|
}
|
||||||
|
|
||||||
|
angular.forEach(fields, function (field) {
|
||||||
|
if (field in hostKeys) {
|
||||||
|
hostFields.push(hostKeys[field]);
|
||||||
|
} else {
|
||||||
|
serviceFields.push(field);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Make sure that 'host_name' is in both queries as we
|
||||||
|
// use this field to merge data
|
||||||
|
if ($.inArray('host_name', hostFields) === -1) {
|
||||||
|
hostFields.push('host_name');
|
||||||
|
}
|
||||||
|
if ($.inArray('host_name', serviceFields) === -1) {
|
||||||
|
serviceFields.push('host_name');
|
||||||
|
}
|
||||||
|
|
||||||
|
angular.forEach(additionnalFields, function (value, field) {
|
||||||
|
if (field in hostKeys) {
|
||||||
|
hostAdditionnalFields[hostKeys[field]] = value;
|
||||||
|
} else {
|
||||||
|
serviceAdditionnalFields[field] = value;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
angular.forEach(filters, function (filterData, filterName) {
|
||||||
|
angular.forEach(filterData, function (values, field) {
|
||||||
|
if (field in hostKeys) {
|
||||||
|
if (!(filterData in hostFilters)) {
|
||||||
|
hostFilters[filterName] = {};
|
||||||
|
}
|
||||||
|
hostFilters[filterName][hostKeys[field]] = values;
|
||||||
|
} else {
|
||||||
|
if (!(filterData in serviceFilters)) {
|
||||||
|
serviceFilters[filterName] = {};
|
||||||
|
}
|
||||||
|
serviceFilters[filterName][field] = values;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Queries host and service APIs and merges responses
|
||||||
|
getObjects(hostFields, hostFilters, 'hosts', hostAdditionnalFields)
|
||||||
|
.success(function (hostData) {
|
||||||
|
getObjects(serviceFields, serviceFilters, 'services', serviceAdditionnalFields)
|
||||||
|
.success(function (serviceData) {
|
||||||
|
var hostDict = {};
|
||||||
|
|
||||||
|
// Create a host dict for performance
|
||||||
|
for (i = 0; i < hostData.length; i += 1) {
|
||||||
|
var host_name = hostData[i].host_name;
|
||||||
|
|
||||||
|
angular.forEach(hostData[i], function (value, field) {
|
||||||
|
if (!(host_name in hostDict)) {
|
||||||
|
hostDict[host_name] = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
hostDict[host_name][field] = value;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < serviceData.length; i += 1) {
|
||||||
|
angular.forEach(hostDict[serviceData[i].host_name],
|
||||||
|
function (value, field) {
|
||||||
|
serviceData[i][field] = value;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
responsePromise.resolve(serviceData);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
return responsePromise.promise;
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
angular.module('bansho.live')
|
angular.module('bansho.live', [])
|
||||||
|
|
||||||
.service('getObjects', ['$http', 'hostQueryTransform', 'hostMiddleware', 'serviceMiddleware',
|
.service('getObjects', ['$http', 'hostQueryTransform', 'hostMiddleware', 'serviceMiddleware',
|
||||||
function ($http, hostQueryTransform, hostMiddleware, serviceMiddleware) {
|
function ($http, hostQueryTransform, hostMiddleware, serviceMiddleware) {
|
||||||
|
@ -12,24 +12,6 @@
|
|||||||
|
|
||||||
<link rel="stylesheet" href="assets/css/app.css">
|
<link rel="stylesheet" href="assets/css/app.css">
|
||||||
<meta name="description" content="">
|
<meta name="description" content="">
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="layout color-scheme--dark">
|
|
||||||
<!--[if lt IE 7]> <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> <![endif]-->
|
|
||||||
<div class="layout__container">
|
|
||||||
<aside class="layout__aside sidebar-wrapper collapse" id="sidebarWrapper">
|
|
||||||
<bansho-sidebar></bansho-sidebar>
|
|
||||||
</aside>
|
|
||||||
|
|
||||||
<div class="layout__main">
|
|
||||||
<div class="topbar-wrapper clearfix">
|
|
||||||
<bansho-topbar></bansho-topbar>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<main ng-view id="page" class="main" role="main"></main>
|
|
||||||
<footer class="footer" role="contentinfo">...</footer>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- build:js js/app.min.js -->
|
<!-- build:js js/app.min.js -->
|
||||||
<script src="bower_components/angular/angular.js"></script>
|
<script src="bower_components/angular/angular.js"></script>
|
||||||
@ -45,7 +27,6 @@
|
|||||||
<script src="app.js"></script>
|
<script src="app.js"></script>
|
||||||
<script src="components/config/config.js"></script>
|
<script src="components/config/config.js"></script>
|
||||||
<script src="components/utils/promise_manager.js"></script>
|
<script src="components/utils/promise_manager.js"></script>
|
||||||
|
|
||||||
<script src="components/live/live.js"></script>
|
<script src="components/live/live.js"></script>
|
||||||
<script src="components/ng-justgage/ng-justgage.js"></script>
|
<script src="components/ng-justgage/ng-justgage.js"></script>
|
||||||
<script src="components/filters/filters.js"></script>
|
<script src="components/filters/filters.js"></script>
|
||||||
@ -78,11 +59,24 @@
|
|||||||
<script src="templates/single_table/single_table.js"></script>
|
<script src="templates/single_table/single_table.js"></script>
|
||||||
<script src="templates/host/host.js"></script>
|
<script src="templates/host/host.js"></script>
|
||||||
<script src="templates/service/service.js"></script>
|
<script src="templates/service/service.js"></script>
|
||||||
|
|
||||||
<!-- endbuild -->
|
<!-- endbuild -->
|
||||||
|
</head>
|
||||||
|
|
||||||
<!-- build:dev surveil -->
|
<body class="layout color-scheme--dark" ng-strict-di>
|
||||||
<script src="components/live/surveil.js"></script>
|
<!--[if lt IE 7]> <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> <![endif]-->
|
||||||
<!-- endbuild -->
|
<div class="layout__container">
|
||||||
|
<aside class="layout__aside sidebar-wrapper collapse" id="sidebarWrapper">
|
||||||
|
<bansho-sidebar></bansho-sidebar>
|
||||||
|
</aside>
|
||||||
|
|
||||||
|
<div class="layout__main">
|
||||||
|
<div class="topbar-wrapper clearfix">
|
||||||
|
<bansho-topbar></bansho-topbar>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<main ng-view id="page" class="main" role="main"></main>
|
||||||
|
<footer class="footer" role="contentinfo">...</footer>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
<Directory "/opt/adagios-frontend/app/">
|
<Directory "/opt/adagios-frontend/dist/">
|
||||||
Order allow,deny
|
Order allow,deny
|
||||||
Allow from all
|
Allow from all
|
||||||
Require all granted
|
Require all granted
|
||||||
</Directory>
|
</Directory>
|
||||||
|
|
||||||
<VirtualHost *:8888>
|
<VirtualHost *:8888>
|
||||||
Alias / /opt/adagios-frontend/app/
|
Alias / /opt/adagios-frontend/dist/
|
||||||
|
|
||||||
ProxyPreserveHost On
|
ProxyPreserveHost On
|
||||||
|
|
||||||
|
@ -17,7 +17,12 @@
|
|||||||
"karma-junit-reporter": "^0.2.2",
|
"karma-junit-reporter": "^0.2.2",
|
||||||
"protractor": "^1.1.1",
|
"protractor": "^1.1.1",
|
||||||
"shelljs": "^0.2.6",
|
"shelljs": "^0.2.6",
|
||||||
"grunt-contrib-uglify": "~0.8.0"
|
"grunt-contrib-uglify": "~0.8.0",
|
||||||
|
"grunt-usemin": "~3.0.0",
|
||||||
|
"grunt-contrib-concat": "~0.5.1",
|
||||||
|
"grunt-contrib-clean": "~0.6.0",
|
||||||
|
"grunt-contrib-copy": "~0.8.0",
|
||||||
|
"load-grunt-tasks": "~3.1.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"postinstall": "bower install",
|
"postinstall": "bower install",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user