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 @@
+
\ 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