diff --git a/src/courier/data_source/data_source.js b/src/courier/data_source/data_source.js index 1d20e5cc4cd75..8763d94626a41 100644 --- a/src/courier/data_source/data_source.js +++ b/src/courier/data_source/data_source.js @@ -24,6 +24,12 @@ define(function (require) { this._state = state; this._courier = courier; + // before newListener to prevent unnecessary "emit" when added + this.on('removeListener', function onRemoveListener() { + if (EventEmitter.listenerCount(this, 'results') > 0) return; + courier._closeDataSource(this); + }); + this.on('newListener', function (name, listener) { if (name !== 'results') return; @@ -43,11 +49,6 @@ define(function (require) { } }); - this.on('removeListener', function onRemoveListener() { - if (EventEmitter.listenerCount(this, 'results') > 0) return; - courier._closeDataSource(this); - }); - this.extend = function () { return courier .createSource(this._getType()) diff --git a/src/courier/mapper.js b/src/courier/mapper.js index 67d647648e505..87e15e4c1bf54 100644 --- a/src/courier/mapper.js +++ b/src/courier/mapper.js @@ -54,11 +54,11 @@ define(function (require) { }); cacheFieldsToObject(dataSource, fields); - callback(err, fields); + callback(err, self.getFieldsFromObject(dataSource)); }); } else { cacheFieldsToObject(dataSource, fields); - callback(err, fields); + callback(err, self.getFieldsFromObject(dataSource)); } }); } @@ -141,8 +141,15 @@ define(function (require) { _.each(index.mappings, function (type) { _.each(type, function (field, name) { if (_.size(field.mapping) === 0 || name[0] === '_') return; - if (!_.isUndefined(fields[name]) && fields[name].type !== field.mapping[_.keys(field.mapping)[0]].type) + + var mapping = field.mapping[_.keys(field.mapping)[0]]; + mapping.type = castMappingType(mapping.type); + + if (fields[name]) { + if (fields[name].type === mapping.type) return; return courier._error(new Error.MappingConflict(name)); + } + fields[name] = field.mapping[_.keys(field.mapping)[0]]; }); }); @@ -181,6 +188,33 @@ define(function (require) { return !_.isUndefined(mappings[dataSource._state.index]) ? true : false; }; + /** + * Accepts a mapping type, and converts it into it's js equivilent + * @param {String} type - the type from the mapping's 'type' field + * @return {String} - the most specific type that we care for + */ + var castMappingType = function (type) { + switch (type) { + case 'float': + case 'double': + case 'integer': + case 'long': + case 'short': + case 'byte': + case 'token_count': + return 'number'; + case 'date': + case 'boolean': + case 'ip': + case 'attachment': + case 'geo_point': + case 'geo_shape': + return type; + default: // including 'string' + return 'string'; + } + }; + /** * Clears mapping caches from elasticsearch and from local object * @param {dataSource} dataSource diff --git a/src/index.html b/src/index.html index 91dfb4b7884f4..5f98a6037ff1c 100644 --- a/src/index.html +++ b/src/index.html @@ -11,7 +11,6 @@ -
diff --git a/src/kibana/apps/discover/field_chooser.html b/src/kibana/apps/discover/field_chooser.html new file mode 100644 index 0000000000000..ab27846749338 --- /dev/null +++ b/src/kibana/apps/discover/field_chooser.html @@ -0,0 +1,15 @@ + +refresh field list \ No newline at end of file diff --git a/src/kibana/apps/discover/field_chooser.js b/src/kibana/apps/discover/field_chooser.js new file mode 100644 index 0000000000000..9515dbe2b5e1a --- /dev/null +++ b/src/kibana/apps/discover/field_chooser.js @@ -0,0 +1,16 @@ +define(function (require) { + var app = require('angular').module('app/discover'); + var html = require('text!./field_chooser.html'); + + app.directive('discFieldChooser', function () { + return { + restrict: 'E', + scope: { + fields: '=', + toggle: '=', + refresh: '=' + }, + template: html + }; + }); +}); \ No newline at end of file diff --git a/src/kibana/apps/discover/index.html b/src/kibana/apps/discover/index.html index 5bf9d89871816..035bb36186cd2 100644 --- a/src/kibana/apps/discover/index.html +++ b/src/kibana/apps/discover/index.html @@ -1,43 +1,39 @@
-

Discover

-
-
- -
- -
-
- -
- -
-
- - - - -
-
+
+ +
+
+ +
+
+ + +
-
- - -
-
\ No newline at end of file diff --git a/src/kibana/apps/discover/index.js b/src/kibana/apps/discover/index.js index 3e96fea96dd08..5fbc223b1dfac 100644 --- a/src/kibana/apps/discover/index.js +++ b/src/kibana/apps/discover/index.js @@ -1,11 +1,12 @@ -define(function (require) { +define(function (require, module, exports) { var angular = require('angular'); var _ = require('lodash'); require('directives/table'); - require('css!./styles/main.css'); + require('./field_chooser'); + require('services/saved_searches'); - var app = angular.module('app/discover', []); + var app = angular.module('app/discover'); var sizeOptions = [ { display: '30', val: 30 }, @@ -13,7 +14,7 @@ define(function (require) { { display: '80', val: 80 }, { display: '125', val: 125 }, { display: '250', val: 250 }, - { display: 'Unlimited', val: null }, + { display: '500', val: 500 } ]; var intervalOptions = [ @@ -25,20 +26,19 @@ define(function (require) { { display: 'Yearly', val: 'yearly' } ]; - app.controller('discover', function ($scope, courier, config) { - var source = courier.rootSearchSource.extend() - .size(30) - .$scope($scope) - .on('results', function (res) { - if (!$scope.fields) getFields(); - $scope.rows = res.hits.hits; - }); + app.controller('discover', function ($scope, config, $q, $routeParams, savedSearches, courier) { + var source; + if ($routeParams.id) { + source = savedSearches.get($routeParams.id); + } else { + source = savedSearches.create(); + } // stores the complete list of fields - $scope.fields = []; + $scope.fields = null; // stores the fields we want to fetch - $scope.columns = []; + $scope.columns = null; // At what interval are your index patterns $scope.intervalOptions = intervalOptions; @@ -48,56 +48,128 @@ define(function (require) { $scope.sizeOptions = sizeOptions; $scope.size = $scope.sizeOptions[0]; - // watch the discover.defaultIndex config value for changes + // the index that will be config.$watch('discover.defaultIndex', function (val) { - if (!val) { - config.set('discover.defaultIndex', '_all'); - return; + if (!val) return config.set('discover.defaultIndex', '_all'); + if (!$scope.index) { + $scope.index = val; + $scope.fetch(); } - // only set if datasource doesn't have an index - if (!source.get('index')) $scope.index = val; }); - $scope.$watch('index', function (val) { - // set the index on the data source - source.index(val); - // clear the columns and fields, then refetch when we so a search - $scope.columns = $scope.fields = null; - }); + source + .size(30) + .$scope($scope) + .inherits(courier.rootSearchSource) + .on('results', function (res) { + if (!$scope.fields) getFields(); + $scope.rows = res.hits.hits; + }); - $scope.$watch('query', function (query) { - if (query) { - source.query({ + $scope.fetch = function () { + if (!$scope.fields) getFields(); + source + .size($scope.size.val) + .query(!$scope.query ? null : { query_string: { - query: query + query: $scope.query } + }) + .source(!$scope.columns ? null : { + include: $scope.columns }); - } else { - // clear the query - source.query(null); + + if ($scope.sort) { + var sort = {}; + sort[$scope.sort.name] = 'asc'; + source.sort(sort); } - }); - $scope.$watch('size', function (selectedSize) { - source.size(selectedSize.val); - }); + if ($scope.index !== source.get('index')) { + // set the index on the data source + source.index($scope.index); + // clear the columns and fields, then refetch when we so a search + $scope.columns = $scope.fields = null; + } - $scope.reset = function () { - // the check happens only when the results come in; prevents a race condition - // if (!$scope.fields) getFields(); - courier.abort(); - courier.fetch(); + // fetch just this datasource + source.fetch(); }; + var activeGetFields; function getFields() { - source.getFields(function (err, fields) { - $scope.fields = fields; - $scope.columns = _.keys(fields); - source.source({ - include: $scope.columns + var defer = $q.defer(); + + if (!source.get('index')) { + // Without an index there is nothing to do here. + defer.resolve(); + return defer.promise; + } + + if (activeGetFields) { + activeGetFields.then(function () { + defer.resolve(); }); + return; + } + + var currentState = _.transform($scope.fields || [], function (current, field) { + current[field.name] = { + hidden: field.hidden + }; + }, {}); + + source + .getFields() + .then(function (fields) { + $scope.fields = []; + $scope.columns = []; + + _(fields) + .keys() + .sort() + .each(function (name) { + var field = fields[name]; + field.name = name; + _.defaults(field, currentState[name]); + + if (!field.hidden) $scope.columns.push(name); + $scope.fields.push(field); + }); + + defer.resolve(); + }, defer.reject); + + return defer.promise.then(function () { + activeGetFields = null; }); } + $scope.toggleField = function (name) { + var field = _.find($scope.fields, { name: name }); + + // toggle the hidden property + field.hidden = !field.hidden; + + // collect column names for non-hidden fields and sort + $scope.columns = _.transform($scope.fields, function (cols, field) { + if (!field.hidden) cols.push(field.name); + }, []).sort(); + + // if we are just removing a field, no reason to refetch + if (!field.hidden) { + $scope.fetch(); + } + }; + + $scope.refreshFieldList = function () { + source.clearFieldCache(function () { + getFields(function () { + $scope.fetch(); + }); + }); + }; + + $scope.$emit('application.load'); }); }); \ No newline at end of file diff --git a/src/kibana/apps/discover/styles/main.css b/src/kibana/apps/discover/styles/main.css deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/src/kibana/apps/discover/styles/main.html b/src/kibana/apps/discover/styles/main.html deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/src/kibana/apps/discover/styles/main.less b/src/kibana/apps/discover/styles/main.less deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/src/kibana/controllers/kibana.js b/src/kibana/controllers/kibana.js index 69d5ea43edf25..4a5ace67ffcc6 100644 --- a/src/kibana/controllers/kibana.js +++ b/src/kibana/controllers/kibana.js @@ -9,15 +9,11 @@ define(function (require) { angular .module('kibana/controllers') .controller('kibana', function ($scope, courier, configFile) { - setTimeout(function () { - courier.start(); - }, 15); - $scope.apps = configFile.apps; $scope.activeApp = ''; - $scope.$on('$routeChangeSuccess', function () { - if (courier.running()) courier.fetch(); + $scope.$on('application.load', function () { + courier.start(); }); }); }); \ No newline at end of file diff --git a/src/kibana/directives/table.js b/src/kibana/directives/table.js index 91590d5727153..4e54b0d0b1f23 100644 --- a/src/kibana/directives/table.js +++ b/src/kibana/directives/table.js @@ -14,12 +14,6 @@ define(function (require) { * * ``` */ - - var defaults = { - columns: [], - rows: [] - }; - module.directive('kbnTable', function () { return { restrict: 'E', @@ -28,23 +22,28 @@ define(function (require) { columns: '=', rows: '=' }, - controller: function ($scope) { - _.defaults($scope, defaults); + link: function (scope, element, attrs) { + scope.$watch('rows', render); + scope.$watch('columns', render); + + function render() { + var $body = element.find('tbody').empty(); + + if (!scope.rows || scope.rows.length === 0) return; + if (!scope.columns || scope.columns.length === 0) return; + + _.each(scope.rows, function (row) { + var tr = document.createElement('tr'); + + _.each(scope.columns, function (name) { + var td = document.createElement('td'); + td.innerText = row._source[name] || row[name] || ''; + tr.appendChild(td); + }); - $scope.makeRowHtml = function (row) { - var html = ''; - _.each($scope.columns, function (col) { - html += ''; - if (row[col] !== void 0) { - html += row[col]; - } else { - html += row._source[col]; - } - html += ''; + $body.append(tr); }); - html += ''; - return html; - }; + } } }; }); diff --git a/src/kibana/index.js b/src/kibana/index.js index 0e3a7172a82c5..d8d72525a76f5 100644 --- a/src/kibana/index.js +++ b/src/kibana/index.js @@ -29,8 +29,9 @@ define(function (require) { return 'app/' + app.id; })); + // create empty modules for all of the kibana and app modules requiredAgularModules.forEach(function (name) { - if (name.indexOf('kibana/') === 0) angular.module(name, []); + if (/^(kibana|app)\//.test(name)) angular.module(name, []); }); kibana.requires = requiredAgularModules; diff --git a/src/kibana/partials/table.html b/src/kibana/partials/table.html index 44cb3ef3692c1..00350829ef0eb 100644 --- a/src/kibana/partials/table.html +++ b/src/kibana/partials/table.html @@ -1,12 +1,6 @@ - + - - - - - +
{{col}}{{name}}
- {{row._source[col] || row[col]}} -
\ No newline at end of file diff --git a/src/kibana/services/courier.js b/src/kibana/services/courier.js index 027cf57ce653e..d79d511de919f 100644 --- a/src/kibana/services/courier.js +++ b/src/kibana/services/courier.js @@ -1,6 +1,7 @@ define(function (require) { var angular = require('angular'); var Courier = require('courier/courier'); + var DataSource = require('courier/data_source/data_source'); var DocSource = require('courier/data_source/doc'); var errors = require('courier/errors'); var configFile = require('../../config'); @@ -13,6 +14,10 @@ define(function (require) { .service('courier', function (es, $rootScope, promises) { if (courier) return courier; + promises.playNice(DataSource.prototype, [ + 'getFields' + ]); + promises.playNice(DocSource.prototype, [ 'doUpdate', 'doIndex' diff --git a/src/kibana/services/saved_searches.js b/src/kibana/services/saved_searches.js new file mode 100644 index 0000000000000..647c987b52a53 --- /dev/null +++ b/src/kibana/services/saved_searches.js @@ -0,0 +1,43 @@ +define(function (require) { + + var module = require('angular').module('kibana/services'); + + module.service('savedSearches', function (courier, configFile, $q) { + this.get = function (id) { + var docLoaded = id ? false : true; + var doc = courier.createSource('doc') + .index(configFile.kibanaIndex) + .type('saved_searches') + .id(id) + .on('results', function (doc) { + search.set(doc._source.state); + + // set the + id = doc._id; + if (!docLoaded) { + docLoaded = true; + search.enable(); + } + }); + + var search = courier.createSource('search'); + search.save = function () { + var defer = $q.defer(); + + doc.doIndex({ + state: search.toJSON() + }, function (err, id) { + if (err) return defer.reject(err); + defer.resolve(); + }); + + return defer.promise; + }; + + if (!docLoaded) search.disableFetch(); + return search; + }; + + this.create = this.get; + }); +}); \ No newline at end of file diff --git a/src/kibana/styles/_bootstrap.less b/src/kibana/styles/_bootstrap.less index 64120c7aac7b5..74b94c1ceed3d 100644 --- a/src/kibana/styles/_bootstrap.less +++ b/src/kibana/styles/_bootstrap.less @@ -1,55 +1,54 @@ -// Core variables and mixins -@import "../../bower_components/bootstrap/less/variables.less"; - -@icon-font-path: "../../bower_components/bootstrap/fonts/"; +@bs-less-dir: "../../bower_components/bootstrap/less"; -@import "../../bower_components/bootstrap/less/mixins.less"; +// Core variables and mixins +@import "@{bs-less-dir}/variables.less"; +@import "@{bs-less-dir}/mixins.less"; // Reset -@import "../../bower_components/bootstrap/less/normalize.less"; -@import "../../bower_components/bootstrap/less/print.less"; +@import "@{bs-less-dir}/normalize.less"; +@import "@{bs-less-dir}/print.less"; // Core CSS -@import "../../bower_components/bootstrap/less/scaffolding.less"; -@import "../../bower_components/bootstrap/less/type.less"; -@import "../../bower_components/bootstrap/less/code.less"; -@import "../../bower_components/bootstrap/less/grid.less"; -@import "../../bower_components/bootstrap/less/tables.less"; -@import "../../bower_components/bootstrap/less/forms.less"; -@import "../../bower_components/bootstrap/less/buttons.less"; +@import "@{bs-less-dir}/scaffolding.less"; +@import "@{bs-less-dir}/type.less"; +@import "@{bs-less-dir}/code.less"; +@import "@{bs-less-dir}/grid.less"; +@import "@{bs-less-dir}/tables.less"; +@import "@{bs-less-dir}/forms.less"; +@import "@{bs-less-dir}/buttons.less"; // Components -@import "../../bower_components/bootstrap/less/component-animations.less"; -@import "../../bower_components/bootstrap/less/glyphicons.less"; -@import "../../bower_components/bootstrap/less/dropdowns.less"; -@import "../../bower_components/bootstrap/less/button-groups.less"; -@import "../../bower_components/bootstrap/less/input-groups.less"; -@import "../../bower_components/bootstrap/less/navs.less"; -@import "../../bower_components/bootstrap/less/navbar.less"; -@import "../../bower_components/bootstrap/less/breadcrumbs.less"; -@import "../../bower_components/bootstrap/less/pagination.less"; -@import "../../bower_components/bootstrap/less/pager.less"; -@import "../../bower_components/bootstrap/less/labels.less"; -@import "../../bower_components/bootstrap/less/badges.less"; -@import "../../bower_components/bootstrap/less/jumbotron.less"; -@import "../../bower_components/bootstrap/less/thumbnails.less"; -@import "../../bower_components/bootstrap/less/alerts.less"; -@import "../../bower_components/bootstrap/less/progress-bars.less"; -@import "../../bower_components/bootstrap/less/media.less"; -@import "../../bower_components/bootstrap/less/list-group.less"; -@import "../../bower_components/bootstrap/less/panels.less"; -@import "../../bower_components/bootstrap/less/wells.less"; -@import "../../bower_components/bootstrap/less/close.less"; +@import "@{bs-less-dir}/component-animations.less"; +// @import "@{bs-less-dir}/glyphicons.less"; +@import "@{bs-less-dir}/dropdowns.less"; +@import "@{bs-less-dir}/button-groups.less"; +@import "@{bs-less-dir}/input-groups.less"; +@import "@{bs-less-dir}/navs.less"; +@import "@{bs-less-dir}/navbar.less"; +@import "@{bs-less-dir}/breadcrumbs.less"; +@import "@{bs-less-dir}/pagination.less"; +@import "@{bs-less-dir}/pager.less"; +@import "@{bs-less-dir}/labels.less"; +@import "@{bs-less-dir}/badges.less"; +@import "@{bs-less-dir}/jumbotron.less"; +@import "@{bs-less-dir}/thumbnails.less"; +@import "@{bs-less-dir}/alerts.less"; +@import "@{bs-less-dir}/progress-bars.less"; +@import "@{bs-less-dir}/media.less"; +@import "@{bs-less-dir}/list-group.less"; +@import "@{bs-less-dir}/panels.less"; +@import "@{bs-less-dir}/wells.less"; +@import "@{bs-less-dir}/close.less"; // Components w/ JavaScript -@import "../../bower_components/bootstrap/less/modals.less"; -@import "../../bower_components/bootstrap/less/tooltip.less"; -@import "../../bower_components/bootstrap/less/popovers.less"; -@import "../../bower_components/bootstrap/less/carousel.less"; +@import "@{bs-less-dir}/modals.less"; +@import "@{bs-less-dir}/tooltip.less"; +@import "@{bs-less-dir}/popovers.less"; +@import "@{bs-less-dir}/carousel.less"; // Utility classes -@import "../../bower_components/bootstrap/less/utilities.less"; -@import "../../bower_components/bootstrap/less/responsive-utilities.less"; +@import "@{bs-less-dir}/utilities.less"; +@import "@{bs-less-dir}/responsive-utilities.less"; // automatically include the theme file -@import "../../bower_components/bootstrap/less/theme.less"; \ No newline at end of file +@import "@{bs-less-dir}/theme.less"; \ No newline at end of file diff --git a/src/kibana/styles/main.css b/src/kibana/styles/main.css index 4ee818809ed0d..274d19b9d8271 100644 --- a/src/kibana/styles/main.css +++ b/src/kibana/styles/main.css @@ -1,3 +1,1341 @@ +/*! + * Font Awesome 4.0.3 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('../../bower_components/font-awesome/fonts/fontawesome-webfont.eot?v=4.0.3'); + src: url('../../bower_components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.0.3') format('embedded-opentype'), url('../../bower_components/font-awesome/fonts/fontawesome-webfont.woff?v=4.0.3') format('woff'), url('../../bower_components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.0.3') format('truetype'), url('../../bower_components/font-awesome/fonts/fontawesome-webfont.svg?v=4.0.3#fontawesomeregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font-family: FontAwesome; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +/* 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: spin 2s infinite linear; + -moz-animation: spin 2s infinite linear; + -o-animation: spin 2s infinite linear; + animation: spin 2s infinite linear; +} +@-moz-keyframes spin { + 0% { + -moz-transform: rotate(0deg); + } + 100% { + -moz-transform: rotate(359deg); + } +} +@-webkit-keyframes spin { + 0% { + -webkit-transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + } +} +@-o-keyframes spin { + 0% { + -o-transform: rotate(0deg); + } + 100% { + -o-transform: rotate(359deg); + } +} +@-ms-keyframes spin { + 0% { + -ms-transform: rotate(0deg); + } + 100% { + -ms-transform: rotate(359deg); + } +} +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(359deg); + } +} +.fa-rotate-90 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -ms-transform: rotate(90deg); + -o-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -ms-transform: rotate(270deg); + -o-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); + -webkit-transform: scale(-1, 1); + -moz-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + -o-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); + -moz-transform: scale(1, -1); + -ms-transform: scale(1, -1); + -o-transform: scale(1, -1); + transform: scale(1, -1); +} +.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-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-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 { + 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: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-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-asc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-desc: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-reply-all:before { + content: "\f122"; +} +.fa-mail-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 { + 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"; +} /*! normalize.css v3.0.0 | MIT License | git.io/normalize */ html { font-family: sans-serif; @@ -2365,622 +3703,6 @@ input[type="button"].btn-block { -webkit-transition: height 0.35s ease; transition: height 0.35s ease; } -@font-face { - font-family: 'Glyphicons Halflings'; - src: url('../../bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot'); - src: url('../../bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../../bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../../bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../../bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); -} -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} -.glyphicon-asterisk:before { - content: "\2a"; -} -.glyphicon-plus:before { - content: "\2b"; -} -.glyphicon-euro:before { - content: "\20ac"; -} -.glyphicon-minus:before { - content: "\2212"; -} -.glyphicon-cloud:before { - content: "\2601"; -} -.glyphicon-envelope:before { - content: "\2709"; -} -.glyphicon-pencil:before { - content: "\270f"; -} -.glyphicon-glass:before { - content: "\e001"; -} -.glyphicon-music:before { - content: "\e002"; -} -.glyphicon-search:before { - content: "\e003"; -} -.glyphicon-heart:before { - content: "\e005"; -} -.glyphicon-star:before { - content: "\e006"; -} -.glyphicon-star-empty:before { - content: "\e007"; -} -.glyphicon-user:before { - content: "\e008"; -} -.glyphicon-film:before { - content: "\e009"; -} -.glyphicon-th-large:before { - content: "\e010"; -} -.glyphicon-th:before { - content: "\e011"; -} -.glyphicon-th-list:before { - content: "\e012"; -} -.glyphicon-ok:before { - content: "\e013"; -} -.glyphicon-remove:before { - content: "\e014"; -} -.glyphicon-zoom-in:before { - content: "\e015"; -} -.glyphicon-zoom-out:before { - content: "\e016"; -} -.glyphicon-off:before { - content: "\e017"; -} -.glyphicon-signal:before { - content: "\e018"; -} -.glyphicon-cog:before { - content: "\e019"; -} -.glyphicon-trash:before { - content: "\e020"; -} -.glyphicon-home:before { - content: "\e021"; -} -.glyphicon-file:before { - content: "\e022"; -} -.glyphicon-time:before { - content: "\e023"; -} -.glyphicon-road:before { - content: "\e024"; -} -.glyphicon-download-alt:before { - content: "\e025"; -} -.glyphicon-download:before { - content: "\e026"; -} -.glyphicon-upload:before { - content: "\e027"; -} -.glyphicon-inbox:before { - content: "\e028"; -} -.glyphicon-play-circle:before { - content: "\e029"; -} -.glyphicon-repeat:before { - content: "\e030"; -} -.glyphicon-refresh:before { - content: "\e031"; -} -.glyphicon-list-alt:before { - content: "\e032"; -} -.glyphicon-lock:before { - content: "\e033"; -} -.glyphicon-flag:before { - content: "\e034"; -} -.glyphicon-headphones:before { - content: "\e035"; -} -.glyphicon-volume-off:before { - content: "\e036"; -} -.glyphicon-volume-down:before { - content: "\e037"; -} -.glyphicon-volume-up:before { - content: "\e038"; -} -.glyphicon-qrcode:before { - content: "\e039"; -} -.glyphicon-barcode:before { - content: "\e040"; -} -.glyphicon-tag:before { - content: "\e041"; -} -.glyphicon-tags:before { - content: "\e042"; -} -.glyphicon-book:before { - content: "\e043"; -} -.glyphicon-bookmark:before { - content: "\e044"; -} -.glyphicon-print:before { - content: "\e045"; -} -.glyphicon-camera:before { - content: "\e046"; -} -.glyphicon-font:before { - content: "\e047"; -} -.glyphicon-bold:before { - content: "\e048"; -} -.glyphicon-italic:before { - content: "\e049"; -} -.glyphicon-text-height:before { - content: "\e050"; -} -.glyphicon-text-width:before { - content: "\e051"; -} -.glyphicon-align-left:before { - content: "\e052"; -} -.glyphicon-align-center:before { - content: "\e053"; -} -.glyphicon-align-right:before { - content: "\e054"; -} -.glyphicon-align-justify:before { - content: "\e055"; -} -.glyphicon-list:before { - content: "\e056"; -} -.glyphicon-indent-left:before { - content: "\e057"; -} -.glyphicon-indent-right:before { - content: "\e058"; -} -.glyphicon-facetime-video:before { - content: "\e059"; -} -.glyphicon-picture:before { - content: "\e060"; -} -.glyphicon-map-marker:before { - content: "\e062"; -} -.glyphicon-adjust:before { - content: "\e063"; -} -.glyphicon-tint:before { - content: "\e064"; -} -.glyphicon-edit:before { - content: "\e065"; -} -.glyphicon-share:before { - content: "\e066"; -} -.glyphicon-check:before { - content: "\e067"; -} -.glyphicon-move:before { - content: "\e068"; -} -.glyphicon-step-backward:before { - content: "\e069"; -} -.glyphicon-fast-backward:before { - content: "\e070"; -} -.glyphicon-backward:before { - content: "\e071"; -} -.glyphicon-play:before { - content: "\e072"; -} -.glyphicon-pause:before { - content: "\e073"; -} -.glyphicon-stop:before { - content: "\e074"; -} -.glyphicon-forward:before { - content: "\e075"; -} -.glyphicon-fast-forward:before { - content: "\e076"; -} -.glyphicon-step-forward:before { - content: "\e077"; -} -.glyphicon-eject:before { - content: "\e078"; -} -.glyphicon-chevron-left:before { - content: "\e079"; -} -.glyphicon-chevron-right:before { - content: "\e080"; -} -.glyphicon-plus-sign:before { - content: "\e081"; -} -.glyphicon-minus-sign:before { - content: "\e082"; -} -.glyphicon-remove-sign:before { - content: "\e083"; -} -.glyphicon-ok-sign:before { - content: "\e084"; -} -.glyphicon-question-sign:before { - content: "\e085"; -} -.glyphicon-info-sign:before { - content: "\e086"; -} -.glyphicon-screenshot:before { - content: "\e087"; -} -.glyphicon-remove-circle:before { - content: "\e088"; -} -.glyphicon-ok-circle:before { - content: "\e089"; -} -.glyphicon-ban-circle:before { - content: "\e090"; -} -.glyphicon-arrow-left:before { - content: "\e091"; -} -.glyphicon-arrow-right:before { - content: "\e092"; -} -.glyphicon-arrow-up:before { - content: "\e093"; -} -.glyphicon-arrow-down:before { - content: "\e094"; -} -.glyphicon-share-alt:before { - content: "\e095"; -} -.glyphicon-resize-full:before { - content: "\e096"; -} -.glyphicon-resize-small:before { - content: "\e097"; -} -.glyphicon-exclamation-sign:before { - content: "\e101"; -} -.glyphicon-gift:before { - content: "\e102"; -} -.glyphicon-leaf:before { - content: "\e103"; -} -.glyphicon-fire:before { - content: "\e104"; -} -.glyphicon-eye-open:before { - content: "\e105"; -} -.glyphicon-eye-close:before { - content: "\e106"; -} -.glyphicon-warning-sign:before { - content: "\e107"; -} -.glyphicon-plane:before { - content: "\e108"; -} -.glyphicon-calendar:before { - content: "\e109"; -} -.glyphicon-random:before { - content: "\e110"; -} -.glyphicon-comment:before { - content: "\e111"; -} -.glyphicon-magnet:before { - content: "\e112"; -} -.glyphicon-chevron-up:before { - content: "\e113"; -} -.glyphicon-chevron-down:before { - content: "\e114"; -} -.glyphicon-retweet:before { - content: "\e115"; -} -.glyphicon-shopping-cart:before { - content: "\e116"; -} -.glyphicon-folder-close:before { - content: "\e117"; -} -.glyphicon-folder-open:before { - content: "\e118"; -} -.glyphicon-resize-vertical:before { - content: "\e119"; -} -.glyphicon-resize-horizontal:before { - content: "\e120"; -} -.glyphicon-hdd:before { - content: "\e121"; -} -.glyphicon-bullhorn:before { - content: "\e122"; -} -.glyphicon-bell:before { - content: "\e123"; -} -.glyphicon-certificate:before { - content: "\e124"; -} -.glyphicon-thumbs-up:before { - content: "\e125"; -} -.glyphicon-thumbs-down:before { - content: "\e126"; -} -.glyphicon-hand-right:before { - content: "\e127"; -} -.glyphicon-hand-left:before { - content: "\e128"; -} -.glyphicon-hand-up:before { - content: "\e129"; -} -.glyphicon-hand-down:before { - content: "\e130"; -} -.glyphicon-circle-arrow-right:before { - content: "\e131"; -} -.glyphicon-circle-arrow-left:before { - content: "\e132"; -} -.glyphicon-circle-arrow-up:before { - content: "\e133"; -} -.glyphicon-circle-arrow-down:before { - content: "\e134"; -} -.glyphicon-globe:before { - content: "\e135"; -} -.glyphicon-wrench:before { - content: "\e136"; -} -.glyphicon-tasks:before { - content: "\e137"; -} -.glyphicon-filter:before { - content: "\e138"; -} -.glyphicon-briefcase:before { - content: "\e139"; -} -.glyphicon-fullscreen:before { - content: "\e140"; -} -.glyphicon-dashboard:before { - content: "\e141"; -} -.glyphicon-paperclip:before { - content: "\e142"; -} -.glyphicon-heart-empty:before { - content: "\e143"; -} -.glyphicon-link:before { - content: "\e144"; -} -.glyphicon-phone:before { - content: "\e145"; -} -.glyphicon-pushpin:before { - content: "\e146"; -} -.glyphicon-usd:before { - content: "\e148"; -} -.glyphicon-gbp:before { - content: "\e149"; -} -.glyphicon-sort:before { - content: "\e150"; -} -.glyphicon-sort-by-alphabet:before { - content: "\e151"; -} -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; -} -.glyphicon-sort-by-order:before { - content: "\e153"; -} -.glyphicon-sort-by-order-alt:before { - content: "\e154"; -} -.glyphicon-sort-by-attributes:before { - content: "\e155"; -} -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; -} -.glyphicon-unchecked:before { - content: "\e157"; -} -.glyphicon-expand:before { - content: "\e158"; -} -.glyphicon-collapse-down:before { - content: "\e159"; -} -.glyphicon-collapse-up:before { - content: "\e160"; -} -.glyphicon-log-in:before { - content: "\e161"; -} -.glyphicon-flash:before { - content: "\e162"; -} -.glyphicon-log-out:before { - content: "\e163"; -} -.glyphicon-new-window:before { - content: "\e164"; -} -.glyphicon-record:before { - content: "\e165"; -} -.glyphicon-save:before { - content: "\e166"; -} -.glyphicon-open:before { - content: "\e167"; -} -.glyphicon-saved:before { - content: "\e168"; -} -.glyphicon-import:before { - content: "\e169"; -} -.glyphicon-export:before { - content: "\e170"; -} -.glyphicon-send:before { - content: "\e171"; -} -.glyphicon-floppy-disk:before { - content: "\e172"; -} -.glyphicon-floppy-saved:before { - content: "\e173"; -} -.glyphicon-floppy-remove:before { - content: "\e174"; -} -.glyphicon-floppy-save:before { - content: "\e175"; -} -.glyphicon-floppy-open:before { - content: "\e176"; -} -.glyphicon-credit-card:before { - content: "\e177"; -} -.glyphicon-transfer:before { - content: "\e178"; -} -.glyphicon-cutlery:before { - content: "\e179"; -} -.glyphicon-header:before { - content: "\e180"; -} -.glyphicon-compressed:before { - content: "\e181"; -} -.glyphicon-earphone:before { - content: "\e182"; -} -.glyphicon-phone-alt:before { - content: "\e183"; -} -.glyphicon-tower:before { - content: "\e184"; -} -.glyphicon-stats:before { - content: "\e185"; -} -.glyphicon-sd-video:before { - content: "\e186"; -} -.glyphicon-hd-video:before { - content: "\e187"; -} -.glyphicon-subtitles:before { - content: "\e188"; -} -.glyphicon-sound-stereo:before { - content: "\e189"; -} -.glyphicon-sound-dolby:before { - content: "\e190"; -} -.glyphicon-sound-5-1:before { - content: "\e191"; -} -.glyphicon-sound-6-1:before { - content: "\e192"; -} -.glyphicon-sound-7-1:before { - content: "\e193"; -} -.glyphicon-copyright-mark:before { - content: "\e194"; -} -.glyphicon-registration-mark:before { - content: "\e195"; -} -.glyphicon-cloud-download:before { - content: "\e197"; -} -.glyphicon-cloud-upload:before { - content: "\e198"; -} -.glyphicon-tree-conifer:before { - content: "\e199"; -} -.glyphicon-tree-deciduous:before { - content: "\e200"; -} .caret { display: inline-block; width: 0; @@ -3820,9 +4542,11 @@ select[multiple].input-group-sm > .input-group-btn > .btn { } @media (min-width: 768px) { .navbar-left { + float: left; float: left !important; } .navbar-right { + float: right; float: right !important; } } @@ -6134,3 +6858,6 @@ body div.content { .navbar { margin-bottom: 0px!important; } +[ng-click] { + cursor: pointer; +} diff --git a/src/kibana/styles/main.less b/src/kibana/styles/main.less index 237f3bff5a3b9..a446d16312801 100644 --- a/src/kibana/styles/main.less +++ b/src/kibana/styles/main.less @@ -1,5 +1,10 @@ +@import "../../bower_components/font-awesome/less/font-awesome.less"; + +// custom bootstrap build @import "./_bootstrap.less"; +@fa-font-path: "../../bower_components/font-awesome/fonts"; + body { margin: 0px; } @@ -30,4 +35,8 @@ body div.content { .navbar { margin-bottom: 0px!important; +} + +[ng-click] { + cursor: pointer; } \ No newline at end of file