diff --git a/src/plugins/kibana/public/discover/index.js b/src/plugins/kibana/public/discover/index.js
index 21b2e6a082945..f3a72e9f09c4e 100644
--- a/src/plugins/kibana/public/discover/index.js
+++ b/src/plugins/kibana/public/discover/index.js
@@ -6,6 +6,7 @@ define(function (require, module, exports) {
require('plugins/kibana/discover/components/field_chooser/field_chooser');
require('plugins/kibana/discover/controllers/discover');
require('plugins/kibana/discover/styles/main.less');
+ require('ui/taskbar');
// preload
require('ui/doc_table/components/table_row');
diff --git a/src/ui/public/ConfigTemplate.js b/src/ui/public/ConfigTemplate.js
index 3b8307ab8481a..b1b8829012c86 100644
--- a/src/ui/public/ConfigTemplate.js
+++ b/src/ui/public/ConfigTemplate.js
@@ -29,6 +29,10 @@ define(function (require) {
template.toString = function () {
return template.current;
};
+
+ template.add = function (name, template) {
+ templates[name] = template;
+ };
}
return ConfigTemplate;
diff --git a/src/ui/public/autoload/modules.js b/src/ui/public/autoload/modules.js
index 0dd221c552451..1fca071de7e50 100644
--- a/src/ui/public/autoload/modules.js
+++ b/src/ui/public/autoload/modules.js
@@ -1,6 +1,5 @@
require('angular');
require('ui/chrome');
-require('ui/chrome/context');
require('ui/bind');
require('ui/bound_to_config_obj');
require('ui/config');
diff --git a/src/ui/public/autoload/styles.js b/src/ui/public/autoload/styles.js
index 040094a9ce921..caca9e5c6fb9d 100644
--- a/src/ui/public/autoload/styles.js
+++ b/src/ui/public/autoload/styles.js
@@ -1,2 +1,3 @@
const context = require.context('../styles', false, /[\/\\](?!mixins|variables|_|\.)[^\/\\]+\.less/);
context.keys().forEach(key => context(key));
+require('ui/styles/forward/main.less');
\ No newline at end of file
diff --git a/src/ui/public/chrome/context.js b/src/ui/public/chrome/context.js
deleted file mode 100644
index 2202f7900311d..0000000000000
--- a/src/ui/public/chrome/context.js
+++ /dev/null
@@ -1,36 +0,0 @@
-define(function (require) {
- var _ = require('lodash');
- var ConfigTemplate = require('ui/ConfigTemplate');
-
- require('ui/modules')
- .get('kibana')
- // TODO: all of this really belongs in the timepicker
- .directive('chromeContext', function (timefilter, globalState) {
-
- var listenForUpdates = _.once(function ($scope) {
- $scope.$listen(timefilter, 'update', function (newVal, oldVal) {
- globalState.time = _.clone(timefilter.time);
- globalState.refreshInterval = _.clone(timefilter.refreshInterval);
- globalState.save();
- });
- });
-
- return {
- link: function ($scope) {
- listenForUpdates($scope);
-
- // chrome is responsible for timepicker ui and state transfer...
- $scope.timefilter = timefilter;
- $scope.pickerTemplate = new ConfigTemplate({
- filter: require('ui/chrome/config/filter.html'),
- interval: require('ui/chrome/config/interval.html')
- });
-
- $scope.toggleRefresh = function () {
- timefilter.refreshInterval.pause = !timefilter.refreshInterval.pause;
- };
- }
- };
- });
-
-});
diff --git a/src/ui/public/chrome/directives/append_nav_controls.js b/src/ui/public/chrome/directives/append_nav_controls.js
deleted file mode 100644
index 1433ec0654428..0000000000000
--- a/src/ui/public/chrome/directives/append_nav_controls.js
+++ /dev/null
@@ -1,28 +0,0 @@
-import $ from 'jquery';
-
-import chromeNavControlsRegistry from 'ui/registry/chrome_nav_controls';
-import UiModules from 'ui/modules';
-
-export default function (chrome, internals) {
-
- UiModules
- .get('kibana')
- .directive('kbnChromeAppendNavControls', function (Private) {
- return {
- template: function ($element) {
- const parts = [$element.html()];
- const controls = Private(chromeNavControlsRegistry);
-
- for (const control of controls.inOrder) {
- parts.unshift(
- ``,
- control.template
- );
- }
-
- return parts.join('\n');
- }
- };
- });
-
-}
diff --git a/src/ui/public/chrome/directives/index.js b/src/ui/public/chrome/directives/index.js
index 530646292d388..38b17a098daff 100644
--- a/src/ui/public/chrome/directives/index.js
+++ b/src/ui/public/chrome/directives/index.js
@@ -2,9 +2,7 @@ import 'ui/directives/config';
import './app_switcher';
import kbnChromeProv from './kbn_chrome';
-import kbnChromeNavControlsProv from './append_nav_controls';
export default function (chrome, internals) {
kbnChromeProv(chrome, internals);
- kbnChromeNavControlsProv(chrome, internals);
}
diff --git a/src/ui/public/directives/config.js b/src/ui/public/directives/config.js
index a8f69b28ca5e7..f15c24438bca0 100644
--- a/src/ui/public/directives/config.js
+++ b/src/ui/public/directives/config.js
@@ -21,15 +21,19 @@ define(function (require) {
restrict: 'E',
scope: {
configTemplate: '=',
- configClose: '=',
+ configClose: '&',
configSubmit: '=',
- configObject: '='
+ configObject: '=',
+ configName: '@?',
},
link: function ($scope, element, attr) {
var tmpScope = $scope.$new();
- $scope.$watch('configObject', function (newVal) {
- $scope[attr.configObject] = $scope.configObject;
+ $scope.$watchMulti([
+ 'configObject',
+ 'configName'
+ ], function () {
+ $scope[$scope.configName || attr.configObject] = $scope.configObject;
});
var wrapTmpl = function (tmpl) {
@@ -58,7 +62,7 @@ define(function (require) {
'
' +
wrapTmpl(tmpl) +
'
' +
- ' ' +
+ ' ' +
'
' +
'
' +
''
diff --git a/src/ui/public/partials/nav_config.html b/src/ui/public/partials/nav_config.html
deleted file mode 100644
index f57b0dcb7ef19..0000000000000
--- a/src/ui/public/partials/nav_config.html
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/src/ui/public/registry/chrome_nav_controls.js b/src/ui/public/registry/chrome_nav_controls.js
deleted file mode 100644
index 77093938ac804..0000000000000
--- a/src/ui/public/registry/chrome_nav_controls.js
+++ /dev/null
@@ -1,6 +0,0 @@
-define(function (require) {
- return require('ui/registry/_registry')({
- name: 'chromeNavControls',
- order: ['order']
- });
-});
diff --git a/src/ui/public/styles/fonts.less b/src/ui/public/styles/fonts.less
new file mode 100644
index 0000000000000..d0c93a26a6595
--- /dev/null
+++ b/src/ui/public/styles/fonts.less
@@ -0,0 +1,100 @@
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 300;
+ src: local('Open Sans Light'), local('OpenSans-Light'),
+ url('fonts/open_sans/open_sans_v13_latin_300.woff2') format('woff2'),
+ url('fonts/open_sans/open_sans_v13_latin_300.woff') format('woff'),
+ url('fonts/open_sans/open_sans_v13_latin_300.ttf') format('truetype'),
+ url('fonts/open_sans/open_sans_v13_latin_300.svg#OpenSans') format('svg');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 300;
+ src: local('Open Sans Light Italic'), local('OpenSansLight-Italic'),
+ url('fonts/open_sans/open_sans_v13_latin_300italic.woff2') format('woff2'),
+ url('fonts/open_sans/open_sans_v13_latin_300italic.woff') format('woff'),
+ url('fonts/open_sans/open_sans_v13_latin_300italic.ttf') format('truetype'),
+ url('fonts/open_sans/open_sans_v13_latin_300italic.svg#OpenSans') format('svg');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 400;
+ src: local('Open Sans'), local('OpenSans'),
+ url('fonts/open_sans/open_sans_v13_latin_regular.woff2') format('woff2'),
+ url('fonts/open_sans/open_sans_v13_latin_regular.woff') format('woff'),
+ url('fonts/open_sans/open_sans_v13_latin_regular.ttf') format('truetype'),
+ url('fonts/open_sans/open_sans_v13_latin_regular.svg#OpenSans') format('svg');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 400;
+ src: local('Open Sans Italic'), local('OpenSans-Italic'),
+ url('fonts/open_sans/open_sans_v13_latin_italic.woff2') format('woff2'),
+ url('fonts/open_sans/open_sans_v13_latin_italic.woff') format('woff'),
+ url('fonts/open_sans/open_sans_v13_latin_italic.ttf') format('truetype'),
+ url('fonts/open_sans/open_sans_v13_latin_italic.svg#OpenSans') format('svg');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 600;
+ src: local('Open Sans Semibold'), local('OpenSans-Semibold'),
+ url('fonts/open_sans/open_sans_v13_latin_600.woff2') format('woff2'),
+ url('fonts/open_sans/open_sans_v13_latin_600.woff') format('woff'),
+ url('fonts/open_sans/open_sans_v13_latin_600.ttf') format('truetype'),
+ url('fonts/open_sans/open_sans_v13_latin_600.svg#OpenSans') format('svg');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 600;
+ src: local('Open Sans Semibold Italic'), local('OpenSans-SemiboldItalic'),
+ url('fonts/open_sans/open_sans_v13_latin_600italic.woff2') format('woff2'),
+ url('fonts/open_sans/open_sans_v13_latin_600italic.woff') format('woff'),
+ url('fonts/open_sans/open_sans_v13_latin_600italic.ttf') format('truetype'),
+ url('fonts/open_sans/open_sans_v13_latin_600italic.svg#OpenSans') format('svg');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 700;
+ src: local('Open Sans Bold'), local('OpenSans-Bold'),
+ url('fonts/open_sans/open_sans_v13_latin_700.woff2') format('woff2'),
+ url('fonts/open_sans/open_sans_v13_latin_700.woff') format('woff'),
+ url('fonts/open_sans/open_sans_v13_latin_700.ttf') format('truetype'),
+ url('fonts/open_sans/open_sans_v13_latin_700.svg#OpenSans') format('svg');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 700;
+ src: local('Open Sans Bold Italic'), local('OpenSans-BoldItalic'),
+ url('fonts/open_sans/open_sans_v13_latin_700italic.woff2') format('woff2'),
+ url('fonts/open_sans/open_sans_v13_latin_700italic.woff') format('woff'),
+ url('fonts/open_sans/open_sans_v13_latin_700italic.ttf') format('truetype'),
+ url('fonts/open_sans/open_sans_v13_latin_700italic.svg#OpenSans') format('svg');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: normal;
+ font-weight: 800;
+ src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'),
+ url('fonts/open_sans/open_sans_v13_latin_800.woff2') format('woff2'),
+ url('fonts/open_sans/open_sans_v13_latin_800.woff') format('woff'),
+ url('fonts/open_sans/open_sans_v13_latin_800.ttf') format('truetype'),
+ url('fonts/open_sans/open_sans_v13_latin_800.svg#OpenSans') format('svg');
+}
+@font-face {
+ font-family: 'Open Sans';
+ font-style: italic;
+ font-weight: 800;
+ src: local('Open Sans Extrabold Italic'), local('OpenSans-ExtraboldItalic'),
+ url('fonts/open_sans/open_sans_v13_latin_800italic.woff2') format('woff2'),
+ url('fonts/open_sans/open_sans_v13_latin_800italic.woff') format('woff'),
+ url('fonts/open_sans/open_sans_v13_latin_800italic.ttf') format('truetype'),
+ url('fonts/open_sans/open_sans_v13_latin_800italic.svg#OpenSans') format('svg');
+}
diff --git a/src/ui/public/styles/fonts/open_sans/LICENSE.txt b/src/ui/public/styles/fonts/open_sans/LICENSE.txt
new file mode 100644
index 0000000000000..75b52484ea471
--- /dev/null
+++ b/src/ui/public/styles/fonts/open_sans/LICENSE.txt
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300.svg b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300.svg
new file mode 100644
index 0000000000000..851d83c7a7414
--- /dev/null
+++ b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300.svg
@@ -0,0 +1,1633 @@
+
+
+
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300.ttf b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300.ttf
new file mode 100644
index 0000000000000..d7d7cd1fcc97d
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300.ttf differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300.woff b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300.woff
new file mode 100644
index 0000000000000..905f3076b93c0
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300.woff differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300.woff2 b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300.woff2
new file mode 100644
index 0000000000000..96ae7edd3e4d4
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300.woff2 differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300italic.svg b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300italic.svg
new file mode 100644
index 0000000000000..23ee3fcfcee83
--- /dev/null
+++ b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300italic.svg
@@ -0,0 +1,1646 @@
+
+
+
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300italic.ttf b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300italic.ttf
new file mode 100644
index 0000000000000..716c390d8f955
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300italic.ttf differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300italic.woff b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300italic.woff
new file mode 100644
index 0000000000000..e7eeaf68017f4
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300italic.woff differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300italic.woff2 b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300italic.woff2
new file mode 100644
index 0000000000000..1fc7710a5f2d6
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_300italic.woff2 differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600.svg b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600.svg
new file mode 100644
index 0000000000000..7a3f2dd955eaa
--- /dev/null
+++ b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600.svg
@@ -0,0 +1,1637 @@
+
+
+
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600.ttf b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600.ttf
new file mode 100644
index 0000000000000..314e983a4bce3
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600.ttf differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600.woff b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600.woff
new file mode 100644
index 0000000000000..98aaad7ad9a8f
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600.woff differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600.woff2 b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600.woff2
new file mode 100644
index 0000000000000..8993a4de6b39e
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600.woff2 differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600italic.svg b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600italic.svg
new file mode 100644
index 0000000000000..6947249dc33ad
--- /dev/null
+++ b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600italic.svg
@@ -0,0 +1,1650 @@
+
+
+
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600italic.ttf b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600italic.ttf
new file mode 100644
index 0000000000000..ee892609576fb
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600italic.ttf differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600italic.woff b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600italic.woff
new file mode 100644
index 0000000000000..f8c76f089d005
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600italic.woff differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600italic.woff2 b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600italic.woff2
new file mode 100644
index 0000000000000..e251d03528229
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_600italic.woff2 differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700.svg b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700.svg
new file mode 100644
index 0000000000000..a294c817836b6
--- /dev/null
+++ b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700.svg
@@ -0,0 +1,1635 @@
+
+
+
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700.ttf b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700.ttf
new file mode 100644
index 0000000000000..974a7c5edd7f1
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700.ttf differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700.woff b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700.woff
new file mode 100644
index 0000000000000..18e610d6ba840
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700.woff differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700.woff2 b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700.woff2
new file mode 100644
index 0000000000000..be4c25b429923
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700.woff2 differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700italic.svg b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700italic.svg
new file mode 100644
index 0000000000000..99811541e41a9
--- /dev/null
+++ b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700italic.svg
@@ -0,0 +1,1643 @@
+
+
+
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700italic.ttf b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700italic.ttf
new file mode 100644
index 0000000000000..1e54a3172d1f6
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700italic.ttf differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700italic.woff b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700italic.woff
new file mode 100644
index 0000000000000..47294df9c6098
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700italic.woff differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700italic.woff2 b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700italic.woff2
new file mode 100644
index 0000000000000..28fe4b32b6141
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_700italic.woff2 differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800.svg b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800.svg
new file mode 100644
index 0000000000000..58ab915668f09
--- /dev/null
+++ b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800.svg
@@ -0,0 +1,1637 @@
+
+
+
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800.ttf b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800.ttf
new file mode 100644
index 0000000000000..569e03a84014d
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800.ttf differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800.woff b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800.woff
new file mode 100644
index 0000000000000..bcd539d94300b
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800.woff differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800.woff2 b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800.woff2
new file mode 100644
index 0000000000000..26791be2a27ff
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800.woff2 differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800italic.svg b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800italic.svg
new file mode 100644
index 0000000000000..180646c461d5b
--- /dev/null
+++ b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800italic.svg
@@ -0,0 +1,1643 @@
+
+
+
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800italic.ttf b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800italic.ttf
new file mode 100644
index 0000000000000..57e8b7d54ffc5
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800italic.ttf differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800italic.woff b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800italic.woff
new file mode 100644
index 0000000000000..78f5620ddacde
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800italic.woff differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800italic.woff2 b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800italic.woff2
new file mode 100644
index 0000000000000..09fdd250c2e47
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_800italic.woff2 differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_italic.svg b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_italic.svg
new file mode 100644
index 0000000000000..907fdbb199eec
--- /dev/null
+++ b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_italic.svg
@@ -0,0 +1,1650 @@
+
+
+
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_italic.ttf b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_italic.ttf
new file mode 100644
index 0000000000000..53dbf96f7cde8
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_italic.ttf differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_italic.woff b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_italic.woff
new file mode 100644
index 0000000000000..36a4ad33ef01f
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_italic.woff differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_italic.woff2 b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_italic.woff2
new file mode 100644
index 0000000000000..a739e6ab026cd
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_italic.woff2 differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_regular.svg b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_regular.svg
new file mode 100644
index 0000000000000..052c59fff03dc
--- /dev/null
+++ b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_regular.svg
@@ -0,0 +1,1637 @@
+
+
+
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_regular.ttf b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_regular.ttf
new file mode 100644
index 0000000000000..0dae9c3bbc0b5
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_regular.ttf differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_regular.woff b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_regular.woff
new file mode 100644
index 0000000000000..e096d04f82aaa
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_regular.woff differ
diff --git a/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_regular.woff2 b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_regular.woff2
new file mode 100644
index 0000000000000..5287058cf90dd
Binary files /dev/null and b/src/ui/public/styles/fonts/open_sans/open_sans_v13_latin_regular.woff2 differ
diff --git a/src/ui/public/styles/forward/bootstrap_overrides.less b/src/ui/public/styles/forward/bootstrap_overrides.less
new file mode 100644
index 0000000000000..924093d26c5c5
--- /dev/null
+++ b/src/ui/public/styles/forward/bootstrap_overrides.less
@@ -0,0 +1,3 @@
+.nav-pills > li {
+ .toggle-item(@color-gold);
+}
\ No newline at end of file
diff --git a/src/ui/public/styles/forward/kbn_taskbar.less b/src/ui/public/styles/forward/kbn_taskbar.less
new file mode 100644
index 0000000000000..211002b9ec341
--- /dev/null
+++ b/src/ui/public/styles/forward/kbn_taskbar.less
@@ -0,0 +1,128 @@
+kbn-taskbar {
+ background-color: @color-gray-bg;
+ font-size: 1.4rem;
+ font-weight: 600;
+
+ > .controls.primary {
+
+ .task-group:first-child {
+ margin-left: 10px;
+ }
+
+ button {
+ border-radius: 0;
+ padding: 5px 10px;
+ box-shadow: none;
+
+ &:focus,
+ &:hover {
+ outline: 0;
+ color: @color-gray-6;
+ }
+ }
+
+ }
+
+ // "Auto-refresh" & "Last 15 Minutes"
+ kbn-taskbar-config-toggle.active {
+ button {
+ background-color: @color-gray-bg-light;
+ }
+ }
+
+ kbn-taskbar-search {
+ padding: 10px;
+ padding-top: 0; // Reduce padding on top when config-open is not set (see below)
+ input.form-control {
+ border: none;
+ }
+
+ button[type="submit"] {
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ padding: 0 8px;
+ background-color: @color-gray-3;
+ color: #fff;
+ &:focus {
+ outline: 0;
+ background-color: @color-gray-4;
+ }
+ }
+
+ }
+
+ // Add padding-top to kbn-taskbar-search when config is open
+ &.config-open {
+ kbn-taskbar-search {
+ padding-top: 10px;
+ }
+ }
+
+}
+
+
+
+kbn-taskbar-config {
+
+ .config {
+ background-color: transparent;
+ box-shadow: none;
+ background-color: @color-gray-bg-light;
+
+ // There's more than one of these nested in this section
+ .container-fluid {
+ background-color: transparent;
+ padding: 0;
+ }
+
+ }
+
+ .config-close {
+ background-color: transparent;
+ box-shadow: none;
+ width: auto;
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ color: @color-gray-6;
+ padding: 20px 10px 8px 20px;
+ }
+
+ .kbn-timepicker .row {
+ margin: 0 auto;
+ margin-top: 1.5em;
+ max-width: 1200px;
+ }
+
+ .kbn-timepicker [kbn-time-input] {
+ text-align: center;
+ }
+
+ .kbn-timepicker-modes {
+ text-transform: capitalize;
+ }
+
+ .kbn-timepicker-section {
+ float: left;
+ width: 200px;
+ padding-right: 30px;
+
+ li {
+ margin-top: 2px; // only needed if we keep the border on hover effect
+ .toggle-item(@color-gold);
+ }
+ }
+
+ .kbn-refresh-section {
+ float: left;
+ padding: 0px 15px;
+ }
+
+ .kbn-timepicket-alert {
+ width: 100px;
+ }
+
+
+}
+
+
diff --git a/src/ui/public/styles/forward/main.less b/src/ui/public/styles/forward/main.less
new file mode 100644
index 0000000000000..38250a70a5b6c
--- /dev/null
+++ b/src/ui/public/styles/forward/main.less
@@ -0,0 +1,72 @@
+// Basic Colors
+@color-gold: #FBCE47;
+
+// Shades of Gray
+@color-gray-1: #F6F6F6;
+@color-gray-2: #E4E4E4;
+@color-gray-3: #BEBEBE;
+@color-gray-4: #9C9C9C;
+@color-gray-5: #5A5A5A;
+@color-gray-6: #2D2D2D;
+
+// Gray Context
+@color-gray-bg-light: @color-gray-1;
+@color-gray-bg: @color-gray-2;
+
+// Text
+@default-text-color: @color-gray-5;
+@anchor-color: #328CAA;
+
+
+.highlight-text {
+
+}
+
+
+.toggle-item(@color) {
+ display: block;
+ a {
+ display: block;
+ color: inherit;
+ padding: 3px 8px;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ &:hover {
+ background-color: transparent;
+ border: 1px solid @color;
+ }
+ }
+ &.active a {
+ color: inherit;
+ background-color: @color;
+ padding: 3px 10px;
+ }
+}
+
+
+
+// ID only exists to hook into for this CSS override project. Gives us
+// much higher chance of specificity so we don't have to use !important
+// too much
+#kbn-forward {
+
+ body {
+ color: @default-text-color;
+ }
+
+ // A new default style for anchors
+ a {
+ color: @anchor-color;
+ &:hover {
+ color: red; // temp until Jurgen gets a color
+ }
+ }
+
+
+
+
+ @import "./bootstrap_overrides";
+ @import "./kbn_taskbar";
+ @import "./timefilter";
+
+}
\ No newline at end of file
diff --git a/src/ui/public/styles/forward/timefilter.less b/src/ui/public/styles/forward/timefilter.less
new file mode 100644
index 0000000000000..d84171c86dd6f
--- /dev/null
+++ b/src/ui/public/styles/forward/timefilter.less
@@ -0,0 +1,4 @@
+kbn-timefilter-toggle {
+ display: flex;
+ flex-direction: row;
+}
diff --git a/src/ui/public/styles/theme.less b/src/ui/public/styles/theme.less
index 8eaf69075cb8d..3b2ff365f1c37 100644
--- a/src/ui/public/styles/theme.less
+++ b/src/ui/public/styles/theme.less
@@ -8,6 +8,7 @@
@import "~ui/styles/variables";
@import "~ui/styles/theme/bootstrap";
@import "~ui/styles/theme/font-awesome";
+@import "~ui/styles/fonts";
// Navbar =====================================================================
diff --git a/src/ui/public/styles/variables/bootstrap-mods.less b/src/ui/public/styles/variables/bootstrap-mods.less
index aed197898242b..65ab8822a9b76 100644
--- a/src/ui/public/styles/variables/bootstrap-mods.less
+++ b/src/ui/public/styles/variables/bootstrap-mods.less
@@ -20,12 +20,11 @@
//== Typography
//
//## Font, line-height, and color for body text, headings, and more.
-
@font-family-sans-serif: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
-@font-family-serif: Georgia, "Times New Roman", Times, serif;
+@font-family-serif: 'Open Sans', sans-serif;
//** Default monospace fonts for `
`, ``, and ``.
@font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
-@font-family-base: @font-family-sans-serif;
+@font-family-base: @font-family-serif;
@font-size-base: 13px;
@font-size-large: ceil((@font-size-base * 1.25)); // ~18px
diff --git a/src/ui/public/taskbar/taskbar.js b/src/ui/public/taskbar/taskbar.js
new file mode 100644
index 0000000000000..d1e09fd60c783
--- /dev/null
+++ b/src/ui/public/taskbar/taskbar.js
@@ -0,0 +1,30 @@
+import UiModules from 'ui/modules';
+
+import './taskbar.less';
+import './taskbar_button';
+import './taskbar_config_toggle';
+import './taskbar_config';
+import './taskbar_search';
+import './taskbar_timefilter_toggle';
+import './taskbar_inject_timefilter';
+
+UiModules
+.get('kibana')
+.directive('kbnTaskbar', function () {
+ return {
+ restrict: 'E',
+ scope: {
+ configTemplate: '=',
+ configObject: '='
+ },
+ bindToController: true,
+ controllerAs: 'taskbar',
+ controller($attrs, $scope, $element) {
+ this.configObjectName = $attrs.configObjectName || $attrs.configObject;
+
+ $scope.$watch('taskbar.configTemplate.current', (template) => {
+ $element.toggleClass('config-open', !!template);
+ });
+ }
+ };
+});
diff --git a/src/ui/public/taskbar/taskbar.less b/src/ui/public/taskbar/taskbar.less
new file mode 100644
index 0000000000000..efcb4c1a74027
--- /dev/null
+++ b/src/ui/public/taskbar/taskbar.less
@@ -0,0 +1,38 @@
+@basic-padding: 3px 5px;
+
+kbn-taskbar {
+ display: flex;
+ flex-direction: column;
+ background: #c2c2c2;
+ color: #454545;
+
+ > .controls {
+ flex: 0 0 auto;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ > .task-group {
+ flex: 0 0 auto;
+ display: flex;
+ align-items: center;
+ }
+
+ button {
+ background: transparent;
+ padding: @basic-padding;
+ }
+ }
+
+ &-search {
+ padding: @basic-padding;
+ &, div, form {
+ display: flex;
+ flex: 1 1 auto;
+ }
+ }
+
+ .input-group {
+ display: flex;
+ }
+}
diff --git a/src/ui/public/taskbar/taskbar_button.js b/src/ui/public/taskbar/taskbar_button.js
new file mode 100644
index 0000000000000..0c8c6662eb0bc
--- /dev/null
+++ b/src/ui/public/taskbar/taskbar_button.js
@@ -0,0 +1,26 @@
+import UiModules from 'ui/modules';
+
+import taskbarButtonHtml from './templates/taskbar_button.html';
+
+UiModules
+.get('kibana')
+.directive('kbnTaskbarButton', function () {
+ return {
+ restrict: 'E',
+ require: '^kbnTaskbar',
+ scope: {
+ description: '@',
+ ngClass: '=?',
+ ariaHasPopup: '=?',
+ ariaExpanded: '=?'
+ },
+ transclude: true,
+ controllerAs: 'button',
+ bindToController: true,
+ controller() {},
+ link($scope, $el, $attr, taskbar) {
+ $scope.taskbar = taskbar;
+ },
+ template: taskbarButtonHtml
+ };
+});
diff --git a/src/ui/public/taskbar/taskbar_config.js b/src/ui/public/taskbar/taskbar_config.js
new file mode 100644
index 0000000000000..c56b608c2899d
--- /dev/null
+++ b/src/ui/public/taskbar/taskbar_config.js
@@ -0,0 +1,20 @@
+import UiModules from 'ui/modules';
+
+import taskbarConfigHtml from './templates/taskbar_config.html';
+
+UiModules
+.get('kibana')
+.directive('kbnTaskbarConfig', function () {
+ return {
+ restrict: 'E',
+ require: '^kbnTaskbar',
+ scope: {},
+ controllerAs: 'config',
+ bindToController: true,
+ link($scope, $el, $attr, taskbar) {
+ $scope.taskbar = taskbar;
+ },
+ controller() {},
+ template: taskbarConfigHtml
+ };
+});
diff --git a/src/ui/public/taskbar/taskbar_config_toggle.js b/src/ui/public/taskbar/taskbar_config_toggle.js
new file mode 100644
index 0000000000000..7f6148078e4d4
--- /dev/null
+++ b/src/ui/public/taskbar/taskbar_config_toggle.js
@@ -0,0 +1,27 @@
+import UiModules from 'ui/modules';
+
+import taskbarConfigToggleHtml from './templates/taskbar_config_toggle.html';
+
+UiModules
+.get('kibana')
+.directive('kbnTaskbarConfigToggle', function () {
+ return {
+ restrict: 'E',
+ require: '^kbnTaskbar',
+ scope: {
+ templateName: '@',
+ description: '@',
+ },
+ transclude: true,
+ controllerAs: 'configToggle',
+ bindToController: true,
+ controller() {},
+ link($scope, $el, $attr, taskbar) {
+ $scope.taskbar = taskbar;
+ $scope.$watch('taskbar.configTemplate.is(configToggle.templateName)', function (active) {
+ $el.toggleClass('active', active);
+ });
+ },
+ template: taskbarConfigToggleHtml
+ };
+});
diff --git a/src/ui/public/taskbar/taskbar_inject_timefilter.js b/src/ui/public/taskbar/taskbar_inject_timefilter.js
new file mode 100644
index 0000000000000..e3b10ea0259fa
--- /dev/null
+++ b/src/ui/public/taskbar/taskbar_inject_timefilter.js
@@ -0,0 +1,13 @@
+import UiModules from 'ui/modules';
+
+UiModules
+.get('kibana')
+.directive('kbnTaskbarInjectTimefilter', function (timefilter) {
+ return {
+ restrict: 'A',
+ priority: 100,
+ controller($scope) {
+ $scope.timefilter = timefilter;
+ }
+ };
+});
diff --git a/src/ui/public/taskbar/taskbar_search.js b/src/ui/public/taskbar/taskbar_search.js
new file mode 100644
index 0000000000000..d2291cb1bb757
--- /dev/null
+++ b/src/ui/public/taskbar/taskbar_search.js
@@ -0,0 +1,20 @@
+import UiModules from 'ui/modules';
+
+import template from './templates/taskbar_search.html';
+
+UiModules
+.get('kibana')
+.directive('kbnTaskbarSearch', function () {
+ return {
+ restrict: 'E',
+ scope: {
+ onSubmit: '&',
+ historyId: '@',
+ ngModel: '='
+ },
+ template,
+ bindToController: true,
+ controllerAs: 'search',
+ controller() {}
+ };
+});
diff --git a/src/ui/public/taskbar/taskbar_timefilter_toggle.js b/src/ui/public/taskbar/taskbar_timefilter_toggle.js
new file mode 100644
index 0000000000000..44a6bba044c79
--- /dev/null
+++ b/src/ui/public/taskbar/taskbar_timefilter_toggle.js
@@ -0,0 +1,44 @@
+import { clone } from 'lodash';
+import UiModules from 'ui/modules';
+
+import taskbarTimefilterToggleHtml from './templates/taskbar_timefilter_toggle.html';
+import timefilterConfigHtml from './templates/taskbar_timefilter_config.html';
+import timefilterConfigIntervalHtml from './templates/taskbar_timefilter_config_interval.html';
+
+UiModules
+.get('kibana')
+.directive('kbnTaskbarTimefilterToggle', function (timefilter, globalState) {
+ return {
+ restrict: 'E',
+ require: '^kbnTaskbar',
+ template: taskbarTimefilterToggleHtml,
+
+ controllerAs: 'toggle',
+ controller() {
+ this.init = (taskbar, timefilter) => {
+ this.enabled = () => timefilter.enabled;
+ this.toggleRefresh = () => timefilter.refreshInterval.pause = !timefilter.refreshInterval.pause;
+ this.refreshSet = () => timefilter.refreshInterval.value > 0;
+ this.refreshPaused = () => !!timefilter.refreshInterval.pause;
+ this.isOpenTo = (name) => taskbar.configTemplate.is(name);
+ this.isOpen = () => !!taskbar.configTemplate.current;
+ this.toggleFilterTemplate = (name) => taskbar.configTemplate.toggle(name);
+
+ taskbar.configTemplate.add('timefilterInterval', timefilterConfigIntervalHtml);
+ taskbar.configTemplate.add('timefilterFilter', timefilterConfigHtml);
+ };
+ },
+
+ link($scope, $attr, $el, taskbar) {
+ $scope.timefilter = timefilter;
+ $scope.taskbar = taskbar;
+ $scope.toggle.init(taskbar, timefilter);
+
+ $scope.$listen(timefilter, 'update', function (newVal, oldVal) {
+ globalState.time = clone(timefilter.time);
+ globalState.refreshInterval = clone(timefilter.refreshInterval);
+ globalState.save();
+ });
+ },
+ };
+});
diff --git a/src/ui/public/taskbar/templates/taskbar_button.html b/src/ui/public/taskbar/templates/taskbar_button.html
new file mode 100644
index 0000000000000..a7b143b01bda2
--- /dev/null
+++ b/src/ui/public/taskbar/templates/taskbar_button.html
@@ -0,0 +1,10 @@
+
+
+
diff --git a/src/ui/public/taskbar/templates/taskbar_config.html b/src/ui/public/taskbar/templates/taskbar_config.html
new file mode 100644
index 0000000000000..641c0775b77c9
--- /dev/null
+++ b/src/ui/public/taskbar/templates/taskbar_config.html
@@ -0,0 +1,6 @@
+
+
diff --git a/src/ui/public/taskbar/templates/taskbar_config_toggle.html b/src/ui/public/taskbar/templates/taskbar_config_toggle.html
new file mode 100644
index 0000000000000..4399cb607afb6
--- /dev/null
+++ b/src/ui/public/taskbar/templates/taskbar_config_toggle.html
@@ -0,0 +1,7 @@
+
+
+
diff --git a/src/ui/public/taskbar/templates/taskbar_search.html b/src/ui/public/taskbar/templates/taskbar_search.html
new file mode 100644
index 0000000000000..d3310c790a443
--- /dev/null
+++ b/src/ui/public/taskbar/templates/taskbar_search.html
@@ -0,0 +1,21 @@
+
diff --git a/src/ui/public/chrome/config/filter.html b/src/ui/public/taskbar/templates/taskbar_timefilter_config.html
similarity index 85%
rename from src/ui/public/chrome/config/filter.html
rename to src/ui/public/taskbar/templates/taskbar_timefilter_config.html
index 71a3dd32645ef..c82dd2464173c 100644
--- a/src/ui/public/chrome/config/filter.html
+++ b/src/ui/public/taskbar/templates/taskbar_timefilter_config.html
@@ -1,4 +1,5 @@
+
diff --git a/src/ui/public/taskbar/templates/taskbar_timefilter_toggle.html b/src/ui/public/taskbar/templates/taskbar_timefilter_toggle.html
new file mode 100644
index 0000000000000..55f0460342bc5
--- /dev/null
+++ b/src/ui/public/taskbar/templates/taskbar_timefilter_toggle.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+ Auto-refresh
+ {{timefilter.refreshInterval.display}}
+
+
+
+
+
+
diff --git a/src/ui/public/timepicker/timepicker.html b/src/ui/public/timepicker/timepicker.html
index f1af4b4fbe6fb..425d37661e3e1 100644
--- a/src/ui/public/timepicker/timepicker.html
+++ b/src/ui/public/timepicker/timepicker.html
@@ -1,29 +1,9 @@
-
-
-
+
@@ -45,7 +25,7 @@
diff --git a/src/ui/public/timepicker/timepicker.js b/src/ui/public/timepicker/timepicker.js
index 1c07adf8a9b74..23bd3b1da5eff 100644
--- a/src/ui/public/timepicker/timepicker.js
+++ b/src/ui/public/timepicker/timepicker.js
@@ -14,7 +14,6 @@ define(function (require) {
require('ui/timepicker/quick_ranges');
require('ui/timepicker/refresh_intervals');
require('ui/timepicker/time_units');
- require('ui/timepicker/toggle');
module.directive('kbnTimepicker', function (quickRanges, timeUnits, refreshIntervals) {
return {
diff --git a/src/ui/public/timepicker/toggle.html b/src/ui/public/timepicker/toggle.html
deleted file mode 100644
index 6c4b59b6f6ece..0000000000000
--- a/src/ui/public/timepicker/toggle.html
+++ /dev/null
@@ -1,33 +0,0 @@
-
diff --git a/src/ui/public/timepicker/toggle.js b/src/ui/public/timepicker/toggle.js
deleted file mode 100644
index 2b9bf03fdc6be..0000000000000
--- a/src/ui/public/timepicker/toggle.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import UiModules from 'ui/modules';
-import chromeNavControlsRegistry from 'ui/registry/chrome_nav_controls';
-
-import toggleHtml from './toggle.html';
-
-// TODO: the chrome-context directive is currently responsible for several variables
-// on scope used by this template. We need to get rid of that directive and move that
-// logic here
-
-chromeNavControlsRegistry.register(function () {
- return {
- name: 'timepicker toggle',
- order: 100,
- template: toggleHtml
- };
-});
diff --git a/src/ui/views/chrome.jade b/src/ui/views/chrome.jade
index 646b9bd329a45..f6c3f729d9b0c 100644
--- a/src/ui/views/chrome.jade
+++ b/src/ui/views/chrome.jade
@@ -4,7 +4,7 @@
block vars
doctype html
-html(lang='en')
+html(lang='en', id='kbn-forward')
head
meta(charset='utf-8')
meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')