diff --git a/client/GruntFile.js b/client/GruntFile.js index c591c42f3d6..e5d19ebe02b 100644 --- a/client/GruntFile.js +++ b/client/GruntFile.js @@ -1,5 +1,24 @@ module.exports = function(grunt) { - var DEV_PATH = './galaxy/scripts', + "use strict"; + + var _ = grunt.util._, + fmt = _.sprintf; + + var theme = grunt.option( 'theme', 'blue' ), + styleDistPath = '../static/style/blue', + imagesPath = '../static/images', + lessPath = './galaxy/style/less', + lessFiles = [ + 'base', + 'autocomplete_tagging', + 'embed_item', + 'iphone', + 'masthead', + 'library', + 'trackster', + 'circster' + ], + DEV_PATH = './galaxy/scripts', DIST_PATH = '../static/scripts', MAPS_PATH = '../static/maps', // this symlink allows us to serve uncompressed scripts in DEV_PATH for use with sourcemaps @@ -61,6 +80,48 @@ module.exports = function(grunt) { } }, + // Create sprite images and .less files + sprite: { + options: { + algorithm: 'binary-tree' + }, + 'history-buttons': { + src: fmt( '%s/history-buttons/*.png', imagesPath ), + destImg: fmt( '%s/sprite-history-buttons.png', styleDistPath ), + destCSS: fmt( '%s/sprite-history-buttons.less', lessPath ) + }, + 'history-states': { + src: fmt( '%s/history-states/*.png', imagesPath ), + destImg: fmt( '%s/sprite-history-states.png', styleDistPath ), + destCSS: fmt( '%s/sprite-history-states.less', lessPath ) + }, + 'fugue': { + src: fmt( '%s/fugue/*.png', imagesPath ), + destImg: fmt( '%s/sprite-fugue.png', styleDistPath ), + destCSS: fmt( '%s/sprite-fugue.less', lessPath ) + } + }, + + // Compile less files + less: { + options: { + compress: true, + paths: [ styleDistPath ] + }, + dist: { + files: _.reduce( lessFiles, function( d, s ) { + d[ fmt( '%s/%s.css', styleDistPath, s ) ] = [ fmt( '%s/%s.less', lessPath, s ) ]; return d; + }, {} ) + } + }, + + // remove tmp files + clean: { + clean : [ + fmt( '%s/tmp-site-config.less', lessPath ) + ] + }, + // call bower to install libraries and other external resources "bower-install-simple" : { options: { @@ -120,11 +181,19 @@ module.exports = function(grunt) { } }); + // Write theme variable for less + grunt.registerTask( 'less-site-config', 'Write site configuration for less', function() { + grunt.file.write( fmt( '%s/tmp-site-config.less', lessPath ), fmt( "@theme-name: %s;", theme ) ); + }); grunt.loadNpmTasks( 'grunt-contrib-watch' ); grunt.loadNpmTasks( 'grunt-contrib-uglify' ); + grunt.loadNpmTasks( 'grunt-contrib-less' ); + grunt.loadNpmTasks( 'grunt-spritesmith' ); + grunt.loadNpmTasks( 'grunt-contrib-clean' ); grunt.loadNpmTasks( 'grunt-bower-install-simple'); + grunt.registerTask( 'style', [ 'sprite', 'less-site-config', 'less', 'clean' ] ); grunt.registerTask( 'default', [ 'uglify' ] ); // -------------------------------------------------------------------------- decompress for easier debugging @@ -186,5 +255,4 @@ module.exports = function(grunt) { grunt.registerTask( 'copy-libs', 'copy external libraries to src', copyLibs ); grunt.registerTask( 'install-libs', 'fetch external libraries and copy to src', [ 'bower-install-simple:prod', 'copy-libs' ] ); - }; diff --git a/static/style/src/less/autocomplete_tagging.less b/client/galaxy/style/less/autocomplete_tagging.less similarity index 100% rename from static/style/src/less/autocomplete_tagging.less rename to client/galaxy/style/less/autocomplete_tagging.less diff --git a/static/style/src/less/base.less b/client/galaxy/style/less/base.less similarity index 100% rename from static/style/src/less/base.less rename to client/galaxy/style/less/base.less diff --git a/static/style/src/less/bootstrap.less b/client/galaxy/style/less/bootstrap.less similarity index 100% rename from static/style/src/less/bootstrap.less rename to client/galaxy/style/less/bootstrap.less diff --git a/static/style/src/less/bootstrap/alerts.less b/client/galaxy/style/less/bootstrap/alerts.less similarity index 100% rename from static/style/src/less/bootstrap/alerts.less rename to client/galaxy/style/less/bootstrap/alerts.less diff --git a/static/style/src/less/bootstrap/badges.less b/client/galaxy/style/less/bootstrap/badges.less similarity index 100% rename from static/style/src/less/bootstrap/badges.less rename to client/galaxy/style/less/bootstrap/badges.less diff --git a/static/style/src/less/bootstrap/bootstrap.less b/client/galaxy/style/less/bootstrap/bootstrap.less similarity index 100% rename from static/style/src/less/bootstrap/bootstrap.less rename to client/galaxy/style/less/bootstrap/bootstrap.less diff --git a/static/style/src/less/bootstrap/breadcrumbs.less b/client/galaxy/style/less/bootstrap/breadcrumbs.less similarity index 100% rename from static/style/src/less/bootstrap/breadcrumbs.less rename to client/galaxy/style/less/bootstrap/breadcrumbs.less diff --git a/static/style/src/less/bootstrap/button-groups.less b/client/galaxy/style/less/bootstrap/button-groups.less similarity index 100% rename from static/style/src/less/bootstrap/button-groups.less rename to client/galaxy/style/less/bootstrap/button-groups.less diff --git a/static/style/src/less/bootstrap/buttons.less b/client/galaxy/style/less/bootstrap/buttons.less similarity index 100% rename from static/style/src/less/bootstrap/buttons.less rename to client/galaxy/style/less/bootstrap/buttons.less diff --git a/static/style/src/less/bootstrap/carousel.less b/client/galaxy/style/less/bootstrap/carousel.less similarity index 100% rename from static/style/src/less/bootstrap/carousel.less rename to client/galaxy/style/less/bootstrap/carousel.less diff --git a/static/style/src/less/bootstrap/close.less b/client/galaxy/style/less/bootstrap/close.less similarity index 100% rename from static/style/src/less/bootstrap/close.less rename to client/galaxy/style/less/bootstrap/close.less diff --git a/static/style/src/less/bootstrap/code.less b/client/galaxy/style/less/bootstrap/code.less similarity index 100% rename from static/style/src/less/bootstrap/code.less rename to client/galaxy/style/less/bootstrap/code.less diff --git a/static/style/src/less/bootstrap/component-animations.less b/client/galaxy/style/less/bootstrap/component-animations.less similarity index 100% rename from static/style/src/less/bootstrap/component-animations.less rename to client/galaxy/style/less/bootstrap/component-animations.less diff --git a/static/style/src/less/bootstrap/dropdowns.less b/client/galaxy/style/less/bootstrap/dropdowns.less similarity index 100% rename from static/style/src/less/bootstrap/dropdowns.less rename to client/galaxy/style/less/bootstrap/dropdowns.less diff --git a/static/style/src/less/bootstrap/forms.less b/client/galaxy/style/less/bootstrap/forms.less similarity index 100% rename from static/style/src/less/bootstrap/forms.less rename to client/galaxy/style/less/bootstrap/forms.less diff --git a/static/style/src/less/bootstrap/glyphicons.less b/client/galaxy/style/less/bootstrap/glyphicons.less similarity index 100% rename from static/style/src/less/bootstrap/glyphicons.less rename to client/galaxy/style/less/bootstrap/glyphicons.less diff --git a/static/style/src/less/bootstrap/grid.less b/client/galaxy/style/less/bootstrap/grid.less similarity index 100% rename from static/style/src/less/bootstrap/grid.less rename to client/galaxy/style/less/bootstrap/grid.less diff --git a/static/style/src/less/bootstrap/input-groups.less b/client/galaxy/style/less/bootstrap/input-groups.less similarity index 100% rename from static/style/src/less/bootstrap/input-groups.less rename to client/galaxy/style/less/bootstrap/input-groups.less diff --git a/static/style/src/less/bootstrap/jumbotron.less b/client/galaxy/style/less/bootstrap/jumbotron.less similarity index 100% rename from static/style/src/less/bootstrap/jumbotron.less rename to client/galaxy/style/less/bootstrap/jumbotron.less diff --git a/static/style/src/less/bootstrap/labels.less b/client/galaxy/style/less/bootstrap/labels.less similarity index 100% rename from static/style/src/less/bootstrap/labels.less rename to client/galaxy/style/less/bootstrap/labels.less diff --git a/static/style/src/less/bootstrap/list-group.less b/client/galaxy/style/less/bootstrap/list-group.less similarity index 100% rename from static/style/src/less/bootstrap/list-group.less rename to client/galaxy/style/less/bootstrap/list-group.less diff --git a/static/style/src/less/bootstrap/media.less b/client/galaxy/style/less/bootstrap/media.less similarity index 100% rename from static/style/src/less/bootstrap/media.less rename to client/galaxy/style/less/bootstrap/media.less diff --git a/static/style/src/less/bootstrap/mixins.less b/client/galaxy/style/less/bootstrap/mixins.less similarity index 100% rename from static/style/src/less/bootstrap/mixins.less rename to client/galaxy/style/less/bootstrap/mixins.less diff --git a/static/style/src/less/bootstrap/modals.less b/client/galaxy/style/less/bootstrap/modals.less similarity index 100% rename from static/style/src/less/bootstrap/modals.less rename to client/galaxy/style/less/bootstrap/modals.less diff --git a/static/style/src/less/bootstrap/navbar.less b/client/galaxy/style/less/bootstrap/navbar.less similarity index 100% rename from static/style/src/less/bootstrap/navbar.less rename to client/galaxy/style/less/bootstrap/navbar.less diff --git a/static/style/src/less/bootstrap/navs.less b/client/galaxy/style/less/bootstrap/navs.less similarity index 100% rename from static/style/src/less/bootstrap/navs.less rename to client/galaxy/style/less/bootstrap/navs.less diff --git a/static/style/src/less/bootstrap/normalize.less b/client/galaxy/style/less/bootstrap/normalize.less similarity index 100% rename from static/style/src/less/bootstrap/normalize.less rename to client/galaxy/style/less/bootstrap/normalize.less diff --git a/static/style/src/less/bootstrap/pager.less b/client/galaxy/style/less/bootstrap/pager.less similarity index 100% rename from static/style/src/less/bootstrap/pager.less rename to client/galaxy/style/less/bootstrap/pager.less diff --git a/static/style/src/less/bootstrap/pagination.less b/client/galaxy/style/less/bootstrap/pagination.less similarity index 100% rename from static/style/src/less/bootstrap/pagination.less rename to client/galaxy/style/less/bootstrap/pagination.less diff --git a/static/style/src/less/bootstrap/panels.less b/client/galaxy/style/less/bootstrap/panels.less similarity index 100% rename from static/style/src/less/bootstrap/panels.less rename to client/galaxy/style/less/bootstrap/panels.less diff --git a/static/style/src/less/bootstrap/popovers.less b/client/galaxy/style/less/bootstrap/popovers.less similarity index 100% rename from static/style/src/less/bootstrap/popovers.less rename to client/galaxy/style/less/bootstrap/popovers.less diff --git a/static/style/src/less/bootstrap/print.less b/client/galaxy/style/less/bootstrap/print.less similarity index 100% rename from static/style/src/less/bootstrap/print.less rename to client/galaxy/style/less/bootstrap/print.less diff --git a/static/style/src/less/bootstrap/progress-bars.less b/client/galaxy/style/less/bootstrap/progress-bars.less similarity index 100% rename from static/style/src/less/bootstrap/progress-bars.less rename to client/galaxy/style/less/bootstrap/progress-bars.less diff --git a/static/style/src/less/bootstrap/responsive-utilities.less b/client/galaxy/style/less/bootstrap/responsive-utilities.less similarity index 100% rename from static/style/src/less/bootstrap/responsive-utilities.less rename to client/galaxy/style/less/bootstrap/responsive-utilities.less diff --git a/static/style/src/less/bootstrap/scaffolding.less b/client/galaxy/style/less/bootstrap/scaffolding.less similarity index 100% rename from static/style/src/less/bootstrap/scaffolding.less rename to client/galaxy/style/less/bootstrap/scaffolding.less diff --git a/static/style/src/less/bootstrap/tables.less b/client/galaxy/style/less/bootstrap/tables.less similarity index 100% rename from static/style/src/less/bootstrap/tables.less rename to client/galaxy/style/less/bootstrap/tables.less diff --git a/static/style/src/less/bootstrap/theme.less b/client/galaxy/style/less/bootstrap/theme.less similarity index 100% rename from static/style/src/less/bootstrap/theme.less rename to client/galaxy/style/less/bootstrap/theme.less diff --git a/static/style/src/less/bootstrap/thumbnails.less b/client/galaxy/style/less/bootstrap/thumbnails.less similarity index 100% rename from static/style/src/less/bootstrap/thumbnails.less rename to client/galaxy/style/less/bootstrap/thumbnails.less diff --git a/static/style/src/less/bootstrap/tooltip.less b/client/galaxy/style/less/bootstrap/tooltip.less similarity index 100% rename from static/style/src/less/bootstrap/tooltip.less rename to client/galaxy/style/less/bootstrap/tooltip.less diff --git a/static/style/src/less/bootstrap/type.less b/client/galaxy/style/less/bootstrap/type.less similarity index 100% rename from static/style/src/less/bootstrap/type.less rename to client/galaxy/style/less/bootstrap/type.less diff --git a/static/style/src/less/bootstrap/utilities.less b/client/galaxy/style/less/bootstrap/utilities.less similarity index 100% rename from static/style/src/less/bootstrap/utilities.less rename to client/galaxy/style/less/bootstrap/utilities.less diff --git a/static/style/src/less/bootstrap/variables.less b/client/galaxy/style/less/bootstrap/variables.less similarity index 100% rename from static/style/src/less/bootstrap/variables.less rename to client/galaxy/style/less/bootstrap/variables.less diff --git a/static/style/src/less/bootstrap/wells.less b/client/galaxy/style/less/bootstrap/wells.less similarity index 100% rename from static/style/src/less/bootstrap/wells.less rename to client/galaxy/style/less/bootstrap/wells.less diff --git a/static/style/src/less/circster.less b/client/galaxy/style/less/circster.less similarity index 100% rename from static/style/src/less/circster.less rename to client/galaxy/style/less/circster.less diff --git a/static/style/src/less/collections.less b/client/galaxy/style/less/collections.less similarity index 100% rename from static/style/src/less/collections.less rename to client/galaxy/style/less/collections.less diff --git a/static/style/src/less/embed_item.less b/client/galaxy/style/less/embed_item.less similarity index 100% rename from static/style/src/less/embed_item.less rename to client/galaxy/style/less/embed_item.less diff --git a/static/style/src/less/fontawesome/bordered-pulled.less b/client/galaxy/style/less/fontawesome/bordered-pulled.less similarity index 100% rename from static/style/src/less/fontawesome/bordered-pulled.less rename to client/galaxy/style/less/fontawesome/bordered-pulled.less diff --git a/static/style/src/less/fontawesome/core.less b/client/galaxy/style/less/fontawesome/core.less similarity index 100% rename from static/style/src/less/fontawesome/core.less rename to client/galaxy/style/less/fontawesome/core.less diff --git a/static/style/src/less/fontawesome/fixed-width.less b/client/galaxy/style/less/fontawesome/fixed-width.less similarity index 100% rename from static/style/src/less/fontawesome/fixed-width.less rename to client/galaxy/style/less/fontawesome/fixed-width.less diff --git a/static/style/src/less/fontawesome/font-awesome.less b/client/galaxy/style/less/fontawesome/font-awesome.less similarity index 100% rename from static/style/src/less/fontawesome/font-awesome.less rename to client/galaxy/style/less/fontawesome/font-awesome.less diff --git a/static/style/src/less/fontawesome/icons.less b/client/galaxy/style/less/fontawesome/icons.less similarity index 100% rename from static/style/src/less/fontawesome/icons.less rename to client/galaxy/style/less/fontawesome/icons.less diff --git a/static/style/src/less/fontawesome/larger.less b/client/galaxy/style/less/fontawesome/larger.less similarity index 100% rename from static/style/src/less/fontawesome/larger.less rename to client/galaxy/style/less/fontawesome/larger.less diff --git a/static/style/src/less/fontawesome/list.less b/client/galaxy/style/less/fontawesome/list.less similarity index 100% rename from static/style/src/less/fontawesome/list.less rename to client/galaxy/style/less/fontawesome/list.less diff --git a/static/style/src/less/fontawesome/mixins.less b/client/galaxy/style/less/fontawesome/mixins.less similarity index 100% rename from static/style/src/less/fontawesome/mixins.less rename to client/galaxy/style/less/fontawesome/mixins.less diff --git a/static/style/src/less/fontawesome/path.less b/client/galaxy/style/less/fontawesome/path.less similarity index 100% rename from static/style/src/less/fontawesome/path.less rename to client/galaxy/style/less/fontawesome/path.less diff --git a/static/style/src/less/fontawesome/rotated-flipped.less b/client/galaxy/style/less/fontawesome/rotated-flipped.less similarity index 100% rename from static/style/src/less/fontawesome/rotated-flipped.less rename to client/galaxy/style/less/fontawesome/rotated-flipped.less diff --git a/static/style/src/less/fontawesome/spinning.less b/client/galaxy/style/less/fontawesome/spinning.less similarity index 100% rename from static/style/src/less/fontawesome/spinning.less rename to client/galaxy/style/less/fontawesome/spinning.less diff --git a/static/style/src/less/fontawesome/stacked.less b/client/galaxy/style/less/fontawesome/stacked.less similarity index 100% rename from static/style/src/less/fontawesome/stacked.less rename to client/galaxy/style/less/fontawesome/stacked.less diff --git a/static/style/src/less/fontawesome/variables.less b/client/galaxy/style/less/fontawesome/variables.less similarity index 100% rename from static/style/src/less/fontawesome/variables.less rename to client/galaxy/style/less/fontawesome/variables.less diff --git a/static/style/src/less/frame.less b/client/galaxy/style/less/frame.less similarity index 100% rename from static/style/src/less/frame.less rename to client/galaxy/style/less/frame.less diff --git a/static/style/src/less/galaxy_bootstrap.less b/client/galaxy/style/less/galaxy_bootstrap.less similarity index 100% rename from static/style/src/less/galaxy_bootstrap.less rename to client/galaxy/style/less/galaxy_bootstrap.less diff --git a/static/style/src/less/galaxy_bootstrap/overrides.less b/client/galaxy/style/less/galaxy_bootstrap/overrides.less similarity index 100% rename from static/style/src/less/galaxy_bootstrap/overrides.less rename to client/galaxy/style/less/galaxy_bootstrap/overrides.less diff --git a/static/style/src/less/galaxy_bootstrap/variables.less b/client/galaxy/style/less/galaxy_bootstrap/variables.less similarity index 100% rename from static/style/src/less/galaxy_bootstrap/variables.less rename to client/galaxy/style/less/galaxy_bootstrap/variables.less diff --git a/static/style/src/less/galaxy_variables.less b/client/galaxy/style/less/galaxy_variables.less similarity index 100% rename from static/style/src/less/galaxy_variables.less rename to client/galaxy/style/less/galaxy_variables.less diff --git a/static/style/src/less/history.less b/client/galaxy/style/less/history.less similarity index 99% rename from static/style/src/less/history.less rename to client/galaxy/style/less/history.less index 2e936eb05c2..0423541b024 100644 --- a/static/style/src/less/history.less +++ b/client/galaxy/style/less/history.less @@ -859,8 +859,6 @@ div.historyItem-failed_metadata { } } -//@import "sprite-history-states.less"; - div.historyItem-error { background: @state-danger-bg; .state-icon { @@ -946,8 +944,6 @@ div.historyItemTitleBar.spinner .state-icon { div.historyItemButtons { float: right; - @import "sprite-history-buttons.less"; - .icon-button.display { .sprite(@eye_icon); } diff --git a/static/style/src/less/iconic_stroke.less b/client/galaxy/style/less/iconic_stroke.less similarity index 100% rename from static/style/src/less/iconic_stroke.less rename to client/galaxy/style/less/iconic_stroke.less diff --git a/static/style/src/less/iphone.less b/client/galaxy/style/less/iphone.less similarity index 100% rename from static/style/src/less/iphone.less rename to client/galaxy/style/less/iphone.less diff --git a/static/style/src/less/job.less b/client/galaxy/style/less/job.less similarity index 100% rename from static/style/src/less/job.less rename to client/galaxy/style/less/job.less diff --git a/static/style/src/less/jstree.less b/client/galaxy/style/less/jstree.less similarity index 100% rename from static/style/src/less/jstree.less rename to client/galaxy/style/less/jstree.less diff --git a/static/style/src/less/library.less b/client/galaxy/style/less/library.less similarity index 100% rename from static/style/src/less/library.less rename to client/galaxy/style/less/library.less diff --git a/static/style/src/less/list-item.less b/client/galaxy/style/less/list-item.less similarity index 100% rename from static/style/src/less/list-item.less rename to client/galaxy/style/less/list-item.less diff --git a/static/style/src/less/masthead.less b/client/galaxy/style/less/masthead.less similarity index 100% rename from static/style/src/less/masthead.less rename to client/galaxy/style/less/masthead.less diff --git a/static/style/src/less/select2.less b/client/galaxy/style/less/select2.less similarity index 100% rename from static/style/src/less/select2.less rename to client/galaxy/style/less/select2.less diff --git a/static/style/src/less/theme/blue.less b/client/galaxy/style/less/theme/blue.less similarity index 100% rename from static/style/src/less/theme/blue.less rename to client/galaxy/style/less/theme/blue.less diff --git a/static/style/src/less/toastr.less b/client/galaxy/style/less/toastr.less similarity index 100% rename from static/style/src/less/toastr.less rename to client/galaxy/style/less/toastr.less diff --git a/static/style/src/less/trackster.less b/client/galaxy/style/less/trackster.less similarity index 100% rename from static/style/src/less/trackster.less rename to client/galaxy/style/less/trackster.less diff --git a/static/style/src/less/ui.less b/client/galaxy/style/less/ui.less similarity index 100% rename from static/style/src/less/ui.less rename to client/galaxy/style/less/ui.less diff --git a/static/style/src/less/ui/dataset-choice.less b/client/galaxy/style/less/ui/dataset-choice.less similarity index 100% rename from static/style/src/less/ui/dataset-choice.less rename to client/galaxy/style/less/ui/dataset-choice.less diff --git a/static/style/src/less/ui/icon-btn.less b/client/galaxy/style/less/ui/icon-btn.less similarity index 100% rename from static/style/src/less/ui/icon-btn.less rename to client/galaxy/style/less/ui/icon-btn.less diff --git a/static/style/src/less/ui/pagination.less b/client/galaxy/style/less/ui/pagination.less similarity index 100% rename from static/style/src/less/ui/pagination.less rename to client/galaxy/style/less/ui/pagination.less diff --git a/static/style/src/less/ui/paired-collection-creator.less b/client/galaxy/style/less/ui/paired-collection-creator.less similarity index 100% rename from static/style/src/less/ui/paired-collection-creator.less rename to client/galaxy/style/less/ui/paired-collection-creator.less diff --git a/static/style/src/less/ui/peek-column-selector.less b/client/galaxy/style/less/ui/peek-column-selector.less similarity index 100% rename from static/style/src/less/ui/peek-column-selector.less rename to client/galaxy/style/less/ui/peek-column-selector.less diff --git a/static/style/src/less/ui/search-input.less b/client/galaxy/style/less/ui/search-input.less similarity index 100% rename from static/style/src/less/ui/search-input.less rename to client/galaxy/style/less/ui/search-input.less diff --git a/static/style/src/less/upload.less b/client/galaxy/style/less/upload.less similarity index 100% rename from static/style/src/less/upload.less rename to client/galaxy/style/less/upload.less diff --git a/static/style/src/source_material/circle.py b/client/galaxy/style/source_material/circle.py similarity index 100% rename from static/style/src/source_material/circle.py rename to client/galaxy/style/source_material/circle.py diff --git a/static/style/src/source_material/galaxy_icons.svg b/client/galaxy/style/source_material/galaxy_icons.svg similarity index 100% rename from static/style/src/source_material/galaxy_icons.svg rename to client/galaxy/style/source_material/galaxy_icons.svg diff --git a/static/style/src/source_material/galaxy_spinner.fla b/client/galaxy/style/source_material/galaxy_spinner.fla similarity index 100% rename from static/style/src/source_material/galaxy_spinner.fla rename to client/galaxy/style/source_material/galaxy_spinner.fla diff --git a/client/package.json b/client/package.json index f943a5e425c..fb0f5a75876 100644 --- a/client/package.json +++ b/client/package.json @@ -9,10 +9,13 @@ "grunt": "^0.4.5", "grunt-bower-install-simple": "^1.1.0", "grunt-cli": "^0.1.13", + "grunt-contrib-clean": "^0.6.0", "grunt-contrib-copy": "^0.5.0", + "grunt-contrib-less": "~0.7.0", "grunt-contrib-uglify": "^0.8.0", "grunt-contrib-watch": "^0.6.1", "grunt-exec": "^0.4.6", + "grunt-spritesmith": "~1.7.0", "grunt-webpack": "^1.0.8", "i18n-webpack-plugin": "^0.2.7", "webpack": "^1.5.1", diff --git a/static/style/blue/base.css b/static/style/blue/base.css index 2530d3e80a3..832420d5f8b 100644 --- a/static/style/blue/base.css +++ b/static/style/blue/base.css @@ -2154,25 +2154,25 @@ div.historyItem .historyItemTitle{font-weight:bold;line-height:16px} .historyItemContainer:last-child div.historyItem{border-bottom:solid #bfbfbf 1px} div.historyItem div.historyItem{margin-right:-11px} div.historyItem-ok,div.historyItem-failed_metadata{background:#aff1af}div.historyItem-ok .state-icon,div.historyItem-failed_metadata .state-icon{display:none} -div.historyItem-error{background:#f9c7c5}div.historyItem-error .state-icon{background-image:url(sprite-history-states.png);background-position:0px -15px;width:15px;height:15px;height:15px} -div.historyItem-empty{background:#f9c7c5}div.historyItem-empty .state-icon{background-image:url(sprite-history-states.png);background-position:0px 0px;width:15px;height:15px;height:15px} +div.historyItem-error{background:#f9c7c5}div.historyItem-error .state-icon{background-image:url(../../../../../static/style/blue/sprite-history-states.png);background-position:0px -15px;width:15px;height:15px;height:15px} +div.historyItem-empty{background:#f9c7c5}div.historyItem-empty .state-icon{background-image:url(../../../../../static/style/blue/sprite-history-states.png);background-position:0px 0px;width:15px;height:15px;height:15px} div.historyItem-running{background:#ffc}div.historyItem-running .state-icon{background-image:url(data_running.gif)} div.historyItem-setting_metadata{background:#ffc}div.historyItem-setting_metadata .state-icon{background-image:url(data_running.gif)} div.historyItem-upload{background:#a6e4f7}div.historyItem-upload .state-icon{background-image:url(data_upload.gif)} -div.historyItem-queued{background:#eee}div.historyItem-queued .state-icon{background-image:url(sprite-history-states.png);background-position:0px -45px;width:15px;height:15px;height:15px} +div.historyItem-queued{background:#eee}div.historyItem-queued .state-icon{background-image:url(../../../../../static/style/blue/sprite-history-states.png);background-position:0px -45px;width:15px;height:15px;height:15px} div.historyItem-noPermission{filter:alpha(opacity=60);-moz-opacity:.60;opacity:.60}div.historyItem-noPermission .state-icon{line-height:16px;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-moz-osx-font-smoothing:grayscale;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}div.historyItem-noPermission .state-icon:before{content:"\f05e"} div.historyItem-paused{background:#d9edf7}div.historyItem-paused .state-icon{line-height:16px;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-moz-osx-font-smoothing:grayscale;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}div.historyItem-paused .state-icon:before{content:"\f04c"} div.historyItem-new .state-icon{line-height:16px;display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-moz-osx-font-smoothing:grayscale;font-family:FontAwesome;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}div.historyItem-new .state-icon:before{content:"\f071"} div.historyItemTitleBar.spinner .state-icon{background:url(data_running.gif) 0 1px no-repeat !important} -div.historyItemButtons{float:right}div.historyItemButtons .icon-button.display{background-image:url(sprite-history-buttons.png);background-position:0px -48px;width:16px;height:16px;height:16px} -div.historyItemButtons .icon-button.display:hover{background-image:url(sprite-history-buttons.png);background-position:0px -64px;width:16px;height:16px;height:16px} -div.historyItemButtons .icon-button.display_disabled{background-image:url(sprite-history-buttons.png);background-position:0px -80px;width:16px;height:16px;height:16px} -div.historyItemButtons .icon-button.delete{background-image:url(sprite-history-buttons.png);background-position:0px 0px;width:16px;height:16px;height:16px} -div.historyItemButtons .icon-button.delete:hover{background-image:url(sprite-history-buttons.png);background-position:0px -16px;width:16px;height:16px;height:16px} -div.historyItemButtons .icon-button.delete_disabled{background-image:url(sprite-history-buttons.png);background-position:0px -32px;width:16px;height:16px;height:16px} -div.historyItemButtons .icon-button.edit{background-image:url(sprite-history-buttons.png);background-position:0px -96px;width:16px;height:16px;height:16px} -div.historyItemButtons .icon-button.edit:hover{background-image:url(sprite-history-buttons.png);background-position:0px -112px;width:16px;height:16px;height:16px} -div.historyItemButtons .icon-button.edit_disabled{background-image:url(sprite-history-buttons.png);background-position:0px -128px;width:16px;height:16px;height:16px} +div.historyItemButtons{float:right}div.historyItemButtons .icon-button.display{background-image:url(../../../../../static/style/blue/sprite-history-buttons.png);background-position:0px -48px;width:16px;height:16px;height:16px} +div.historyItemButtons .icon-button.display:hover{background-image:url(../../../../../static/style/blue/sprite-history-buttons.png);background-position:0px -64px;width:16px;height:16px;height:16px} +div.historyItemButtons .icon-button.display_disabled{background-image:url(../../../../../static/style/blue/sprite-history-buttons.png);background-position:0px -80px;width:16px;height:16px;height:16px} +div.historyItemButtons .icon-button.delete{background-image:url(../../../../../static/style/blue/sprite-history-buttons.png);background-position:0px 0px;width:16px;height:16px;height:16px} +div.historyItemButtons .icon-button.delete:hover{background-image:url(../../../../../static/style/blue/sprite-history-buttons.png);background-position:0px -16px;width:16px;height:16px;height:16px} +div.historyItemButtons .icon-button.delete_disabled{background-image:url(../../../../../static/style/blue/sprite-history-buttons.png);background-position:0px -32px;width:16px;height:16px;height:16px} +div.historyItemButtons .icon-button.edit{background-image:url(../../../../../static/style/blue/sprite-history-buttons.png);background-position:0px -96px;width:16px;height:16px;height:16px} +div.historyItemButtons .icon-button.edit:hover{background-image:url(../../../../../static/style/blue/sprite-history-buttons.png);background-position:0px -112px;width:16px;height:16px;height:16px} +div.historyItemButtons .icon-button.edit_disabled{background-image:url(../../../../../static/style/blue/sprite-history-buttons.png);background-position:0px -128px;width:16px;height:16px;height:16px} div.historyItemBody div{padding-top:2px} pre.peek{background:white;color:black;width:100%;font-size:10px;overflow:auto}pre.peek th{color:white;background:#5f6990} pre.peek table,pre.peek th,pre.peek tr,pre.peek td{font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:10px} @@ -2343,30 +2343,30 @@ div.toolTitleNoSection{padding-bottom:5px;font-weight:bold} .btn-primary .text-and-autocomplete-select:after,.btn-success .text-and-autocomplete-select:after,.btn-warning .text-and-autocomplete-select:after,.btn-danger .text-and-autocomplete-select:after,.btn-info .text-and-autocomplete-select:after{border-top-color:#fff} .icon-button.general-question{background:url(question-octagon-frame.png) no-repeat;float:right;margin-top:3px;margin-right:4px} .icon-button.tag-question{background:url(question-balloon.png) no-repeat;float:right;margin-top:3px;margin-right:4px} -.icon-button.tag{background-image:url(sprite-fugue.png);background-position:0px -912px;width:16px;height:16px;height:16px} -.icon-button.tags{background-image:url(sprite-fugue.png);background-position:0px -928px;width:16px;height:16px;height:16px} -.icon-button.tag--plus{background-image:url(sprite-fugue.png);background-position:0px -896px;width:16px;height:16px;height:16px} -.icon-button.toggle-expand{background-image:url(sprite-fugue.png);background-position:0px -976px;width:16px;height:16px;height:16px} -.icon-button.toggle{background-image:url(sprite-fugue.png);background-position:0px -944px;width:16px;height:16px;height:16px} -.icon-button.toggle:hover{background-image:url(sprite-fugue.png);background-position:0px -992px;width:16px;height:16px;height:16px} -.icon-button.arrow-circle{background-image:url(sprite-fugue.png);background-position:0px -64px;width:16px;height:16px;height:16px} -.icon-button.chevron{background-image:url(sprite-fugue.png);background-position:0px -352px;width:16px;height:16px;height:16px} -.icon-button.bug{background-image:url(sprite-fugue.png);background-position:0px -288px;width:16px;height:16px;height:16px} -.icon-button.disk{background-image:url(sprite-fugue.png);background-position:0px -496px;width:16px;height:16px;height:16px} -.icon-button.information{background-image:url(sprite-fugue.png);background-position:0px -656px;width:16px;height:16px;height:16px} -.icon-button.annotate{background-image:url(sprite-fugue.png);background-position:0px -880px;width:16px;height:16px;height:16px} -.icon-button.go-to-full-screen{background-image:url(sprite-fugue.png);background-position:0px 0px;width:16px;height:16px;height:16px} -.icon-button.import{background-image:url(sprite-fugue.png);background-position:0px -864px;width:16px;height:16px;height:16px} -.icon-button.plus-button{background-image:url(sprite-fugue.png);background-position:0px -832px;width:16px;height:16px;height:16px} -.icon-button.plus-button:hover{background-image:url(sprite-fugue.png);background-position:0px -848px;width:16px;height:16px;height:16px} -.icon-button.gear{background-image:url(sprite-fugue.png);background-position:0px -576px;width:16px;height:16px;height:16px} -.icon-button.chart_curve{background-image:url(sprite-fugue.png);background-position:0px -304px;width:16px;height:16px;height:16px} -.icon-button.disk--arrow{background-image:url(sprite-fugue.png);background-position:0px -464px;width:16px;height:16px;height:16px} -.icon-button.disk--arrow:hover{background-image:url(sprite-fugue.png);background-position:0px -480px;width:16px;height:16px;height:16px} -.icon-button.cross-circle{background-image:url(sprite-fugue.png);background-position:0px -400px;width:16px;height:16px;height:16px} -.icon-button.cross-circle:hover{background-image:url(sprite-fugue.png);background-position:0px -416px;width:16px;height:16px;height:16px} -.icon-button.arrow-split{background-image:url(sprite-fugue.png);background-position:0px -112px;width:16px;height:16px;height:16px} -.icon-button.arrow-split:hover{background-image:url(sprite-fugue.png);background-position:0px -128px;width:16px;height:16px;height:16px} -.icon-button.chevron-expand:hover{background-image:url(sprite-fugue.png);background-position:0px -336px;width:16px;height:16px;height:16px} -.icon-button.chevron-expand{background-image:url(sprite-fugue.png);background-position:0px -320px;width:16px;height:16px;height:16px} +.icon-button.tag{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -912px;width:16px;height:16px;height:16px} +.icon-button.tags{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -928px;width:16px;height:16px;height:16px} +.icon-button.tag--plus{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -896px;width:16px;height:16px;height:16px} +.icon-button.toggle-expand{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -976px;width:16px;height:16px;height:16px} +.icon-button.toggle{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -944px;width:16px;height:16px;height:16px} +.icon-button.toggle:hover{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -992px;width:16px;height:16px;height:16px} +.icon-button.arrow-circle{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -64px;width:16px;height:16px;height:16px} +.icon-button.chevron{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -352px;width:16px;height:16px;height:16px} +.icon-button.bug{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -288px;width:16px;height:16px;height:16px} +.icon-button.disk{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -496px;width:16px;height:16px;height:16px} +.icon-button.information{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -656px;width:16px;height:16px;height:16px} +.icon-button.annotate{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -880px;width:16px;height:16px;height:16px} +.icon-button.go-to-full-screen{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px 0px;width:16px;height:16px;height:16px} +.icon-button.import{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -864px;width:16px;height:16px;height:16px} +.icon-button.plus-button{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -832px;width:16px;height:16px;height:16px} +.icon-button.plus-button:hover{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -848px;width:16px;height:16px;height:16px} +.icon-button.gear{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -576px;width:16px;height:16px;height:16px} +.icon-button.chart_curve{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -304px;width:16px;height:16px;height:16px} +.icon-button.disk--arrow{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -464px;width:16px;height:16px;height:16px} +.icon-button.disk--arrow:hover{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -480px;width:16px;height:16px;height:16px} +.icon-button.cross-circle{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -400px;width:16px;height:16px;height:16px} +.icon-button.cross-circle:hover{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -416px;width:16px;height:16px;height:16px} +.icon-button.arrow-split{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -112px;width:16px;height:16px;height:16px} +.icon-button.arrow-split:hover{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -128px;width:16px;height:16px;height:16px} +.icon-button.chevron-expand:hover{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -336px;width:16px;height:16px;height:16px} +.icon-button.chevron-expand{background-image:url(../../../../../static/style/blue/sprite-fugue.png);background-position:0px -320px;width:16px;height:16px;height:16px} #for_bears{display:none}