From 678bfab363ff545c4e068f9cd0142f628c7b026d Mon Sep 17 00:00:00 2001 From: Khalah Jones-Golden Date: Thu, 14 Jan 2016 15:35:05 -0400 Subject: [PATCH 001/181] [Kibana5.0] First go at the css --- src/optimize/BaseOptimizer.js | 5 +- .../elasticsearch/lib/expose_client.js | 2 + src/plugins/kibana/public/kibana.js | 6 +- src/ui/public/chrome/chrome.html | 121 +++++++++--------- .../directives/app_switcher/app_switcher.less | 100 ++++++++++----- src/ui/public/images/kibana.gif | Bin 0 -> 3737 bytes src/ui/public/styles/base.less | 9 +- src/ui/public/styles/mixins.less | 9 +- 8 files changed, 144 insertions(+), 108 deletions(-) create mode 100644 src/ui/public/images/kibana.gif diff --git a/src/optimize/BaseOptimizer.js b/src/optimize/BaseOptimizer.js index 9ca708ab04fd9..e236769f466d7 100644 --- a/src/optimize/BaseOptimizer.js +++ b/src/optimize/BaseOptimizer.js @@ -63,6 +63,7 @@ class BaseOptimizer { getConfig() { let mapQ = this.sourceMaps ? '?sourceMap' : ''; + let mapQPre = mapQ ? mapQ + '&' : '?'; return { context: fromRoot('.'), @@ -101,7 +102,7 @@ class BaseOptimizer { test: /\.less$/, loader: ExtractTextPlugin.extract( 'style', - `css${mapQ}!autoprefixer${mapQ ? mapQ + '&' : '?'}{ "browsers": ["last 2 versions","> 5%"] }!less${mapQ}` + `css${mapQ}!autoprefixer${mapQPre}{ "browsers": ["last 2 versions","> 5%"] }!less${mapQPre}dumpLineNumbers=comments` ) }, { test: /\.css$/, loader: ExtractTextPlugin.extract('style', `css${mapQ}`) }, @@ -109,7 +110,7 @@ class BaseOptimizer { { test: /\.json$/, loader: 'json' }, { test: /\.(html|tmpl)$/, loader: 'raw' }, { test: /\.png$/, loader: 'url?limit=10000&name=[path][name].[ext]' }, - { test: /\.(woff|woff2|ttf|eot|svg|ico)(\?|$)/, loader: 'file?name=[path][name].[ext]' }, + { test: /\.(woff|woff2|ttf|eot|svg|ico|gif)(\?|$)/, loader: 'file?name=[path][name].[ext]' }, { test: /[\/\\]src[\/\\](plugins|ui)[\/\\].+\.js$/, loader: `rjs-repack${mapQ}` }, { test: /\.js$/, diff --git a/src/plugins/elasticsearch/lib/expose_client.js b/src/plugins/elasticsearch/lib/expose_client.js index 61c6c81d69d11..467081aef3f48 100644 --- a/src/plugins/elasticsearch/lib/expose_client.js +++ b/src/plugins/elasticsearch/lib/expose_client.js @@ -41,6 +41,7 @@ module.exports = function (server) { return new elasticsearch.Client({ host: url.format(uri), ssl: ssl, + plugins: options.plugins, apiVersion: options.apiVersion, keepAlive: options.keepAlive, log: function () { @@ -66,6 +67,7 @@ module.exports = function (server) { server.expose('client', client); server.expose('createClient', createClient); + server.expose('callWithRequestFactory', callWithRequest); server.expose('callWithRequest', callWithRequest(noAuthClient)); server.expose('errors', elasticsearch.errors); diff --git a/src/plugins/kibana/public/kibana.js b/src/plugins/kibana/public/kibana.js index 2d059cc972c81..b62be1d887b12 100644 --- a/src/plugins/kibana/public/kibana.js +++ b/src/plugins/kibana/public/kibana.js @@ -19,7 +19,7 @@ var chrome = require('ui/chrome'); var routes = require('ui/routes'); var modules = require('ui/modules'); -var kibanaLogoUrl = require('ui/images/kibana.svg'); +var kibanaLogoUrl = require('ui/images/kibana.gif'); routes.enable(); @@ -30,8 +30,8 @@ routes chrome .setBrand({ - 'logo': 'url(' + kibanaLogoUrl + ') left no-repeat', - 'smallLogo': 'url(' + kibanaLogoUrl + ') left no-repeat' + 'logo': 'url(' + kibanaLogoUrl + ') 0% 0% no-repeat', + 'smallLogo': 'url(' + kibanaLogoUrl + ') 0% 0% no-repeat' }) .setNavBackground('#222222') .setTabDefaults({ diff --git a/src/ui/public/chrome/chrome.html b/src/ui/public/chrome/chrome.html index 6e5cccbfdd497..f52ef56fd48c1 100644 --- a/src/ui/public/chrome/chrome.html +++ b/src/ui/public/chrome/chrome.html @@ -1,74 +1,69 @@
- - - + + -
+
+
diff --git a/src/ui/public/chrome/directives/app_switcher/app_switcher.less b/src/ui/public/chrome/directives/app_switcher/app_switcher.less index 95ac50baa310c..782713582b720 100644 --- a/src/ui/public/chrome/directives/app_switcher/app_switcher.less +++ b/src/ui/public/chrome/directives/app_switcher/app_switcher.less @@ -1,55 +1,87 @@ +@import (reference) "~ui/styles/mixins"; @import (reference) "~ui/styles/variables"; -@app-icon-size: 48px; -@app-icon-padding: 10px; +// as - App Switcher +@as-open-width: 160px; +@as-closed-width: 50px; +@app-icon-height: 30px; +@transition-time: .65s; +@transition-delay: .2s; +.app-links-wrapper { + flex: 0 0 @as-closed-width; + background-color: #3caed2; + overflow: hidden; + transition: flex-basis @transition-time; + transition-delay: @transition-delay; + + &:hover { + flex-basis: @as-open-width; + + .app-title { + display: inline-block; + } + + .app-wrapper { + padding-right: @as-open-width; + } + } + + .logo { + height: 70px; + list-style-type: none; + } +} +.app-wrapper { + .real-flex-parent(); + flex: 0 0 100%; + // flex: 0 0 calc(100% - @as-closed-width); + // flex: 0 0 auto; + margin: 0 auto; + padding-right: @as-closed-width; + transition: padding-right @transition-time; + transition-delay: @transition-delay; + + + .navbar-right { + margin-right: 0; + } +} .app-links { text-align: justify; .app-link { - display: inline-block; - vertical-align: top; - text-align: left; - width: @app-icon-size + (@app-icon-padding * 2); - margin: 0px 10px; - padding: @app-icon-padding; - border-radius: @border-radius-base; - - .app-icon { + width: @as-open-width; + height: @app-icon-height; + > a { display: block; - height: @app-icon-size; - width: @app-icon-size; + height: 100%; + color: #fff; + } + .app-icon { + float: left; + text-align: center; + font-size: 1.7em; + display: inline-block; + height: @app-icon-height; + width: @as-closed-width; background-position: center; background-size: contain; - border-radius: @border-radius-base; - background-color: @gray-light; - width: 100%; - - &-missing { - text-align: center; - font-size: 2.7em; - font-weight: bold; - font-family: @font-family-sans-serif; - color: #fff; - } } .app-title { - color: @text-color; + width: calc(@as-open-width - @as-closed-width); + display: inline-block; + float: left; font-size: 0.9em; - width: 100%; text-align: center; - margin-top: 3px; - } - - &:hover .app-title { - text-decoration: underline; + line-height: @app-icon-height; } &.active { - background: @gray-lighter; - .app-title { - text-decoration: underline; + background-color: #73c6e0; + > a { + color: #333; + text-decoration: none; } } diff --git a/src/ui/public/images/kibana.gif b/src/ui/public/images/kibana.gif new file mode 100644 index 0000000000000000000000000000000000000000..767b01aceef299fb5feac00629ddc93dcd22d926 GIT binary patch literal 3737 zcmV;K4rcL3Nk%w1VW0p;0QUd@g~i%1pu$M1$)?uiN~+4A(&FOq^*W@*?)LdAp1?Vy z#e&4yQm)Kkwa@7D_ma%t^7#6@-s;fl@vPV8_4@nv`uw)s>Av9W=JNK4#@kJ-%Xh!l z$mQ>k%H6Zu=xn;u)avof=I}_G@;p{h}#9p+|JEX;Cx6zHs+~4o?dBE0s!Pl|c=bO;s&*<;PuJf+6z^!V)d z`S|<%E}p`e&)_Vd!o%b3#^mljrN-^{`K{UK{r>(lp~FC@$7{LLna|)gqQtD&=C0W0 zE1khIp~J7)=T)%H;qdi9rpHvT%_^P2MX1Qn=<$HV*)gEQZo1Re?D8s|z(S|TMXAaA z{QcML^85Y$M5xH>_4w=c_%ENsZoAWf!q_>a#sB~Q&gbvi?en42h$=>PDna|-qrp8&a&OoNdfy3FW*X7db@-Lpj zbiLJezSVEL)cO4Vc)!;0_xe7i#%{XOalF(=smXA=(?6%j#pLe8;_aQ$;%B(gL8ixw z$lLk*{BOL}E}y}2z0@zC!F-6~1>G0(7_ExXWL#N1TxzcL5 z(L<)ixZUcy-Ri;O>~Ff$N~_9{%ijL~|Ns8}Hlf5kq{W`m;>qRjn9tv@+2${v!r<@q zn9ksu&)|H)*v;tiNvq25_xbtz{XM0}Jfy~OyVO{*&eiMkfy3Cs;_SlW?Jl3fFQ3A$ z+2{ZN|1hA#A^8LV00000EC2ui0H6Ry000R80RIUbNU)&6g9sBUT*$DY!-o(f7Tgy` zqQ#3CGiuzpkRr#AAVZ4O=y9aUlPFD=Ov$pPONT38%AEN!Ce52TL)sL`Z=cVfK!XYu z%CD%=qegQo#kiASArS(iN}WozD%D~1;Aq{tmBu4}OT$9kc?OOVH)zwUUCUN2pk~_s z$elZPL?5tX^LDIQke`?`{Q?UfOt`RMGRf4a0mHa4V;~2L>Ya?R>0iT`F_YPWYq8_T zN{}(bOS$ww%YZYh7CfL6B+sA!1e0vK_CM6CSCa`R47OuPFRGBXT^e`p%w;w}TJ{-? znh}ro5w~spc;O@f6gOA%BhbF#(!BDp8RuShWpqdq+~ei$fJ)eR)!%@m(3^2 z2EQ=Z7<+Ko*bz7vgb;!`GW;k|3&#{tzz+6|aT_)fXjz5=URvm4X0>EMAZU{uxKImh z#N&@YJsfa`LXrToX9=Aw@=pukP_t(#aQvC1L2nv12s$gM_kn?JPQ->Bd)^V5LTS{o z=NcrWaT_>s?1={)nfe!LVFP6U@tR|tFi_z``)u0jrwIi*XrZU3>d&gJ!q-$DOOT-~ zH2v&>nIJaI>70lp;;O4Zp0?RS4Y0t1MVY~>%Ic$#E_s_6S0JH-A!G=m?7PnPGl($} zHdYUfbQDWauAE}aD?*#>lg7aNY;vjt;+|2|cWoZ!lbr<>QG`H6EDUj9Mm^l>PWv=L zj3pp6!a*r`JmG;3sk}RiBeSk24IKGO#P6=8@iXwiU=<-S!4vO;>YhC)kcJFmBm&1H zV}RFF3uE-5033-V5?Rs&>3p*t`!t=$FmMz?^@3S9{dCj^{PVSv2HAne8)kUnw%a$j za*q%(c#z5iYH;G15=~tH+|bPa;~z=9#9+ft1_ zt<*4Li{|dLcH3_^?}ZOjfKtl>z|8sq0e=5|ZMHsE0Z1FF`ay@U{t#-Y&%#m=5BPiT zNdXdQD14|2D9q9R{r-@W!L5YwQpuk8u*EL$M}bw)fDT`h1tRQ+zdh;U0jT&9$Cl^3 z3VHz%AV5Mgfbjua>FXeX%N9RcFaw17Lkcx$fz3qa4^o*5eGSB48%9A6u%tl+6u2KB z_;5c>06~Rj+W-UqW4Na|EP!fuum=Qm$iwzQ01`kf7o;d?!3vte5*}EA3|cU;i-a&T zbT~jaz{iII6vBoqbYbK!fdOLFq6}p40s9cpfEL_F1Ij9c5nzyk3@~9G;A;abgcC#t zmOvAwm_PxL;DApoiUxmDUM7pxf6`w0MV&}Ebg%p3uMn0{7+M zYqD%1En&$2Cr<#AAB4!j8urAEKrHhp6Dvv!7-5DzRU;PC8G{h_WR5fd^9+HY!k(a@ z3sd>XCzQk+OA&*_B}SioKVFvI|IkO%pVS6m1{Q#?5(^;2Kq{6ssQ$wV z0;tBG41k7e?W>&3W2q}5Faa_Qh72}H+y`%Sts9u5AKyel5TY2%H16|f!y1=B_CX12 z?CAz4_0bp<&^sIKU=$YMKr8(b2|q-1qW;(_X%>-zp0>dS3E)W!6rhM)xS$;aumB#G z=npghP{OUJfh$YBaDy1swJ?U*K@bA)LBPpS6m}ZwVTEPX#ZDp=d&0nNaRiANNMVTh z>+EN>YNa&LVxZy(hpG5cg&IVF6mwu7{%nie#p?E)h$zJ%?1~vt%z(J@?3WB<05gIp z_l1aU?rkQKf;~Av0Arv-E~L=D5~wc|W?-OpnHk#dl0X@IdO#XRcnTBxgAWww1%z{0 z+uMF}islrh0YH%s`ex<|4Ztr$00#vg#DJRqn1dtE_TR_}cpsSX!CDzHhFS2Sm*>d9 z2Y&F1LsXTso~5v8h3bfb`a{F}I6yIa*$5YKq6->efGzgK-V>`d#Z}CpAda&NAP}g?&F+dZ0vV1v!M3L?N0QrF6d(9qC`Jzc^GwApij z6${W@RG^tc;{=HZ@d!ulLlv$7;4C0rVbW0A${HR+1CFq#2n51WeyO!T41kID-sZg( zG{F;odmLv00vtB2%=QkDH5_af1@-`V$ zIuf(6V^$;G-AZ2>stxGHo}M5BV77n;p{^|^U`b9C$F+Gkhz7Z><18D*qH`esTsJ?$ z7=b{N0Tt5GHI8{O0!A+58 z6BzJ997w#U3%G|FvCwuKyzqo4ga88-7{{Q5P{*cAI+hOC@EH!!gFUqY0~dIL5Kuq? z_VGaiO5ixy&-`&O7=Q=tGCOO6@M?kBfem_~*=-(i1@_$`594EDB}l-9f7k&Wq#&Z@ z8)1)pt(+Eo$Dft`@rh(Cf)E?PaA@t|jDc{$5&yfgBvzga+BR_c{xE|7BuIT4Q-i<* zYgT=;?v{u%7|bANc)=9(pa-D-X%j7YK{e=)0bD$_1N7$rT3{+?5DcLJ0Tr+YO~eOl z00E(}0~(+^GGGG>!%umLU*1ZL8MrG{qW zHgf707_5M9C(;u?F&v)wFg)>zKr#kTbu$Aq2Ce5*H=~MJSXLwwiv1yrU~`I4^&YI~ zZ4;DYH&6_in2CEZ2sluLL8Ek z2q~(d1Iw6?h0zLm=8rDHF?mn`>`0L1F#$CYj|d48O)(Ek;E`I0ahlQJnLTM!K1hLRk1(G)o%20Yo5KKYYC8I(dP z26-?I+K7`dVJ;tKB23woPU)0LsS-*VmFKt nav { position: relative; z-index: 1; .navbar-right { - margin-right: 0; + margin-right: 0 !important; } } } diff --git a/src/ui/public/styles/mixins.less b/src/ui/public/styles/mixins.less index 568f9dd03dada..ceab159c3745d 100644 --- a/src/ui/public/styles/mixins.less +++ b/src/ui/public/styles/mixins.less @@ -1,15 +1,20 @@ @import "~ui/styles/variables"; @import (reference) "~bootstrap/less/mixins"; -.flex-parent(@grow: 1, @shrink: 1, @basis: auto) { +.flex-parent(@grow: 1, @shrink: 1, @basis: auto, @direction: column) { flex: @grow @shrink @basis; display: flex; - flex-direction: column; + flex-direction: @direction; > * { flex-shrink: 0; } } +.real-flex-parent(@display: flex, @flow: column nowrap) { + display: @display; + flex-flow: @flow; +} + .ellipsis() { white-space: nowrap; From 72ef16fd515d0393d9910e486c2b98cf55d997ef Mon Sep 17 00:00:00 2001 From: spalger Date: Mon, 25 Jan 2016 19:23:09 -0700 Subject: [PATCH 002/181] [uiExports][chrome] support uiExports.links --- src/plugins/kibana/index.js | 34 ++++++++++++++++++- src/ui/index.js | 2 +- src/ui/public/chrome/api/apps.js | 6 ++-- src/ui/public/chrome/api/nav.js | 22 +++++++++--- .../directives/app_switcher/app_switcher.html | 2 +- src/ui/ui_app.js | 19 ++++++++--- src/ui/ui_exports.js | 17 +++++++--- src/ui/ui_nav_link.js | 16 +++++++++ src/ui/ui_nav_link_collection.js | 29 ++++++++++++++++ 9 files changed, 127 insertions(+), 20 deletions(-) create mode 100644 src/ui/ui_nav_link.js create mode 100644 src/ui/ui_nav_link_collection.js diff --git a/src/plugins/kibana/index.js b/src/plugins/kibana/index.js index 5f128990282bb..c5b6578b61072 100644 --- a/src/plugins/kibana/index.js +++ b/src/plugins/kibana/index.js @@ -14,6 +14,7 @@ module.exports = function (kibana) { uiExports: { app: { title: 'Kibana', + listed: false, description: 'the kibana you know and love', //icon: 'plugins/kibana/settings/sections/about/barcode.svg', main: 'plugins/kibana/kibana', @@ -30,8 +31,39 @@ module.exports = function (kibana) { return { kbnDefaultAppId: config.get('kibana.defaultAppId') }; + }, + }, + + links: [ + { + title: 'Discover', + order: -1003, + url: '/app/kibana#/discover', + description: 'interactively explore your data', + icon: 'plugins/kibana/settings/sections/about/barcode.svg', + }, + { + title: 'Visualize', + order: -1002, + url: '/app/kibana#/visualize', + description: 'design data visualizations', + icon: 'plugins/kibana/settings/sections/about/barcode.svg', + }, + { + title: 'Dashboard', + order: -1001, + url: '/app/kibana#/dashboard', + description: 'compose visualizations for much win', + icon: 'plugins/kibana/settings/sections/about/barcode.svg', + }, + { + title: 'Settings', + order: 1000, + url: '/app/kibana#/settings', + description: 'define index patterns, change config, and more', + icon: 'plugins/kibana/settings/sections/about/barcode.svg', } - } + ] }, init: function (server, options) { diff --git a/src/ui/index.js b/src/ui/index.js index 4bdf12b7870f9..1b57cfe617ff8 100644 --- a/src/ui/index.js +++ b/src/ui/index.js @@ -71,7 +71,7 @@ module.exports = async (kbnServer, server, config) => { server.decorate('reply', 'renderApp', function (app) { const payload = { app: app, - nav: uiExports.apps, + nav: uiExports.navLinks.inOrder, version: kbnServer.version, buildNum: config.get('pkg.buildNum'), buildSha: config.get('pkg.buildSha'), diff --git a/src/ui/public/chrome/api/apps.js b/src/ui/public/chrome/api/apps.js index 35342d660f654..65f1f5af5df5a 100644 --- a/src/ui/public/chrome/api/apps.js +++ b/src/ui/public/chrome/api/apps.js @@ -3,8 +3,8 @@ const { resolve } = require('url'); module.exports = function (chrome, internals) { - if (internals.app) { - internals.app.url = resolve(window.location.href, internals.app.url); + if (internals.app && internals.app.navLink) { + internals.app.navLink.url = resolve(window.location.href, internals.app.navLink.url); } internals.appUrlStore = internals.appUrlStore || window.sessionStorage; @@ -35,7 +35,7 @@ module.exports = function (chrome, internals) { }; chrome.getAppUrl = function () { - return get(internals, ['app', 'url']); + return get(internals, ['app', 'navLink', 'url']); }; chrome.getInjected = function (name, def) { diff --git a/src/ui/public/chrome/api/nav.js b/src/ui/public/chrome/api/nav.js index 3290010911513..068d992c2e4e0 100644 --- a/src/ui/public/chrome/api/nav.js +++ b/src/ui/public/chrome/api/nav.js @@ -34,12 +34,24 @@ export default function (chrome, internals) { }); }; - internals.trackPossibleSubUrl = function (url) { - for (const link of internals.nav) { - if (startsWith(url, link.url)) { - link.lastSubUrl = url; - internals.appUrlStore.setItem(`lastSubUrl:${link.url}`, url); + internals.navTrackers = []; + chrome.addNavigationTracker = function (url, handler) { + internals.navTrackers.push({ + url, handler + }); + }; + + internals.trackPossibleSubUrl = function (url, persist) { + for (const tracker of internals.navTrackers) { + if (startsWith(url, tracker.url)) { + if (persist) { + tracker.lastSubUrl = url; + internals.appUrlStore.setItem(`lastSubUrl:${tracker.url}`, url); + } + tracker.active = true; } + + tracker.handler(tracker.active, tracker.lastSubUrl); } }; diff --git a/src/ui/public/chrome/directives/app_switcher/app_switcher.html b/src/ui/public/chrome/directives/app_switcher/app_switcher.html index 7613cb03142b4..89ae849628bc3 100644 --- a/src/ui/public/chrome/directives/app_switcher/app_switcher.html +++ b/src/ui/public/chrome/directives/app_switcher/app_switcher.html @@ -1,7 +1,7 @@ diff --git a/src/ui/public/visualize/visualize.less b/src/ui/public/visualize/visualize.less index 6879cf173d088..f8520f2f4cc22 100644 --- a/src/ui/public/visualize/visualize.less +++ b/src/ui/public/visualize/visualize.less @@ -59,6 +59,7 @@ ul.visualizations .media-body { visualize-spy { // this element should flex flex: 0 1 auto; + padding: 0px 0px 0px 15px; // it's children should also flex vertically flex-direction: column; @@ -77,34 +78,12 @@ visualize-spy { .visualize-show-spy { flex: 0 0 auto; - - border-top: 1px solid; - border-top-color: @visualize-show-spy-border; - margin-bottom: 3px; - &-tab { - margin: 0px auto; - margin-top: -1px; - border: 1px solid; - border-color: @visualize-show-spy-border; - border-top: 0px; - border-width: 0px 1px 1px 1px; - border-bottom-left-radius: @border-radius-base; - border-bottom-right-radius: @border-radius-base; - width: 50px; - background: @visualize-show-spy-bg; - text-align: center; - color: @visualize-show-spy-color; - - &:hover { - background-color: @visualize-show-spy-hover-bg; - color: @visualize-show-spy-hover-color; - } - } - - - i { - padding: 0 10px; + color: @kibanaGray4; + position: absolute; + z-index: 100; + left: 5px; + bottom: 0px; } } @@ -181,4 +160,3 @@ visualize-spy { white-space: pre-wrap; } } - From de0697c48a99bb9bdd47f95f6a3f83f4433a2f79 Mon Sep 17 00:00:00 2001 From: Rashid Khan Date: Tue, 16 Feb 2016 10:57:51 -0700 Subject: [PATCH 137/181] Import all of lodash --- src/ui/ui_app.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ui/ui_app.js b/src/ui/ui_app.js index bba6c79fbbd81..7091261a06058 100644 --- a/src/ui/ui_app.js +++ b/src/ui/ui_app.js @@ -1,4 +1,5 @@ import { chain, get, noop, once, pick } from 'lodash'; +import _ from 'lodash'; class UiApp { constructor(uiExports, spec) { From 60857779c8cfabd34dac6fa76c23bf8391e8b65e Mon Sep 17 00:00:00 2001 From: Rashid Khan Date: Tue, 16 Feb 2016 10:58:33 -0700 Subject: [PATCH 138/181] Don't paint spinner when its not doing anything --- src/ui/public/styles/spinner.less | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/public/styles/spinner.less b/src/ui/public/styles/spinner.less index 5ffa61f441b46..514a2c5e2496c 100644 --- a/src/ui/public/styles/spinner.less +++ b/src/ui/public/styles/spinner.less @@ -5,6 +5,7 @@ @color2: @kibanaPink2; .spinner.ng-hide { + visibility: hidden; display: block !important; opacity: 0; transition-delay: 0.25s; @@ -16,6 +17,7 @@ right: 0; height: 2px; position: absolute; + visibility: visible; display: block; animation: move 2s linear infinite; background-color: @kibanaPink2; From daf846642c6d91a6b5b2e91cfeab90ed03395e3a Mon Sep 17 00:00:00 2001 From: Rashid Khan Date: Tue, 16 Feb 2016 11:14:18 -0800 Subject: [PATCH 139/181] Move dashboard title --- src/plugins/kibana/public/dashboard/index.html | 9 +++++++-- .../kibana/public/dashboard/styles/main.less | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/plugins/kibana/public/dashboard/index.html b/src/plugins/kibana/public/dashboard/index.html index 9fa6ce3f0c4d2..f5de97eb5526c 100644 --- a/src/plugins/kibana/public/dashboard/index.html +++ b/src/plugins/kibana/public/dashboard/index.html @@ -1,5 +1,12 @@
+
+ + + + +
+
-
-
- - -
-
- .active > a { From 4f365b5fd96baa3bcfc705d585935d440852717a Mon Sep 17 00:00:00 2001 From: Khalah Jones-Golden Date: Mon, 22 Feb 2016 10:39:27 -0800 Subject: [PATCH 141/181] [Chrome] Changed the chrome Tabs to the new design. Removed the tabs for kibana --- src/plugins/kibana/public/kibana.js | 22 ------------- src/plugins/statusPage/public/statusPage.js | 7 ----- src/ui/public/chrome/chrome.html | 35 +++++++++++++++++++++ src/ui/public/styles/base.less | 3 ++ src/ui/public/styles/theme.less | 33 ++++++++++++++++++- 5 files changed, 70 insertions(+), 30 deletions(-) diff --git a/src/plugins/kibana/public/kibana.js b/src/plugins/kibana/public/kibana.js index b7fe5cc84875a..12540a8a943ad 100644 --- a/src/plugins/kibana/public/kibana.js +++ b/src/plugins/kibana/public/kibana.js @@ -31,33 +31,11 @@ chrome 'logo': 'url(' + kibanaLogoUrl + ') 6px 10px / 140px 50px no-repeat #e8488b', 'smallLogo': 'url(' + kibanaLogoUrl + ') 6px 10px / 140px 50px no-repeat #e8488b' }) -.setNavBackground('#222222') .setTabDefaults({ resetWhenActive: true, lastUrlStore: window.sessionStorage, activeIndicatorColor: '#656a76' }) -.setTabs([ - { - id: 'discover', - title: 'Discover' - }, - { - id: 'visualize', - title: 'Visualize', - activeIndicatorColor: function () { - return (String(this.lastUrl).indexOf('/visualize/step/') === 0) ? 'white' : '#656a76'; - } - }, - { - id: 'dashboard', - title: 'Dashboard' - }, - { - id: 'settings', - title: 'Settings' - } -]) .setRootController('kibana', function ($scope, $rootScope, courier, config) { function setDefaultTimezone() { moment.tz.setDefault(config.get('dateFormat:tz')); diff --git a/src/plugins/statusPage/public/statusPage.js b/src/plugins/statusPage/public/statusPage.js index 32ba83efbd756..0ee8c53a1c1ef 100644 --- a/src/plugins/statusPage/public/statusPage.js +++ b/src/plugins/statusPage/public/statusPage.js @@ -7,13 +7,6 @@ import 'plugins/statusPage/statusPage.less'; const chrome = require('ui/chrome') -.setTabs([ - { - id: '', - title: 'Server Status', - activeIndicatorColor: '#EFF0F2' - } -]) .setRootTemplate(require('plugins/statusPage/statusPage.html')) .setRootController('ui', function ($http, $scope) { const ui = this; diff --git a/src/ui/public/chrome/chrome.html b/src/ui/public/chrome/chrome.html index e1a2f502a0bdd..45cbf36d36caf 100644 --- a/src/ui/public/chrome/chrome.html +++ b/src/ui/public/chrome/chrome.html @@ -45,6 +45,41 @@
+
diff --git a/src/ui/public/styles/base.less b/src/ui/public/styles/base.less index 330170303dd83..983e521d03cd3 100644 --- a/src/ui/public/styles/base.less +++ b/src/ui/public/styles/base.less @@ -140,6 +140,8 @@ a { z-index: 0; } + > navbar:first-child { padding-bottom: 0; } + > config { z-index: 1; } @@ -201,6 +203,7 @@ a { } button { + background-color: transparent; border-radius: 0; } } diff --git a/src/ui/public/styles/theme.less b/src/ui/public/styles/theme.less index 7d0ce81dcca8c..d87b0def55858 100644 --- a/src/ui/public/styles/theme.less +++ b/src/ui/public/styles/theme.less @@ -16,6 +16,38 @@ .navbar { border-width: 0; + &-static-top { + background-color: @kibanaGray5; + color: @kibanaGray2; + .navbar-brand:hover, + .navbar-brand { + float: none; + color: @kibanaGray2; + font-size: 1em; + background-color: transparent; + padding-top: 8px; + height: 35px; + } + .navbar-nav { + + > li > a { + color: @kibanaGray2; + font-size: 1.5em; + padding: 5px 0 6px 0; + margin: 0 10px; + } + // Active, hover state for the getTabs + > .active > a, + > .active > a:hover, + > .active > a:active, + > li > a:active, + > li > a:hover { + color: @kibanaGray1; + background-color: transparent; + border-bottom: 2px solid @kibanaGray1; + } + } + } &-btn-link { margin: 0; border-radius: 0; @@ -60,7 +92,6 @@ &-brand { cursor: default; font-size: 1.8em; - background-color: @navbar-inverse-brand-bg; user-select: none; } From 73c0f9eae1fde2544541419ffb7c66650c94851f Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Wed, 2 Mar 2016 17:30:11 -0800 Subject: [PATCH 142/181] working on sorting --- src/ui/public/directives/saved_object_finder.js | 5 +++++ src/ui/public/partials/saved_object_finder.html | 12 +++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/ui/public/directives/saved_object_finder.js b/src/ui/public/directives/saved_object_finder.js index 6cb56f3fa48d4..29e70300a4968 100644 --- a/src/ui/public/directives/saved_object_finder.js +++ b/src/ui/public/directives/saved_object_finder.js @@ -48,6 +48,11 @@ module.directive('savedObjectFinder', function ($location, $injector, kbnUrl, Pr filterResults(); + self.isSorted = true; + self.sort = function () { + self.isSorted = !self.isSorted; + }; + /** * Passed the hit objects and will determine if the * hit should have a url in the UI, returns it if so diff --git a/src/ui/public/partials/saved_object_finder.html b/src/ui/public/partials/saved_object_finder.html index 207f33e70c350..a13014d987c21 100644 --- a/src/ui/public/partials/saved_object_finder.html +++ b/src/ui/public/partials/saved_object_finder.html @@ -32,8 +32,14 @@
  • Type
  • Name - - + +
  • @@ -41,7 +47,7 @@
  • From 9382b34cb545a83ee07d37c6c338b8abffa9aad4 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Thu, 3 Mar 2016 11:52:01 -0800 Subject: [PATCH 143/181] adding sortable hits for saved object finder --- .../public/directives/saved_object_finder.js | 29 ++++++++++++++++++- .../public/partials/saved_object_finder.html | 8 ++--- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/src/ui/public/directives/saved_object_finder.js b/src/ui/public/directives/saved_object_finder.js index 29e70300a4968..bdddb95e135e2 100644 --- a/src/ui/public/directives/saved_object_finder.js +++ b/src/ui/public/directives/saved_object_finder.js @@ -49,8 +49,35 @@ module.directive('savedObjectFinder', function ($location, $injector, kbnUrl, Pr filterResults(); self.isSorted = true; - self.sort = function () { + + self.sortHits = function () { self.isSorted = !self.isSorted; + + if (self.hits.length) { + if (self.isSorted) { + self.hits = self.hits.sort(function (a, b) { + if (a.title > b.title) { + return 1; + } + if (a.title < b.title) { + return -1; + } + // a must be equal to b + return 0; + }); + } else { + self.hits = self.hits.sort(function (a, b) { + if (a.title < b.title) { + return 1; + } + if (a.title > b.title) { + return -1; + } + // a must be equal to b + return 0; + }); + } + } }; /** diff --git a/src/ui/public/partials/saved_object_finder.html b/src/ui/public/partials/saved_object_finder.html index a13014d987c21..40435b89b5704 100644 --- a/src/ui/public/partials/saved_object_finder.html +++ b/src/ui/public/partials/saved_object_finder.html @@ -34,10 +34,10 @@ Name
  • @@ -47,7 +47,7 @@
  • From 90990f09408cd4e8484d8998c99780a75334017e Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Thu, 3 Mar 2016 12:53:59 -0800 Subject: [PATCH 144/181] small refactor --- .../public/directives/saved_object_finder.js | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/ui/public/directives/saved_object_finder.js b/src/ui/public/directives/saved_object_finder.js index bdddb95e135e2..69bc4eb8cdb45 100644 --- a/src/ui/public/directives/saved_object_finder.js +++ b/src/ui/public/directives/saved_object_finder.js @@ -56,24 +56,14 @@ module.directive('savedObjectFinder', function ($location, $injector, kbnUrl, Pr if (self.hits.length) { if (self.isSorted) { self.hits = self.hits.sort(function (a, b) { - if (a.title > b.title) { - return 1; - } - if (a.title < b.title) { - return -1; - } - // a must be equal to b + if (a.title > b.title) return 1; + if (a.title < b.title) return -1; return 0; }); } else { self.hits = self.hits.sort(function (a, b) { - if (a.title < b.title) { - return 1; - } - if (a.title > b.title) { - return -1; - } - // a must be equal to b + if (a.title < b.title) return 1; + if (a.title > b.title) return -1; return 0; }); } From f41c3a87142a1b44c09cfa7b42d8562963031153 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Thu, 3 Mar 2016 13:13:21 -0800 Subject: [PATCH 145/181] refactoring --- .../public/directives/saved_object_finder.js | 24 +++++++++++++------ .../public/partials/saved_object_finder.html | 6 ++--- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/ui/public/directives/saved_object_finder.js b/src/ui/public/directives/saved_object_finder.js index 69bc4eb8cdb45..b4fd7767a2d0e 100644 --- a/src/ui/public/directives/saved_object_finder.js +++ b/src/ui/public/directives/saved_object_finder.js @@ -48,20 +48,30 @@ module.directive('savedObjectFinder', function ($location, $injector, kbnUrl, Pr filterResults(); - self.isSorted = true; + /** + * Boolean that keeps track of whether hits are sorted ascending (true) + * or descending (false) by title + * @type {Boolean} + */ + self.isAscending = true; - self.sortHits = function () { - self.isSorted = !self.isSorted; + /** + * [sortHits description] + * @param {[type]} hits [description] + * @return {[type]} [description] + */ + self.sortHits = function (hits) { + self.isAscending = !self.isAscending; - if (self.hits.length) { - if (self.isSorted) { - self.hits = self.hits.sort(function (a, b) { + if (hits.length) { + if (self.isAscending) { + return hits.sort(function (a, b) { if (a.title > b.title) return 1; if (a.title < b.title) return -1; return 0; }); } else { - self.hits = self.hits.sort(function (a, b) { + return hits.sort(function (a, b) { if (a.title < b.title) return 1; if (a.title > b.title) return -1; return 0; diff --git a/src/ui/public/partials/saved_object_finder.html b/src/ui/public/partials/saved_object_finder.html index 40435b89b5704..7d4ab1c46d879 100644 --- a/src/ui/public/partials/saved_object_finder.html +++ b/src/ui/public/partials/saved_object_finder.html @@ -34,10 +34,10 @@ Name
  • From 5790cb38e00ab5285810c314960b905b3610a0e5 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Thu, 3 Mar 2016 13:16:34 -0800 Subject: [PATCH 146/181] adding comments --- src/ui/public/directives/saved_object_finder.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ui/public/directives/saved_object_finder.js b/src/ui/public/directives/saved_object_finder.js index b4fd7767a2d0e..62208695d892a 100644 --- a/src/ui/public/directives/saved_object_finder.js +++ b/src/ui/public/directives/saved_object_finder.js @@ -56,9 +56,9 @@ module.directive('savedObjectFinder', function ($location, $injector, kbnUrl, Pr self.isAscending = true; /** - * [sortHits description] - * @param {[type]} hits [description] - * @return {[type]} [description] + * Sorts saved object finder hits either ascending or descending + * @param {Array} hits Array of saved finder object hits + * @return {Array} Array sorted either ascending or descending */ self.sortHits = function (hits) { self.isAscending = !self.isAscending; From 66db302c2782c728e6efadeaa47d7cd0574c80d4 Mon Sep 17 00:00:00 2001 From: Khalah Jones-Golden Date: Fri, 4 Mar 2016 18:44:45 -0400 Subject: [PATCH 147/181] [CSS] Cleaned up some CSS and normalized styles --- src/optimize/BaseOptimizer.js | 2 +- .../kibana/public/dashboard/index.html | 8 ++--- .../kibana/public/dashboard/styles/main.less | 7 ---- src/plugins/kibana/public/discover/index.html | 8 ++--- .../kibana/public/discover/styles/main.less | 7 ---- .../public/visualize/editor/editor.html | 6 ++-- .../visualize/editor/styles/_editor.less | 8 ----- .../kibana/public/visualize/styles/main.less | 13 -------- .../directives/app_switcher/app_switcher.less | 13 ++++---- src/ui/public/images/kibana.gif | Bin 3737 -> 0 bytes src/ui/public/styles/base.less | 18 ++++++++-- src/ui/public/styles/control_group.less | 31 ------------------ src/ui/public/styles/navbar.less | 6 ++-- src/ui/public/styles/variables/for-theme.less | 2 ++ src/ui/public/timepicker/toggle.html | 5 ++- src/ui/public/vislib/styles/_tooltip.less | 4 +-- src/ui/public/visualize/visualize.html | 2 +- 17 files changed, 45 insertions(+), 95 deletions(-) delete mode 100644 src/ui/public/images/kibana.gif diff --git a/src/optimize/BaseOptimizer.js b/src/optimize/BaseOptimizer.js index 043334d7eac88..cebbf1425c12a 100644 --- a/src/optimize/BaseOptimizer.js +++ b/src/optimize/BaseOptimizer.js @@ -110,7 +110,7 @@ class BaseOptimizer { { test: /\.json$/, loader: 'json' }, { test: /\.(html|tmpl)$/, loader: 'raw' }, { test: /\.png$/, loader: 'url?limit=10000&name=[path][name].[ext]' }, - { test: /\.(woff|woff2|ttf|eot|svg|ico|gif)(\?|$)/, loader: 'file?name=[path][name].[ext]' }, + { test: /\.(woff|woff2|ttf|eot|svg|ico)(\?|$)/, loader: 'file?name=[path][name].[ext]' }, { test: /[\/\\]src[\/\\](plugins|ui)[\/\\].+\.js$/, loader: `rjs-repack${mapQ}` }, { test: /\.js$/, diff --git a/src/plugins/kibana/public/dashboard/index.html b/src/plugins/kibana/public/dashboard/index.html index f5de97eb5526c..90f37da453304 100644 --- a/src/plugins/kibana/public/dashboard/index.html +++ b/src/plugins/kibana/public/dashboard/index.html @@ -1,13 +1,13 @@
    - -
    - + +
    +
    - From 30dfe7764afa601e07ebca7e2b11ab5b2d6768ea Mon Sep 17 00:00:00 2001 From: Spencer Date: Mon, 7 Mar 2016 12:09:50 -0700 Subject: [PATCH 148/181] Update nav.js --- src/ui/public/chrome/api/nav.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ui/public/chrome/api/nav.js b/src/ui/public/chrome/api/nav.js index 0e100ba1119c0..3e3d7c27a7610 100644 --- a/src/ui/public/chrome/api/nav.js +++ b/src/ui/public/chrome/api/nav.js @@ -1,10 +1,14 @@ import { parse, format } from 'url'; -import { startsWith, isString, find } from 'lodash'; +import { find, startsWith, isString, find } from 'lodash'; export default function (chrome, internals) { chrome.getNavLinks = function () { return internals.nav; }; + + chrome.getActiveNavLink = function () { + return find(internals.nav, { active: true }); + }; chrome.getBasePath = function () { return internals.basePath || ''; From aa36e68d54fbbc23dada44033d9d16bd9dd82be8 Mon Sep 17 00:00:00 2001 From: Rashid Khan Date: Tue, 8 Mar 2016 09:19:24 -0700 Subject: [PATCH 149/181] Change cursor to move button --- src/plugins/kibana/public/dashboard/styles/main.less | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/kibana/public/dashboard/styles/main.less b/src/plugins/kibana/public/dashboard/styles/main.less index 9b685625eb9fd..38ebe07c2e849 100644 --- a/src/plugins/kibana/public/dashboard/styles/main.less +++ b/src/plugins/kibana/public/dashboard/styles/main.less @@ -114,6 +114,10 @@ dashboard-grid { } } + .panel-move:hover { + cursor: move; + } + a { color: @dashboard-panel-heading-link-color; border: none; From 2c3eccf29ad9afaa2452ad4872b4990466b8a46a Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Tue, 8 Mar 2016 10:48:45 -0800 Subject: [PATCH 150/181] removing spaces --- src/plugins/kibana/public/visualize/wizard/step_2.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/plugins/kibana/public/visualize/wizard/step_2.html b/src/plugins/kibana/public/visualize/wizard/step_2.html index 644aded07e766..e25b3f95ae002 100644 --- a/src/plugins/kibana/public/visualize/wizard/step_2.html +++ b/src/plugins/kibana/public/visualize/wizard/step_2.html @@ -1,6 +1,5 @@
    -

    From a New Search

    @@ -21,7 +20,6 @@

    From a New Search

    -

    Or, From a Saved Search

    @@ -32,6 +30,5 @@

    Or, From a Saved Search

    make-url="step2WithSearchUrl">
    -
    From 52cf10a588821c67d5184bb4975db6ceedd87d58 Mon Sep 17 00:00:00 2001 From: Khalah Jones-Golden Date: Tue, 8 Mar 2016 13:52:31 -0500 Subject: [PATCH 151/181] [Chrome] Fixed getActiveTabId --- src/ui/public/chrome/api/nav.js | 6 +----- src/ui/public/chrome/api/tabs.js | 9 ++++++++- src/ui/public/chrome/chrome.html | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/ui/public/chrome/api/nav.js b/src/ui/public/chrome/api/nav.js index 3e3d7c27a7610..0e100ba1119c0 100644 --- a/src/ui/public/chrome/api/nav.js +++ b/src/ui/public/chrome/api/nav.js @@ -1,14 +1,10 @@ import { parse, format } from 'url'; -import { find, startsWith, isString, find } from 'lodash'; +import { startsWith, isString, find } from 'lodash'; export default function (chrome, internals) { chrome.getNavLinks = function () { return internals.nav; }; - - chrome.getActiveNavLink = function () { - return find(internals.nav, { active: true }); - }; chrome.getBasePath = function () { return internals.basePath || ''; diff --git a/src/ui/public/chrome/api/tabs.js b/src/ui/public/chrome/api/tabs.js index 659b00eae30e4..d9a8af290276e 100644 --- a/src/ui/public/chrome/api/tabs.js +++ b/src/ui/public/chrome/api/tabs.js @@ -80,7 +80,14 @@ module.exports = function (chrome, internals) { * @param {any} def - the default value if there isn't any active tab * @return {any} */ - chrome.getActiveTabId = activeGetter('id'); + chrome.getActiveTabId = function () { + const activeAppObj = _.find(internals.nav, { active: true }); + const lastUrl = activeAppObj.lastSubUrl.toLowerCase(); + const numeralPos = lastUrl.indexOf('#/') + 2; + const quesPos = lastUrl.indexOf('?'); + const dirtyUrl = lastUrl.substring(numeralPos, quesPos); + return dirtyUrl.replace('/', '-'); + }; /** * @param {any} def - the default value if there isn't any active tab diff --git a/src/ui/public/chrome/chrome.html b/src/ui/public/chrome/chrome.html index 45cbf36d36caf..4c11f3f67898e 100644 --- a/src/ui/public/chrome/chrome.html +++ b/src/ui/public/chrome/chrome.html @@ -80,7 +80,7 @@
    -
    +
    From 4119554f46e487d6e30ae7a8d23b83f59b28de9d Mon Sep 17 00:00:00 2001 From: Khalah Jones-Golden Date: Wed, 9 Mar 2016 17:08:30 -0400 Subject: [PATCH 152/181] [Chrome] Moved some things around to keep the chrome consistent --- src/ui/public/chrome/api/angular.js | 9 ++++++++- src/ui/public/chrome/api/tabs.js | 13 ------------- src/ui/public/chrome/chrome.html | 2 +- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/ui/public/chrome/api/angular.js b/src/ui/public/chrome/api/angular.js index d6dda29f07eac..1f20017a6402e 100644 --- a/src/ui/public/chrome/api/angular.js +++ b/src/ui/public/chrome/api/angular.js @@ -3,6 +3,8 @@ import modules from 'ui/modules'; module.exports = function (chrome, internals) { + chrome.getFirstPathSegment = _.noop; + chrome.setupAngular = function () { var kibana = modules.get('kibana'); @@ -21,7 +23,12 @@ module.exports = function (chrome, internals) { a.href = chrome.addBasePath('/elasticsearch'); return a.href; }())) - .config(chrome.$setupXsrfRequestInterceptor); + .config(chrome.$setupXsrfRequestInterceptor) + .run(($location) => { + chrome.getFirstPathSegment = () => { + return $location.path().split('/')[1]; + } + }); require('../directives')(chrome, internals); diff --git a/src/ui/public/chrome/api/tabs.js b/src/ui/public/chrome/api/tabs.js index d9a8af290276e..f379030f573c4 100644 --- a/src/ui/public/chrome/api/tabs.js +++ b/src/ui/public/chrome/api/tabs.js @@ -76,19 +76,6 @@ module.exports = function (chrome, internals) { return internals.tabs.getActive(); }; - /** - * @param {any} def - the default value if there isn't any active tab - * @return {any} - */ - chrome.getActiveTabId = function () { - const activeAppObj = _.find(internals.nav, { active: true }); - const lastUrl = activeAppObj.lastSubUrl.toLowerCase(); - const numeralPos = lastUrl.indexOf('#/') + 2; - const quesPos = lastUrl.indexOf('?'); - const dirtyUrl = lastUrl.substring(numeralPos, quesPos); - return dirtyUrl.replace('/', '-'); - }; - /** * @param {any} def - the default value if there isn't any active tab * @return {any} diff --git a/src/ui/public/chrome/chrome.html b/src/ui/public/chrome/chrome.html index 4c11f3f67898e..465b9525c5fdd 100644 --- a/src/ui/public/chrome/chrome.html +++ b/src/ui/public/chrome/chrome.html @@ -80,7 +80,7 @@ -
    +
    From c6432bc8213e5452e31f308d2c9afed1f913619a Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Wed, 9 Mar 2016 18:04:26 -0800 Subject: [PATCH 153/181] refactoring less --- .../kibana/public/visualize/styles/main.less | 140 +----------------- .../public/partials/saved_object_finder.html | 28 ++-- src/ui/public/styles/base.less | 87 ++++++++++- 3 files changed, 101 insertions(+), 154 deletions(-) diff --git a/src/plugins/kibana/public/visualize/styles/main.less b/src/plugins/kibana/public/visualize/styles/main.less index 46949d5f1ff66..fd9d0898e359f 100644 --- a/src/plugins/kibana/public/visualize/styles/main.less +++ b/src/plugins/kibana/public/visualize/styles/main.less @@ -2,36 +2,6 @@ @import (reference) "~bootstrap/less/list-group"; @import (reference) "~ui/styles/list-group-menu"; -@icon-background-color: #416376; - -ul.li-not-striped { - li:nth-child(odd) { - background-color: transparent !important; - } - - li:nth-child(even) { - background-color: transparent !important; - } - - padding: 0; - display: flex; - flex-direction: row; -} - -ul.li-striped { - li { - border: none; - } - - li:nth-child(odd) { - background-color: @kibanaGray6; - } - - li:nth-child(even) { - background-color: @white; - } -} - .step-1-wizard { flex: 1; background-color: @kibanaGray6; @@ -63,11 +33,6 @@ ul.li-striped { } } -.paginate-style { - padding-bottom: 1px; - background-color: @kibanaGray6; -} - .form-text { color: @kibanaBlue2; } @@ -91,112 +56,9 @@ ul.li-striped { } .icon-color { - color: @icon-background-color; -} - -.search-icon { - color: @kibanaGray3; - width: 30px !important; -} - -.table-type-label { - color: @kibanaGray2 !important; - font-weight: normal; -} - -.table-label { - color: @kibanaGray1 !important; - font-weight: normal; -} - -/* saved_object_finder.html striped table colors */ -.table-striped > tbody > tr:nth-of-type(even) { - background-color: @kibanaGray6; -} - -.table-striped > tbody > tr:nth-of-type(odd) { - background-color: @white; -} - -.table > tbody > tr > th, -.table > tbody > tr > td { - border-top: none; -} - -.table > thead > tr { - background-color: @kibanaGray6; -} - -.table > thead > tr > th { - border-bottom: none; -} - -.table > tbody > tr > th.first-cell { - text-align: center; -} - -.saved-object-finder-row { - background-color: @kibanaGray6; - padding: 10px; - display: flex; - flex-direction: row; -} - -.saved-object-finder-input { - float: left !important; - flex: 8; - - span { - padding: 5px 0px; - background-color: @white; - border: none; - } - - input { - border: none; - padding: 5px 0px; - border-radius: 4px; - } -} - -.saved-object-finder-column-manage { - flex: 3; - padding: 5px; - text-align: left; - min-width: 80px; -} - -.saved-object-finder-column { - text-align: center; - padding: 5px; - flex: 1; - min-width: 80px; - - span { - color: @kibanaGray3; - } -} - -.list-header { - padding-top: 0; + color: @kibanaBlue3; } -.list-type { - width: 50px; - text-align: center; -} - -.list-name { - flex: 1; -} - -.list-body { - padding: 8px 15px; -} - -.saved-object-finder-table { - width: 100%; -} /* ****************************** */ @media (min-width: 1280px) { diff --git a/src/ui/public/partials/saved_object_finder.html b/src/ui/public/partials/saved_object_finder.html index 7d4ab1c46d879..bc347c294af93 100644 --- a/src/ui/public/partials/saved_object_finder.html +++ b/src/ui/public/partials/saved_object_finder.html @@ -1,8 +1,8 @@
    -
    -
    - +
    +
    +
    -
    +
    {{finder.hitCount}} of {{finder.hitCount}}
    -
    - +
      -
    • -
        -
      • Type
      • -
      • +
      • +
          +
        • Type
        • +
        • Name
        • -
            -
          • +
              +
            • -
            • +
            • {{hit.title}}

            • diff --git a/src/ui/public/styles/base.less b/src/ui/public/styles/base.less index 1cde6de19d58b..07e1714ea561b 100644 --- a/src/ui/public/styles/base.less +++ b/src/ui/public/styles/base.less @@ -289,14 +289,99 @@ table { //== SavedObjectFinder saved-object-finder { + .row { + background-color: @kibanaGray6; + padding: 10px; + display: flex; + flex-direction: row; + } + .form-group { margin-bottom: 0; + float: left; + flex: 8; + input { - .border-bottom-radius(0); + border: none; + padding: 5px 0px; + border-radius: @border-radius-base; + } + + span { + padding: 5px 0px; + background-color: @white; + border: none; + + i { + color: @kibanaGray3; + width: 15px; + } + } + } + + #finder-hit-count { + text-align: center; + padding: 5px; + flex: 1; + min-width: 80px; + + span { + color: @kibanaGray3; + } + } + + #finder-manage-object { + flex: 3; + padding: 5px; + text-align: left; + min-width: 80px; + } + + ul.li-striped { + li { + border: none; + } + + li:nth-child(odd) { + background-color: @kibanaGray6; + } + + li:nth-child(even) { + background-color: @white; } } .list-group-item { + padding: 8px 15px; + + ul { + padding: 0; + display: flex; + flex-direction: row; + + .paginate-heading { + font-weight: normal; + color: @kibanaGray1; + } + + .finder-type { + width: 50px; + text-align: center; + } + + .finder-name { + flex: 1; + } + + li:nth-child(odd) { + background-color: transparent; + } + + li:nth-child(even) { + background-color: transparent; + } + } + a { i { color: @saved-object-finder-icon-color !important; From 99f48126a0de4bb36c794f6d23e7fe1cb6d0af05 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Wed, 9 Mar 2016 18:38:36 -0800 Subject: [PATCH 154/181] refactoring less files --- .../kibana/public/visualize/styles/main.less | 58 ++++--------------- .../public/visualize/wizard/step_1.html | 43 +++++++------- .../public/visualize/wizard/step_2.html | 58 +++++++++---------- 3 files changed, 58 insertions(+), 101 deletions(-) diff --git a/src/plugins/kibana/public/visualize/styles/main.less b/src/plugins/kibana/public/visualize/styles/main.less index fd9d0898e359f..03dd23f5b9f01 100644 --- a/src/plugins/kibana/public/visualize/styles/main.less +++ b/src/plugins/kibana/public/visualize/styles/main.less @@ -14,33 +14,6 @@ padding-left: 5px; } -.search-label { - padding-left: 5px; -} - -.list-search-item { - border: none; - background-color: @kibanaGray6; - border-radius: 0; - padding: 0; -} - -.saved-search-label { - padding-left: 10px; - - label { - margin-bottom: 0; - } -} - -.form-text { - color: @kibanaBlue2; -} - -.link-color { - color: @kibanaBlue2; -} - .step-2-table { margin-bottom: 0; border-bottom: 1px solid @kibanaGray6; @@ -55,31 +28,24 @@ color: @kibanaBlue2; } -.icon-color { - color: @kibanaBlue3; -} - - /* ****************************** */ @media (min-width: 1280px) { .wizard-vis-container { padding: 0px; + display: flex; - .wizard { + .wizard-vis-column { + flex: 1; display: flex; + flex-direction: column; + } - .wizard-vis-column { - flex: 1; - display: flex; - flex-direction: column; - } - - .wizard-vis-column.first { - padding-right: 5px; - } + .wizard-vis-column.first { + padding-right: 5px; } } } +/* ****************************** */ .vis-wizard { margin-right: 0px; @@ -93,12 +59,8 @@ } } -.wizard-vis-types { - flex: 1; - background-color: @kibanaGray6; -} - .wizard-vis-type { + flex: 1; .list-group-item(); .list-group-menu .list-group-menu-item(); @@ -117,6 +79,7 @@ margin-right: @padding-base-horizontal; font-size: 1.5em; text-align: center; + color: @saved-object-finder-icon-color; } h4 { @@ -130,5 +93,4 @@ } } - @import "../editor/styles/_editor.less"; diff --git a/src/plugins/kibana/public/visualize/wizard/step_1.html b/src/plugins/kibana/public/visualize/wizard/step_1.html index ebd8d5ec64589..9fc7e03d48dda 100644 --- a/src/plugins/kibana/public/visualize/wizard/step_1.html +++ b/src/plugins/kibana/public/visualize/wizard/step_1.html @@ -1,30 +1,27 @@
              -
              -
              -

              Create New Visualization

              -
              -
              + -
              -

              Or, Open a Saved Visualization

              - - +

              {{type.description}}

              +
              + +
              +

              Or, Open a Saved Visualization

              + + +
              diff --git a/src/plugins/kibana/public/visualize/wizard/step_2.html b/src/plugins/kibana/public/visualize/wizard/step_2.html index e25b3f95ae002..09f5c02bca9c5 100644 --- a/src/plugins/kibana/public/visualize/wizard/step_2.html +++ b/src/plugins/kibana/public/visualize/wizard/step_2.html @@ -1,34 +1,32 @@
              -
              -
              -

              From a New Search

              - -
              - - - - - - - - - - - -
              Index Patterns
              - {{pattern}} -
              -
              -
              -
              -

              Or, From a Saved Search

              - - - +
              +

              From a New Search

              + +
              + + + + + + + + + + + +
              Index Patterns
              + {{pattern}} +
              +
              +

              Or, From a Saved Search

              + + + +
              From 7af5419f72774fe878d1ea14af0e278d469b6da8 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Thu, 10 Mar 2016 09:23:04 -0800 Subject: [PATCH 155/181] refactoring less files --- .../kibana/public/visualize/styles/main.less | 109 ++++++++---------- .../public/visualize/wizard/step_1.html | 21 ++-- .../public/visualize/wizard/step_2.html | 12 +- 3 files changed, 66 insertions(+), 76 deletions(-) diff --git a/src/plugins/kibana/public/visualize/styles/main.less b/src/plugins/kibana/public/visualize/styles/main.less index 03dd23f5b9f01..eea4f643e890c 100644 --- a/src/plugins/kibana/public/visualize/styles/main.less +++ b/src/plugins/kibana/public/visualize/styles/main.less @@ -2,17 +2,6 @@ @import (reference) "~bootstrap/less/list-group"; @import (reference) "~ui/styles/list-group-menu"; -.step-1-wizard { - flex: 1; - background-color: @kibanaGray6; -} - -.step-2-list { - border: none; - background-color: @kibanaGray6; - border-radius: 0; - padding-left: 5px; -} .step-2-table { margin-bottom: 0; @@ -28,69 +17,73 @@ color: @kibanaBlue2; } -/* ****************************** */ -@media (min-width: 1280px) { - .wizard-vis-container { - padding: 0px; - display: flex; +.vis-wizard { + margin-right: 0px; + margin-left: 0px; + padding-left: 0px; + padding-right: 0px; - .wizard-vis-column { - flex: 1; + @media (min-width: 1280px) { + .wizard { + padding: 0px; display: flex; - flex-direction: column; - } - .wizard-vis-column.first { - padding-right: 5px; + :first-child { + padding-right: 5px; + } + + .wizard-column { + flex: 1; + display: flex; + flex-direction: column; + } } } -} -/* ****************************** */ -.vis-wizard { - margin-right: 0px; - margin-left: 0px; - padding-left: 0px; - padding-right: 0px; + .wizard-row { + flex: 1; + background-color: @kibanaGray6; + } h3 { margin-top: 45px; padding: 0px 15px; } -} -.wizard-vis-type { - flex: 1; - .list-group-item(); - .list-group-menu .list-group-menu-item(); - - border: none; - border-radius: 0; - background-color: @kibanaGray6; - - &-heading { - flex: 0 0 200px; - display: flex; - align-items: center; - font-size: 1.2em; - - .fa { - flex: 0 0 auto; - margin-right: @padding-base-horizontal; - font-size: 1.5em; - text-align: center; - color: @saved-object-finder-icon-color; - } + .wizard-type { + flex: 1; + .list-group-item(); + .list-group-menu .list-group-menu-item(); + + border: none; + border-radius: 0; + background-color: @kibanaGray6; - h4 { - flex: 1 0 auto; + &-heading { + flex: 0 0 200px; + display: flex; + align-items: center; + font-size: 1.2em; + + .fa { + flex: 0 0 auto; + margin-right: @padding-base-horizontal; + font-size: 1.5em; + text-align: center; + color: @saved-object-finder-icon-color; + } + + h4 { + flex: 1 0 auto; + } } - } - &-description { - flex: 1 1 auto; - color: @wizard-vis-type-description-color; + &-description { + flex: 1 1 auto; + color: @wizard-vis-type-description-color; + } } } + @import "../editor/styles/_editor.less"; diff --git a/src/plugins/kibana/public/visualize/wizard/step_1.html b/src/plugins/kibana/public/visualize/wizard/step_1.html index 9fc7e03d48dda..0a982eb5739db 100644 --- a/src/plugins/kibana/public/visualize/wizard/step_1.html +++ b/src/plugins/kibana/public/visualize/wizard/step_1.html @@ -1,27 +1,22 @@ -
              -
              +
              +

              Create New Visualization

              -
              - - - - -
              +

              Or, Open a Saved Visualization

              + class="wizard-row">
              diff --git a/src/plugins/kibana/public/visualize/wizard/step_2.html b/src/plugins/kibana/public/visualize/wizard/step_2.html index 09f5c02bca9c5..8c2b65c3787b1 100644 --- a/src/plugins/kibana/public/visualize/wizard/step_2.html +++ b/src/plugins/kibana/public/visualize/wizard/step_2.html @@ -1,8 +1,9 @@ -
              -
              +
              +

              From a New Search

              -
              +
              + @@ -17,15 +18,16 @@

              From a New Search

              +
              -
              +

              Or, From a Saved Search

              From ba614855d40bfe48a9375c8e945b4d9e27648a01 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Thu, 10 Mar 2016 11:35:35 -0800 Subject: [PATCH 156/181] refactoring less and html files --- .../kibana/public/visualize/styles/main.less | 71 +++++++++++-------- .../public/visualize/wizard/step_2.html | 24 +++---- .../public/partials/saved_object_finder.html | 3 +- 3 files changed, 51 insertions(+), 47 deletions(-) diff --git a/src/plugins/kibana/public/visualize/styles/main.less b/src/plugins/kibana/public/visualize/styles/main.less index eea4f643e890c..cdb1cdb770ed9 100644 --- a/src/plugins/kibana/public/visualize/styles/main.less +++ b/src/plugins/kibana/public/visualize/styles/main.less @@ -2,54 +2,66 @@ @import (reference) "~bootstrap/less/list-group"; @import (reference) "~ui/styles/list-group-menu"; - -.step-2-table { - margin-bottom: 0; - border-bottom: 1px solid @kibanaGray6; -} - -.step-2-table-header { - padding: 16px !important; -} - -.index-link { - text-decoration: @link-hover-decoration !important; - color: @kibanaBlue2; -} - .vis-wizard { - margin-right: 0px; - margin-left: 0px; - padding-left: 0px; - padding-right: 0px; + margin-right: 0; + margin-left: 0; + padding-left: 0; + padding-right: 0; @media (min-width: 1280px) { .wizard { - padding: 0px; + padding: 0; display: flex; - :first-child { - padding-right: 5px; - } - .wizard-column { flex: 1; display: flex; flex-direction: column; + padding: 0px 2.5px; + + .wizard-row { + flex: 1; + background-color: @kibanaGray6; + } } } } - .wizard-row { - flex: 1; - background-color: @kibanaGray6; - } - h3 { margin-top: 45px; padding: 0px 15px; } + .wizard-row { + .panel { + margin-bottom: 0; + border: none; + } + + .panel-default > .panel-heading { + background-color: @kibanaGray6; + } + + .list-group { + margin-bottom: 0; + + .list-group-item { + border-radius: 0; + border: none; + } + } + + .striped { + li:nth-child(odd) { + background-color: @white; + } + + li:nth-child(even) { + background-color: @kibanaGray6; + } + } + } + .wizard-type { flex: 1; .list-group-item(); @@ -85,5 +97,4 @@ } } - @import "../editor/styles/_editor.less"; diff --git a/src/plugins/kibana/public/visualize/wizard/step_2.html b/src/plugins/kibana/public/visualize/wizard/step_2.html index 8c2b65c3787b1..960bdc9f869b0 100644 --- a/src/plugins/kibana/public/visualize/wizard/step_2.html +++ b/src/plugins/kibana/public/visualize/wizard/step_2.html @@ -3,22 +3,14 @@

              From a New Search

              - - - - - - - - - - - - -
              Index Patterns
              - {{pattern}} -
              - +
              +
              Index Patterns
              +
              +
              diff --git a/src/ui/public/partials/saved_object_finder.html b/src/ui/public/partials/saved_object_finder.html index bc347c294af93..4273fdcf52482 100644 --- a/src/ui/public/partials/saved_object_finder.html +++ b/src/ui/public/partials/saved_object_finder.html @@ -64,12 +64,13 @@
            -
          • +
          • +
          From 344a444ce464d0346947dd46c3742bdc59539d2e Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Thu, 10 Mar 2016 12:45:13 -0800 Subject: [PATCH 157/181] using text-transform in favor or custom capitalize filter --- src/ui/public/filters/__tests__/capitalize.js | 72 ------------------- src/ui/public/filters/capitalize.js | 57 --------------- .../public/partials/saved_object_finder.html | 5 +- src/ui/public/styles/base.less | 13 ++-- 4 files changed, 11 insertions(+), 136 deletions(-) delete mode 100644 src/ui/public/filters/__tests__/capitalize.js delete mode 100644 src/ui/public/filters/capitalize.js diff --git a/src/ui/public/filters/__tests__/capitalize.js b/src/ui/public/filters/__tests__/capitalize.js deleted file mode 100644 index 9d48ca662e7f7..0000000000000 --- a/src/ui/public/filters/__tests__/capitalize.js +++ /dev/null @@ -1,72 +0,0 @@ -import angular from 'angular'; -import _ from 'lodash'; -import expect from 'expect.js'; -import ngMock from 'ngMock'; -import 'ui/filters/capitalize'; - -let filter; - -const titles = [ - 'capitalize', - 'saved searches', - 'an awesome visualization', - 'saved searches of the tenth degree', - 'the title' -]; - -const notAString = 10; - -const init = function (expandable) { - // Load the application - ngMock.module('kibana'); - - // Create the scope - ngMock.inject(function ($filter) { - filter = $filter('capitalize'); - }); -}; - -describe('capitalize filter', function () { - - beforeEach(function () { - init(); - }); - - it('should have a capitalize filter', function () { - expect(filter).to.not.be(null); - }); - - it('should simply return non-string types as is', function () { - expect(filter(notAString)).to.be(notAString); - }); - - titles.forEach((title) => { - const nonCapitalizedWords = filter.nonCapitalizedWords(); - const titleString = filter(title); - const splitTitleString = titleString.split(' '); - - it('should always capitalize the first letter of the first word of a title', function () { - expect(titleString.charAt(0)).to.be(title.chartAt(0).toUpperCase()); - }); - - it('should capitalize the first letter of a qualified string', function () { - splitTitleString.forEach((word) => { - if (_.indexOf(nonCapitalizedWords, word) === -1) { - expect(word.charAt(0)).to.be(word.charAt(0).toUpperCase()); - } - }); - }); - - it('should not capitalize certain words', function () { - splitTitleString.forEach((word) => { - if (_.indexOf(nonCapitalizedWords, word) !== -1) { - expect(word.charAt(0)).to.be(word.charAt(0).toLowerCase()); - } - }); - }); - - it('should not be a trailing space at the end of words', function () { - expect(titleString.charAt(titleString.length - 1)).to.not.be(' '); - }); - }); -}); diff --git a/src/ui/public/filters/capitalize.js b/src/ui/public/filters/capitalize.js deleted file mode 100644 index 680ad6346fc40..0000000000000 --- a/src/ui/public/filters/capitalize.js +++ /dev/null @@ -1,57 +0,0 @@ -import _ from 'lodash'; -import uiModules from 'ui/modules'; -// Capitalize the first letter of titlized words - -uiModules -.get('kibana') -.filter('capitalize', function () { - let nonCapitalizedWords = ['a', 'an', 'the', 'and', 'but', 'or', 'for', 'nor', 'etc', 'on', 'at', 'to', 'from', 'by']; - - function titlize(token) { - if (_.isString(token)) { - let words = token.split(' '); - let str = ''; - - words.forEach((word, index) => { - // Do not capitalize non-capitalized words and always - // capitalize the first letter of the first word in a title. - if (_.indexOf(nonCapitalizedWords, word) !== -1 && index !== 0) { - str = str + word + ' '; - } else { - str = str + word.charAt(0).toUpperCase() + word.slice(1) + ' '; - } - - if (index === words.length - 1) { - str = str.trim(); - } - }); - - return str; - } - - return token; - }; - - function isAllStrings(value) { - if (_.isString(value)) return true; - - if (_.isArray(value)) { - return value.every((item) => { - return _.isString(item); - }); - } - - return false; - } - - titlize.nonCapitalizedWords = function (v) { - if (!arguments.length) return nonCapitalizedWords; - if (!isAllStrings(v)) { - throw new Error('titlize.nonCapitalizedWords expects a string or array of strings as input'); - } - nonCapitalizedWords = _.isArray(v) ? v : nonCapitalizedWords.push(v); - return titlize; - }; - - return titlize; -}); diff --git a/src/ui/public/partials/saved_object_finder.html b/src/ui/public/partials/saved_object_finder.html index 4273fdcf52482..2402b9926c4ac 100644 --- a/src/ui/public/partials/saved_object_finder.html +++ b/src/ui/public/partials/saved_object_finder.html @@ -8,9 +8,10 @@
    @@ -18,7 +19,7 @@ {{finder.hitCount}} of {{finder.hitCount}}
    diff --git a/src/ui/public/styles/base.less b/src/ui/public/styles/base.less index 07e1714ea561b..3d3ecf8a7c845 100644 --- a/src/ui/public/styles/base.less +++ b/src/ui/public/styles/base.less @@ -305,6 +305,7 @@ saved-object-finder { border: none; padding: 5px 0px; border-radius: @border-radius-base; + text-transform: capitalize; } span { @@ -319,11 +320,14 @@ saved-object-finder { } } - #finder-hit-count { - text-align: center; + #finder-hit-count, #finder-manage-object { + min-width: 80px; padding: 5px; + } + + #finder-hit-count { flex: 1; - min-width: 80px; + text-align: center; span { color: @kibanaGray3; @@ -332,9 +336,8 @@ saved-object-finder { #finder-manage-object { flex: 3; - padding: 5px; text-align: left; - min-width: 80px; + text-transform: capitalize; } ul.li-striped { From cabf78585f0ab0d79427e17798aff69e43097619 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Thu, 10 Mar 2016 13:01:41 -0800 Subject: [PATCH 158/181] reverting a small change --- src/ui/public/paginated_table/paginated_table.html | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ui/public/paginated_table/paginated_table.html b/src/ui/public/paginated_table/paginated_table.html index d40155c0d1578..e8a9dd403647f 100644 --- a/src/ui/public/paginated_table/paginated_table.html +++ b/src/ui/public/paginated_table/paginated_table.html @@ -33,4 +33,5 @@
    + From 6ff4e0df76e6791df9840e30e9a112de603adb37 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Thu, 10 Mar 2016 15:16:49 -0800 Subject: [PATCH 159/181] changes addressing reviewer comments --- .../kibana/public/visualize/styles/main.less | 4 ++-- .../kibana/public/visualize/wizard/step_2.html | 2 +- .../kibana/public/visualize/wizard/wizard.js | 2 +- .../public/directives/saved_object_finder.js | 18 +----------------- .../paginated_table/paginated_table.html | 1 - .../public/partials/saved_object_finder.html | 1 - 6 files changed, 5 insertions(+), 23 deletions(-) diff --git a/src/plugins/kibana/public/visualize/styles/main.less b/src/plugins/kibana/public/visualize/styles/main.less index cdb1cdb770ed9..ccb1169e698cf 100644 --- a/src/plugins/kibana/public/visualize/styles/main.less +++ b/src/plugins/kibana/public/visualize/styles/main.less @@ -8,7 +8,7 @@ padding-left: 0; padding-right: 0; - @media (min-width: 1280px) { + @media (min-width: @screen-lg) { .wizard { padding: 0; display: flex; @@ -28,7 +28,7 @@ } h3 { - margin-top: 45px; + margin-top: 35px; padding: 0px 15px; } diff --git a/src/plugins/kibana/public/visualize/wizard/step_2.html b/src/plugins/kibana/public/visualize/wizard/step_2.html index 960bdc9f869b0..7ce714e1dcbdc 100644 --- a/src/plugins/kibana/public/visualize/wizard/step_2.html +++ b/src/plugins/kibana/public/visualize/wizard/step_2.html @@ -7,7 +7,7 @@

    From a New Search

    Index Patterns
    diff --git a/src/plugins/kibana/public/visualize/wizard/wizard.js b/src/plugins/kibana/public/visualize/wizard/wizard.js index 5ff8043251a0d..516d3261d098f 100644 --- a/src/plugins/kibana/public/visualize/wizard/wizard.js +++ b/src/plugins/kibana/public/visualize/wizard/wizard.js @@ -7,7 +7,7 @@ import RegistryVisTypesProvider from 'ui/registry/vis_types'; import uiModules from 'ui/modules'; -var templateStep = function (num, txt) { +const templateStep = function (num, txt) { return '
    ' + txt + '
    '; }; diff --git a/src/ui/public/directives/saved_object_finder.js b/src/ui/public/directives/saved_object_finder.js index 62208695d892a..1411cb6f1b5a2 100644 --- a/src/ui/public/directives/saved_object_finder.js +++ b/src/ui/public/directives/saved_object_finder.js @@ -61,23 +61,7 @@ module.directive('savedObjectFinder', function ($location, $injector, kbnUrl, Pr * @return {Array} Array sorted either ascending or descending */ self.sortHits = function (hits) { - self.isAscending = !self.isAscending; - - if (hits.length) { - if (self.isAscending) { - return hits.sort(function (a, b) { - if (a.title > b.title) return 1; - if (a.title < b.title) return -1; - return 0; - }); - } else { - return hits.sort(function (a, b) { - if (a.title < b.title) return 1; - if (a.title > b.title) return -1; - return 0; - }); - } - } + return self.isAscending ? _.sortBy(hits, 'title') : _.sortBy(hits, 'title').reverse(); }; /** diff --git a/src/ui/public/paginated_table/paginated_table.html b/src/ui/public/paginated_table/paginated_table.html index e8a9dd403647f..d40155c0d1578 100644 --- a/src/ui/public/paginated_table/paginated_table.html +++ b/src/ui/public/paginated_table/paginated_table.html @@ -33,5 +33,4 @@
    - diff --git a/src/ui/public/partials/saved_object_finder.html b/src/ui/public/partials/saved_object_finder.html index 2402b9926c4ac..1b4d5f618920f 100644 --- a/src/ui/public/partials/saved_object_finder.html +++ b/src/ui/public/partials/saved_object_finder.html @@ -11,7 +11,6 @@ ng-attr-placeholder="{{finder.properties.nouns}} Filter..." ng-keydown="finder.filterKeyDown($event)" class="form-control" - style="text-transform: capitalize" name="filter" type="text" /> From aee024b8e84db759f22a3fb05879d9bb5cdfa953 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Fri, 11 Mar 2016 13:01:11 -0800 Subject: [PATCH 160/181] addressing reviewer comments --- .../public/visualize/wizard/step_2.html | 2 +- .../public/directives/saved_object_finder.js | 3 +- .../public/partials/saved_object_finder.html | 44 ++++------- src/ui/public/styles/base.less | 75 ++++++++----------- 4 files changed, 49 insertions(+), 75 deletions(-) diff --git a/src/plugins/kibana/public/visualize/wizard/step_2.html b/src/plugins/kibana/public/visualize/wizard/step_2.html index 7ce714e1dcbdc..e8225923f3e3d 100644 --- a/src/plugins/kibana/public/visualize/wizard/step_2.html +++ b/src/plugins/kibana/public/visualize/wizard/step_2.html @@ -8,7 +8,7 @@

    From a New Search

    diff --git a/src/ui/public/directives/saved_object_finder.js b/src/ui/public/directives/saved_object_finder.js index 1411cb6f1b5a2..4b1a02e1624bf 100644 --- a/src/ui/public/directives/saved_object_finder.js +++ b/src/ui/public/directives/saved_object_finder.js @@ -61,7 +61,8 @@ module.directive('savedObjectFinder', function ($location, $injector, kbnUrl, Pr * @return {Array} Array sorted either ascending or descending */ self.sortHits = function (hits) { - return self.isAscending ? _.sortBy(hits, 'title') : _.sortBy(hits, 'title').reverse(); + self.isAscending = !self.isAscending; + self.hits = self.isAscending ? _.sortBy(hits, 'title') : _.sortBy(hits, 'title').reverse(); }; /** diff --git a/src/ui/public/partials/saved_object_finder.html b/src/ui/public/partials/saved_object_finder.html index 1b4d5f618920f..e5615e3bd5c31 100644 --- a/src/ui/public/partials/saved_object_finder.html +++ b/src/ui/public/partials/saved_object_finder.html @@ -12,36 +12,30 @@ ng-keydown="finder.filterKeyDown($event)" class="form-control" name="filter" - type="text" /> + type="text" + autocomplete="off" /> -
    +
    {{finder.hitCount}} of {{finder.hitCount}}
    -
    -
      +
      • -
          -
        • Type
        • -
        • - Name - - -
        • -
        + + Name + + +
      • -
          -
        • - -
        • -
        • - {{hit.title}} -

          -
        • -
        + + {{hit.title}} +

      • diff --git a/src/ui/public/styles/base.less b/src/ui/public/styles/base.less index 3d3ecf8a7c845..ec5f9d7de3e9d 100644 --- a/src/ui/public/styles/base.less +++ b/src/ui/public/styles/base.less @@ -320,12 +320,12 @@ saved-object-finder { } } - #finder-hit-count, #finder-manage-object { + .finder-hit-count, .finder-manage-object { min-width: 80px; padding: 5px; } - #finder-hit-count { + .finder-hit-count { flex: 1; text-align: center; @@ -334,7 +334,7 @@ saved-object-finder { } } - #finder-manage-object { + .finder-manage-object { flex: 3; text-align: left; text-transform: capitalize; @@ -345,6 +345,10 @@ saved-object-finder { border: none; } + li.list-group-item-menu:hover { + background-color: transparent; + } + li:nth-child(odd) { background-color: @kibanaGray6; } @@ -352,53 +356,41 @@ saved-object-finder { li:nth-child(even) { background-color: @white; } - } - .list-group-item { - padding: 8px 15px; + .paginate-heading { + font-weight: normal; + color: @kibanaGray1; + } - ul { - padding: 0; - display: flex; - flex-direction: row; + .list-group-item { + padding: 8px 15px; - .paginate-heading { - font-weight: normal; - color: @kibanaGray1; - } + ul { + padding: 0; + display: flex; + flex-direction: row; - .finder-type { - width: 50px; - text-align: center; + .finder-type { + margin-right: 10px; + } } - .finder-name { - flex: 1; - } + a { + i { + color: @saved-object-finder-icon-color !important; + margin-right: 10px; + } - li:nth-child(odd) { - background-color: transparent; + color: @saved-object-finder-link-color !important; } - li:nth-child(even) { - background-color: transparent; + &:first-child { + .border-top-radius(0) !important; } - } - a { - i { - color: @saved-object-finder-icon-color !important; + &.list-group-no-results p { + margin-bottom: 0 !important; } - - color: @saved-object-finder-link-color !important; - } - - &:first-child { - .border-top-radius(0) !important; - } - - &.list-group-no-results p { - margin-bottom: 0 !important; } } @@ -412,13 +404,6 @@ saved-object-finder { } } - span.finder-hit-count { - position: absolute; - right: 10px; - top: 25px; - font-size: 0.85em; - } - .finder-options { max-height: 300px; overflow: auto; From 18f9f787bee8ad4b1917655a5bad561ee69ad79e Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Fri, 11 Mar 2016 14:12:29 -0800 Subject: [PATCH 161/181] add kbn-href --- src/plugins/kibana/public/visualize/wizard/step_2.html | 2 +- src/plugins/kibana/public/visualize/wizard/wizard.js | 4 ++-- src/ui/public/styles/base.less | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/plugins/kibana/public/visualize/wizard/step_2.html b/src/plugins/kibana/public/visualize/wizard/step_2.html index e8225923f3e3d..b04103312214a 100644 --- a/src/plugins/kibana/public/visualize/wizard/step_2.html +++ b/src/plugins/kibana/public/visualize/wizard/step_2.html @@ -8,7 +8,7 @@

        From a New Search

        diff --git a/src/plugins/kibana/public/visualize/wizard/wizard.js b/src/plugins/kibana/public/visualize/wizard/wizard.js index 516d3261d098f..883a880957747 100644 --- a/src/plugins/kibana/public/visualize/wizard/wizard.js +++ b/src/plugins/kibana/public/visualize/wizard/wizard.js @@ -56,8 +56,8 @@ module.controller('VisualizeWizardStep2', function ($route, $scope, $location, t list: $route.current.locals.indexPatternIds }; - $scope.goToUrl = function (pattern) { + $scope.makeUrl = function (pattern) { if (!pattern) return; - kbnUrl.change('/visualize/create?type={{type}}&indexPattern={{pattern}}', {type: type, pattern: pattern}); + return `/visualize/create?type=${type}&indexPattern=${pattern}`; }; }); diff --git a/src/ui/public/styles/base.less b/src/ui/public/styles/base.less index ec5f9d7de3e9d..387c723aff43b 100644 --- a/src/ui/public/styles/base.less +++ b/src/ui/public/styles/base.less @@ -340,15 +340,15 @@ saved-object-finder { text-transform: capitalize; } + .list-group-item-menu:hover { + background-color: transparent; + } + ul.li-striped { li { border: none; } - li.list-group-item-menu:hover { - background-color: transparent; - } - li:nth-child(odd) { background-color: @kibanaGray6; } From c7a412e0813e7ea1b3fd0ef40822a8e4fff57f6e Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Fri, 11 Mar 2016 15:05:04 -0800 Subject: [PATCH 162/181] fixing padding --- src/ui/public/partials/saved_object_finder.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/public/partials/saved_object_finder.html b/src/ui/public/partials/saved_object_finder.html index e5615e3bd5c31..e5eda0c18cdf8 100644 --- a/src/ui/public/partials/saved_object_finder.html +++ b/src/ui/public/partials/saved_object_finder.html @@ -1,7 +1,7 @@
        -
        +
        From 6acffc6ead79d0212fa1252ad4eb8e1a69e7c882 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Mon, 14 Mar 2016 11:43:10 -0700 Subject: [PATCH 163/181] aligning kibana logo with navbar --- src/plugins/kibana/public/settings/styles/main.less | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/plugins/kibana/public/settings/styles/main.less b/src/plugins/kibana/public/settings/styles/main.less index ef10f7317faad..f89c27b2a9034 100644 --- a/src/plugins/kibana/public/settings/styles/main.less +++ b/src/plugins/kibana/public/settings/styles/main.less @@ -11,6 +11,14 @@ kbn-settings-objects-view { display: block; } +nav.navbar { + height: 70px; +} + +div.container-fluid { + padding-top: 33px; +} + .settings-nav { text-transform: capitalize; } From aecd79a7143d3d1f13266d5122537e17dd424056 Mon Sep 17 00:00:00 2001 From: Khalah Jones-Golden Date: Mon, 14 Mar 2016 15:02:26 -0400 Subject: [PATCH 164/181] [Chrome] Added a breadcrumbs method --- .gitignore | 1 + src/ui/public/chrome/api/angular.js | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 56b859e0c6c38..7928baf548f60 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .aws-config.json +.ackrc .DS_Store .node_binaries node_modules diff --git a/src/ui/public/chrome/api/angular.js b/src/ui/public/chrome/api/angular.js index 1f20017a6402e..aeeafca53b2ec 100644 --- a/src/ui/public/chrome/api/angular.js +++ b/src/ui/public/chrome/api/angular.js @@ -4,6 +4,7 @@ import modules from 'ui/modules'; module.exports = function (chrome, internals) { chrome.getFirstPathSegment = _.noop; + chrome.getBreadcrumbs = _.noop; chrome.setupAngular = function () { var kibana = modules.get('kibana'); @@ -25,9 +26,14 @@ module.exports = function (chrome, internals) { }())) .config(chrome.$setupXsrfRequestInterceptor) .run(($location) => { + debugger; chrome.getFirstPathSegment = () => { return $location.path().split('/')[1]; - } + }; + + chrome.getBreadcrumbs = () => { + return $location.path().split('/').slice(1); + }; }); require('../directives')(chrome, internals); From bfe4d8922c8bf86d1383ba11ab4e3f233cb4103c Mon Sep 17 00:00:00 2001 From: Khalah Jones-Golden Date: Mon, 14 Mar 2016 15:08:24 -0400 Subject: [PATCH 165/181] [Tests] Trying to test the angular api --- src/ui/public/chrome/api/__tests__/angular.js | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/ui/public/chrome/api/__tests__/angular.js diff --git a/src/ui/public/chrome/api/__tests__/angular.js b/src/ui/public/chrome/api/__tests__/angular.js new file mode 100644 index 0000000000000..ffd3ddcb35141 --- /dev/null +++ b/src/ui/public/chrome/api/__tests__/angular.js @@ -0,0 +1,20 @@ +import expect from 'expect.js'; + +import kbnAngular from '../angular'; +import TabFakeStore from '../../__tests__/_TabFakeStore'; +import { noop } from 'lodash'; + +describe('Chrome API :: Angular', () => { + describe('location helper methods', () => { + it('should return the sub app based on the url', () => { + const chrome = { + getInjected: noop, + addBasePath: noop + }; + kbnAngular(chrome, {}); + debugger; + }); + it('should return breadcrumbs based on the url', () => { + }); + }); +}); From 3bfc0888a51c807b0e90f4dfd705994ad880545b Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Mon, 14 Mar 2016 15:40:06 -0700 Subject: [PATCH 166/181] lining up visualize sidebar with side nav bar as well as fixing hovering issues --- .../visualize/editor/styles/_editor.less | 9 +++++- .../directives/app_switcher/app_switcher.less | 14 -------- src/ui/public/styles/base.less | 32 +++++++++---------- src/ui/public/styles/variables/for-theme.less | 14 ++++++++ 4 files changed, 38 insertions(+), 31 deletions(-) diff --git a/src/plugins/kibana/public/visualize/editor/styles/_editor.less b/src/plugins/kibana/public/visualize/editor/styles/_editor.less index 7936b8a0d24ee..2046483b45d63 100644 --- a/src/plugins/kibana/public/visualize/editor/styles/_editor.less +++ b/src/plugins/kibana/public/visualize/editor/styles/_editor.less @@ -26,13 +26,20 @@ &:before { display: none; } + &:hover { + background-color: transparent; + } } + > li { > a { padding: 4px 0; margin: 0 10px; color: @kibanaGray2; } + > a:hover { + border-bottom: 2px solid @kibanaGray2; + } } .danger { @@ -104,7 +111,7 @@ .index-pattern, nav { - min-height: 34px; + min-height: @app-icon-height; border-radius: 0px; } diff --git a/src/ui/public/chrome/directives/app_switcher/app_switcher.less b/src/ui/public/chrome/directives/app_switcher/app_switcher.less index 2dcebccf11f7a..d085c25e0e6eb 100644 --- a/src/ui/public/chrome/directives/app_switcher/app_switcher.less +++ b/src/ui/public/chrome/directives/app_switcher/app_switcher.less @@ -1,20 +1,6 @@ @import (reference) "~ui/styles/mixins"; @import (reference) "~ui/styles/variables"; -// as - App Switcher -@as-open-width: 160px; -@as-closed-width: 53px; -@app-icon-height: 38px; -@app-line-height: 24px; -@transition-time: .35s; -@transition-delay: .25s; -@app-links-wrapper-background: #3caed2; -@app-links-active-background: lighten(@app-links-wrapper-background, 7.5%); - -@firstLinkColor: #E4BB51; -@secondLinkColor: #8AC336; -@thirdLinkColor: #59C6C5; - body { overflow-x: hidden; } .app-links-wrapper { diff --git a/src/ui/public/styles/base.less b/src/ui/public/styles/base.less index 387c723aff43b..d5ca63066222b 100644 --- a/src/ui/public/styles/base.less +++ b/src/ui/public/styles/base.less @@ -318,26 +318,26 @@ saved-object-finder { width: 15px; } } - } - - .finder-hit-count, .finder-manage-object { - min-width: 80px; - padding: 5px; - } + + .finder-hit-count, .finder-manage-object { + min-width: 80px; + padding: 5px; + } - .finder-hit-count { - flex: 1; - text-align: center; + .finder-hit-count { + flex: 1; + text-align: center; - span { - color: @kibanaGray3; + span { + color: @kibanaGray3; + } } - } - .finder-manage-object { - flex: 3; - text-align: left; - text-transform: capitalize; + .finder-manage-object { + flex: 3; + text-align: left; + text-transform: capitalize; + } } .list-group-item-menu:hover { diff --git a/src/ui/public/styles/variables/for-theme.less b/src/ui/public/styles/variables/for-theme.less index 5d2e026efe6e9..6aab3d69c557b 100644 --- a/src/ui/public/styles/variables/for-theme.less +++ b/src/ui/public/styles/variables/for-theme.less @@ -319,3 +319,17 @@ // Saved Object Finder ========================================================= @saved-object-finder-link-color: @link-color; @saved-object-finder-icon-color: darken(@saved-object-finder-link-color, 10%); + +// App-switcher ================================================================ +@as-open-width: 160px; +@as-closed-width: 53px; +@app-icon-height: 38px; +@app-line-height: 24px; +@transition-time: .35s; +@transition-delay: .25s; +@app-links-wrapper-background: #3caed2; +@app-links-active-background: lighten(@app-links-wrapper-background, 7.5%); + +@firstLinkColor: #E4BB51; +@secondLinkColor: #8AC336; +@thirdLinkColor: #59C6C5; From f4ee8e31c495b52e47531ab8528fdee3b3f48804 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Tue, 15 Mar 2016 11:09:58 -0700 Subject: [PATCH 167/181] fixing issue with url query string --- src/plugins/kibana/public/visualize/wizard/wizard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/kibana/public/visualize/wizard/wizard.js b/src/plugins/kibana/public/visualize/wizard/wizard.js index 883a880957747..e59a1bef78484 100644 --- a/src/plugins/kibana/public/visualize/wizard/wizard.js +++ b/src/plugins/kibana/public/visualize/wizard/wizard.js @@ -58,6 +58,6 @@ module.controller('VisualizeWizardStep2', function ($route, $scope, $location, t $scope.makeUrl = function (pattern) { if (!pattern) return; - return `/visualize/create?type=${type}&indexPattern=${pattern}`; + return `#/visualize/create?type=${type}&indexPattern=${pattern}`; }; }); From 6edcc11fff75df5064a070a9a8afe4f0d8bd9380 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Wed, 16 Mar 2016 10:15:16 -0700 Subject: [PATCH 168/181] removing extra padding --- src/plugins/kibana/public/settings/styles/main.less | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/plugins/kibana/public/settings/styles/main.less b/src/plugins/kibana/public/settings/styles/main.less index f89c27b2a9034..186ca67fcc8fe 100644 --- a/src/plugins/kibana/public/settings/styles/main.less +++ b/src/plugins/kibana/public/settings/styles/main.less @@ -15,10 +15,6 @@ nav.navbar { height: 70px; } -div.container-fluid { - padding-top: 33px; -} - .settings-nav { text-transform: capitalize; } From 360acd9b5db369961a8160b2e6b3e1a0d0959820 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Wed, 16 Mar 2016 10:21:23 -0700 Subject: [PATCH 169/181] adding padding back --- src/plugins/kibana/public/settings/styles/main.less | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/kibana/public/settings/styles/main.less b/src/plugins/kibana/public/settings/styles/main.less index 186ca67fcc8fe..f89c27b2a9034 100644 --- a/src/plugins/kibana/public/settings/styles/main.less +++ b/src/plugins/kibana/public/settings/styles/main.less @@ -15,6 +15,10 @@ nav.navbar { height: 70px; } +div.container-fluid { + padding-top: 33px; +} + .settings-nav { text-transform: capitalize; } From 63cf30c9a6b05011e16155799ed1476567871248 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Wed, 16 Mar 2016 10:43:52 -0700 Subject: [PATCH 170/181] moving padding-top style under .nav, merging in Khalah's breadcrumb branch --- src/plugins/kibana/public/settings/styles/main.less | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/plugins/kibana/public/settings/styles/main.less b/src/plugins/kibana/public/settings/styles/main.less index f89c27b2a9034..08011e6c2b36d 100644 --- a/src/plugins/kibana/public/settings/styles/main.less +++ b/src/plugins/kibana/public/settings/styles/main.less @@ -13,9 +13,6 @@ kbn-settings-objects-view { nav.navbar { height: 70px; -} - -div.container-fluid { padding-top: 33px; } From a25f8f9f004ab30cdd3d00a491af62d17f44ca3c Mon Sep 17 00:00:00 2001 From: Tyler Smalley Date: Thu, 10 Mar 2016 10:31:22 -0800 Subject: [PATCH 171/181] Resolves functional tests for K5 redesign Signed-off-by: Tyler Smalley Signed-off-by: Lee Drengenberg --- .../kibana/public/settings/styles/main.less | 2 + src/ui/public/visualize/visualize.less | 3 +- .../apps/discover/_collapse_expand.js | 48 +++++------ test/functional/apps/discover/_discover.js | 80 ++++++++----------- test/functional/apps/discover/_field_data.js | 1 - .../functional/apps/discover/_shared_links.js | 8 +- .../apps/visualize/_metric_chart.js | 26 +++--- test/support/pages/common.js | 7 +- test/support/pages/discover_page.js | 51 +++++------- test/support/pages/header_page.js | 30 ++----- test/support/pages/settings_page.js | 11 +-- test/support/pages/visualize_page.js | 11 ++- 12 files changed, 123 insertions(+), 155 deletions(-) diff --git a/src/plugins/kibana/public/settings/styles/main.less b/src/plugins/kibana/public/settings/styles/main.less index ef10f7317faad..dc0f0ccf87ca0 100644 --- a/src/plugins/kibana/public/settings/styles/main.less +++ b/src/plugins/kibana/public/settings/styles/main.less @@ -93,6 +93,8 @@ kbn-settings-objects-view { } .advanced-settings { + overflow-x: scroll; + table { width: 100%; diff --git a/src/ui/public/visualize/visualize.less b/src/ui/public/visualize/visualize.less index f8520f2f4cc22..e1e7805e3d08c 100644 --- a/src/ui/public/visualize/visualize.less +++ b/src/ui/public/visualize/visualize.less @@ -13,11 +13,10 @@ visualize { } .vis-container { - height: 1px; display: flex; flex-direction: row; - flex: 1 1 auto; + flex: 1 0; overflow: auto; -webkit-transition: opacity 0.01s; transition: opacity 0.01s; diff --git a/test/functional/apps/discover/_collapse_expand.js b/test/functional/apps/discover/_collapse_expand.js index f2131378a1ce1..d4ade8faeb4e5 100644 --- a/test/functional/apps/discover/_collapse_expand.js +++ b/test/functional/apps/discover/_collapse_expand.js @@ -53,35 +53,37 @@ define(function (require) { bdd.it('should initially be expanded', function () { return discoverPage.getSidebarWidth() - .then(function (actualwidth) { - common.debug('expanded sidebar width = ' + actualwidth); - expect(actualwidth > 180).to.be(true); - }) - .catch(common.handleError(this)); + .then(function (width) { + common.debug('expanded sidebar width = ' + width); + expect(width > 180).to.be(true); + }) + .catch(common.handleError(this)); }); bdd.it('should collapse when clicked', function () { - return discoverPage.clickSidebarCollapse() - .then(function () { - return discoverPage.getSidebarWidth(); - }) - .then(function (actualwidth) { - common.debug('collapsed sidebar width = ' + actualwidth); - expect(actualwidth < 20).to.be(true); - }) - .catch(common.handleError(this)); + return discoverPage.toggleSidebarCollapse() + .then(function () { + common.debug('discoverPage.getSidebarWidth()'); + return discoverPage.getSidebarWidth(); + }) + .then(function (width) { + common.debug('collapsed sidebar width = ' + width); + expect(width < 20).to.be(true); + }) + .catch(common.handleError(this)); }); bdd.it('should expand when clicked', function () { - return discoverPage.clickSidebarExpand() - .then(function () { - return discoverPage.getSidebarWidth(); - }) - .then(function (actualwidth) { - common.debug('expanded sidebar width = ' + actualwidth); - expect(actualwidth > 180).to.be(true); - }) - .catch(common.handleError(this)); + return discoverPage.toggleSidebarCollapse() + .then(function () { + common.debug('discoverPage.getSidebarWidth()'); + return discoverPage.getSidebarWidth(); + }) + .then(function (width) { + common.debug('expanded sidebar width = ' + width); + expect(width > 180).to.be(true); + }) + .catch(common.handleError(this)); }); }); diff --git a/test/functional/apps/discover/_discover.js b/test/functional/apps/discover/_discover.js index 44525ad24d45c..86271155f8cc9 100644 --- a/test/functional/apps/discover/_discover.js +++ b/test/functional/apps/discover/_discover.js @@ -84,6 +84,9 @@ define(function (require) { bdd.it('load query should show query name', function () { return discoverPage.loadSavedSearch(queryName1) + .then(function () { + return common.sleep(3000); + }) .then(function () { return discoverPage.getCurrentQueryName(); }) @@ -104,18 +107,13 @@ define(function (require) { .catch(common.handleError(this)); }); - - bdd.it('should show the correct bar chart', function () { - var expectedBarChartData = [ '0', '0', '0', '0', '0', '0', - '2.7056249999999977', '14.771249999999995', '54.112500000000004', - '105.080625', '100.25437500000001', '54.916875', '13.747499999999988', - '2.266874999999999', '3.0712500000000063', '14.771249999999995', - '49.944374999999994', '99.523125', '103.471875', '51.699375', - '12.943124999999995', '1.9743749999999949', '2.3400000000000034', - '12.796875', '51.699375', '102.96000000000001', '99.08437500000001', - '53.08875', '14.698125000000005', '2.1206249999999898', '0', '0', - '0', '0', '0', '0', '0' + var expectedBarChartData = [ '0', '0', '0', '0', '0', '0', '3.237', + '17.674', '64.75', '125.737', '119.962', '65.712', '16.449', + '2.712', '3.675', '17.674', '59.762', '119.087', '123.812', + '61.862', '15.487', '2.362', '2.800', '15.312', '61.862', '123.2', + '118.562', '63.524', '17.587', '2.537', '0', '0', '0', '0', '0', + '0', '0' ]; return common.sleep(4000) .then(function () { @@ -144,26 +142,19 @@ define(function (require) { bdd.it('should show correct data for chart interval Hourly', function () { var chartInterval = 'Hourly'; - var expectedBarChartData = [ '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', - '0', '0', '0', '0', '0', '0', '0', '0', '1.2763636363636266', '1.914545454545447', - '4.680000000000007', '6.594545454545454', '11.061818181818168', '25.314545454545453', - '38.50363636363636', '46.374545454545455', '72.53999999999999', '93.60000000000001', - '102.10909090909091', '109.97999999999999', '111.04363636363637', '94.87636363636364', - '85.72909090909091', '68.28545454545454', '54.88363636363636', '36.58909090909091', - '20.209090909090904', '11.700000000000003', '8.083636363636359', '5.105454545454549', - '0.6381818181818204', '0.8509090909090986', '2.3400000000000034', '2.978181818181824', - '3.61636363636363', '8.083636363636359', '10.423636363636362', '24.46363636363637', - '32.33454545454545', '45.94909090909091', '67.00909090909092', '85.51636363636365', - '94.87636363636364', '109.1290909090909', '110.61818181818181', '100.83272727272727', - '89.55818181818182', '65.30727272727273', '48.92727272727274', '36.16363636363636', - '21.059999999999988', '10.210909090909098', '6.38181818181819', '3.190909090909088', - '2.127272727272725', '0.4254545454545422', '1.701818181818183', '1.4890909090909048', - '3.61636363636363', '7.232727272727274', '7.870909090909095', '22.123636363636365', - '32.54727272727273', '51.267272727272726', '66.58363636363637', '85.94181818181818', - '104.66181818181818', '108.91636363636364', '107.00181818181818', '100.62', - '80.62363636363636', '62.32909090909091', '58.92545454545455', '33.18545454545455', - '21.059999999999988', '11.274545454545446', '10.423636363636362', '3.403636363636366', - '1.914545454545447', '0.8509090909090986', '0', '0', '0', '0', '0', '0', + var expectedBarChartData = [ '0', '0', '0', '0', '0', '0', '0', '0', + '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1.527', '2.290', + '5.599', '7.890', '13.236', '30.290', '46.072', '55.490', '86.8', + '112', '122.181', '131.6', '132.872', '113.527', '102.581', + '81.709', '65.672', '43.781', '24.181', '14', '9.672', '6.109', + '0.763', '1.018', '2.800', '3.563', '4.327', '9.672', '12.472', + '29.272', '38.690', '54.981', '80.181', '102.327', '113.527', + '130.581', '132.363', '120.654', '107.163', '78.145', '58.545', + '43.272', '25.199', '12.218', '7.636', '3.818', '2.545', '0.509', + '2.036', '1.781', '4.327', '8.654', '9.418', '26.472', '38.945', + '61.345', '79.672', '102.836', '125.236', '130.327', '128.036', + '120.4', '96.472', '74.581', '70.509', '39.709', '25.199', '13.490', + '12.472', '4.072', '2.290', '1.018', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0' ]; return discoverPage.setChartInterval(chartInterval) @@ -178,7 +169,9 @@ define(function (require) { bdd.it('should show correct data for chart interval Daily', function () { var chartInterval = 'Daily'; - var expectedBarChartData = [ '0', '111.3138', '107.96759999999999', '108.4122', '0']; + var expectedBarChartData = [ + '0', '133.196', '129.192', '129.724', '0' + ]; return discoverPage.setChartInterval(chartInterval) .then(function () { return common.sleep(8000); @@ -191,7 +184,7 @@ define(function (require) { bdd.it('should show correct data for chart interval Weekly', function () { var chartInterval = 'Weekly'; - var expectedBarChartData = [ '55.6569', '108.1899']; + var expectedBarChartData = [ '66.598', '129.458']; return discoverPage.setChartInterval(chartInterval) .then(function () { return common.sleep(2000); @@ -204,7 +197,7 @@ define(function (require) { bdd.it('should show correct data for chart interval Monthly', function () { var chartInterval = 'Monthly'; - var expectedBarChartData = [ '102.404']; + var expectedBarChartData = [ '122.535']; return discoverPage.setChartInterval(chartInterval) .then(function () { return common.sleep(2000); @@ -217,7 +210,7 @@ define(function (require) { bdd.it('should show correct data for chart interval Yearly', function () { var chartInterval = 'Yearly'; - var expectedBarChartData = [ '102.404']; + var expectedBarChartData = [ '122.535']; return discoverPage.setChartInterval(chartInterval) .then(function () { return common.sleep(2000); @@ -228,19 +221,14 @@ define(function (require) { .catch(common.handleError(this)); }); - - bdd.it('should show correct data for chart interval Auto', function () { var chartInterval = 'Auto'; - var expectedBarChartData = [ '0', '0', '0', '0', '0', '0', - '2.7056249999999977', '14.771249999999995', '54.112500000000004', - '105.080625', '100.25437500000001', '54.916875', '13.747499999999988', - '2.266874999999999', '3.0712500000000063', '14.771249999999995', - '49.944374999999994', '99.523125', '103.471875', '51.699375', - '12.943124999999995', '1.9743749999999949', '2.3400000000000034', - '12.796875', '51.699375', '102.96000000000001', '99.08437500000001', - '53.08875', '14.698125000000005', '2.1206249999999898', '0', '0', - '0', '0', '0', '0', '0' + var expectedBarChartData = [ '0', '0', '0', '0', '0', '0', '3.237', + '17.674', '64.75', '125.737', '119.962', '65.712', '16.449', + '2.712', '3.675', '17.674', '59.762', '119.087', '123.812', + '61.862', '15.487', '2.362', '2.800', '15.312', '61.862', '123.2', + '118.562', '63.524', '17.587', '2.537', '0', '0', '0', '0', '0', + '0', '0' ]; return discoverPage.setChartInterval(chartInterval) .then(function () { diff --git a/test/functional/apps/discover/_field_data.js b/test/functional/apps/discover/_field_data.js index c36ae8e0fcae6..e49496ac0ed46 100644 --- a/test/functional/apps/discover/_field_data.js +++ b/test/functional/apps/discover/_field_data.js @@ -51,7 +51,6 @@ define(function (require) { var fromTimeString = 'September 19th 2015, 06:31:44.000'; var toTimeString = 'September 23rd 2015, 18:31:44.000'; - bdd.it('search php should show the correct hit count', function () { var expectedHitCount = '445'; return discoverPage.query('php') diff --git a/test/functional/apps/discover/_shared_links.js b/test/functional/apps/discover/_shared_links.js index 1173eaaad5d74..feae21ea21fb6 100644 --- a/test/functional/apps/discover/_shared_links.js +++ b/test/functional/apps/discover/_shared_links.js @@ -79,10 +79,10 @@ define(function (require) { var expectedUrl = baseUrl + '/app/kibana?_t=1453775307251#' + '/discover?_g=(refreshInterval:(display:Off,pause:!f,value:0),time' - + ':(from:%272015-09-19T06:31:44.000Z%27,mode:absolute,to:%272015-09' - + '-23T18:31:44.000Z%27))&_a=(columns:!(_source),index:%27logstash-' - + '*%27,interval:auto,query:(query_string:(analyze_wildcard:!t,query' - + ':%27*%27)),sort:!(%27@timestamp%27,desc))'; + + ':(from:\'2015-09-19T06:31:44.000Z\',mode:absolute,to:\'2015-09' + + '-23T18:31:44.000Z\'))&_a=(columns:!(_source),index:\'logstash-' + + '*\',interval:auto,query:(query_string:(analyze_wildcard:!t,query' + + ':\'*\')),sort:!(\'@timestamp\',desc))'; return discoverPage.getSharedUrl() .then(function (actualUrl) { // strip the timestamp out of each URL diff --git a/test/functional/apps/visualize/_metric_chart.js b/test/functional/apps/visualize/_metric_chart.js index 728784784507b..26137a7a29dac 100644 --- a/test/functional/apps/visualize/_metric_chart.js +++ b/test/functional/apps/visualize/_metric_chart.js @@ -199,8 +199,10 @@ define(function (require) { }); bdd.it('should show Standard Deviation', function pageHeader() { - var standardDeviationBytes = [ '-1,435.138', 'Lower Standard Deviation of bytes', - '5,727.314', 'Average of bytes', '12,889.766', 'Upper Standard Deviation of bytes' + var standardDeviationBytes = [ + '-1,435.138', 'Lower Standard Deviation of bytes', + '5,727.314', 'Average of bytes', + '12,889.766', 'Upper Standard Deviation of bytes' ]; common.debug('Aggregation = Standard Deviation'); return visualizePage.selectAggregation('Standard Deviation') @@ -252,18 +254,16 @@ define(function (require) { }); bdd.it('should show Percentiles', function pageHeader() { - // This SHOULD be the expected result but the top item is cut off. - // See https://github.com/elastic/kibana/issues/5721 - // var percentileMachineRam = ['2,147,483,648', '1st percentile of machine.ram', '3,221,225,472', - // '5th percentile of machine.ram', '7,516,192,768', '25th percentile of machine.ram', '12,884,901,888', - // '50th percentile of machine.ram', '18,253,611,008', '75th percentile of machine.ram', - // '32,212,254,720', '95th percentile of machine.ram', '32,212,254,720', '99th percentile of machine.ram' - // ]; - var percentileMachineRam = ['3,221,225,472', - '5th percentile of machine.ram', '7,516,192,768', '25th percentile of machine.ram', '12,884,901,888', - '50th percentile of machine.ram', '18,253,611,008', '75th percentile of machine.ram', - '32,212,254,720', '95th percentile of machine.ram', '32,212,254,720', '99th percentile of machine.ram' + var percentileMachineRam = [ + '2,147,483,648', '1st percentile of machine.ram', + '3,221,225,472', '5th percentile of machine.ram', + '7,516,192,768', '25th percentile of machine.ram', + '12,884,901,888', '50th percentile of machine.ram', + '18,253,611,008', '75th percentile of machine.ram', + '32,212,254,720', '95th percentile of machine.ram', + '32,212,254,720', '99th percentile of machine.ram' ]; + common.debug('Aggregation = Percentiles'); return visualizePage.selectAggregation('Percentiles') .then(function selectField() { diff --git a/test/support/pages/common.js b/test/support/pages/common.js index a2e821ab05f4e..c5f2ce37aa312 100644 --- a/test/support/pages/common.js +++ b/test/support/pages/common.js @@ -91,6 +91,7 @@ define(function (require) { return self.remote.getCurrentUrl(); }) .then(function (currentUrl) { + var currentUrl = currentUrl.replace(/\/\/\w+:\w+@/, '//'); var navSuccessful = new RegExp(appUrl).test(currentUrl); if (!navSuccessful) { var msg = 'App failed to load: ' + appName + @@ -254,8 +255,10 @@ define(function (require) { }, findTestSubject: function findTestSubject(selector) { - this.debug('in findTestSubject: ' + selector); - return this.remote.findByCssSelector(testSubjSelector(selector)); + this.debug('in findTestSubject: ' + testSubjSelector(selector)); + return this.remote + .setFindTimeout(defaultTimeout) + .findDisplayedByCssSelector(testSubjSelector(selector)); } }; diff --git a/test/support/pages/discover_page.js b/test/support/pages/discover_page.js index ab6d8f9c679f9..b5638a18882b6 100644 --- a/test/support/pages/discover_page.js +++ b/test/support/pages/discover_page.js @@ -28,7 +28,7 @@ define(function (require) { getTimespanText: function getTimespanText() { return thisTime - .findByCssSelector('.navbar-timepicker-time-desc pretty-duration') + .findByCssSelector('.kibana-nav-actions .navbar-timepicker-time-desc pretty-duration') .getVisibleText(); }, @@ -41,20 +41,18 @@ define(function (require) { saveSearch: function saveSearch(searchName) { var self = this; return self.clickSaveSearchButton() - .then(function () { - common.sleep(1000); - }) .then(function () { common.debug('--saveSearch button clicked'); - return thisTime.findById('SaveSearch') - .type(searchName); + return thisTime.findDisplayedById('SaveSearch') + .pressKeys(searchName); }) .then(function clickSave() { common.debug('--find save button'); return thisTime - .findByCssSelector('button[ng-disabled="!opts.savedSearch.title"]') + .findDisplayedByCssSelector('button[ng-disabled="!opts.savedSearch.title"]') .click(); - }); + }) + .catch(common.handleError(this)); }, loadSavedSearch: function loadSavedSearch(searchName) { @@ -76,18 +74,16 @@ define(function (require) { .click(); }, - clickLoadSavedSearchButton: function clickSaveSearchButton() { + clickLoadSavedSearchButton: function clickLoadSavedSearchButton() { return thisTime .findByCssSelector('button[aria-label="Load Saved Search"]') .click(); }, getCurrentQueryName: function getCurrentQueryName() { - return common.tryForTime(defaultTimeout, function () { - return thisTime - .findByCssSelector('span.discover-info-title') + return thisTime + .findByCssSelector('span.kibana-nav-info-title') .getVisibleText(); - }); }, getBarChartData: function getBarChartData() { @@ -110,13 +106,13 @@ define(function (require) { getChartInterval: function getChartInterval() { return thisTime - .findByCssSelector('span.results-interval:nth-child(2) > a:nth-child(1)') + .findByCssSelector('a[ng-click="toggleInterval()"]') .getVisibleText(); }, setChartInterval: function setChartInterval(interval) { - return thisTime - .findByCssSelector('span.results-interval:nth-child(2) > a:nth-child(1)') + return this.remote.setFindTimeout(5000) + .findByCssSelector('a[ng-click="toggleInterval()"]') .click() .catch(function () { // in some cases we have the link above, but after we've made a @@ -191,20 +187,20 @@ define(function (require) { clickCopyToClipboard: function clickCopyToClipboard() { return thisTime - .findByCssSelector('button.clipboard-button') + .findDisplayedByCssSelector('button.clipboard-button') .click(); }, getShareCaption: function getShareCaption() { return thisTime - .findByCssSelector('div.form-group > label') + .findByCssSelector('.vis-share label') .getVisibleText(); }, getSharedUrl: function getSharedUrl() { return thisTime .findByCssSelector('.url') - .getProperty('baseURI'); + .getProperty('value'); }, getShortenedUrl: function getShortenedUrl() { @@ -213,22 +209,15 @@ define(function (require) { .getProperty('value'); }, - clickSidebarExpand: function clickSidebarExpand() { - return thisTime - .findByCssSelector('.chevron-cont') - .click(); - }, - - clickSidebarCollapse: function clickSidebarCollapse() { - return thisTime - .findByCssSelector('.chevron-cont') - .click(); + toggleSidebarCollapse: function toggleSidebarCollapse() { + return thisTime.findDisplayedByCssSelector('.sidebar-collapser .chevron-cont') + .click(); }, getSidebarWidth: function getSidebarWidth() { return thisTime - .findByCssSelector('.sidebar-list') - .getProperty('clientWidth'); + .findByClassName('sidebar-list') + .getProperty('clientWidth'); } }; diff --git a/test/support/pages/header_page.js b/test/support/pages/header_page.js index 511e5ef6e4744..b87c29095bc21 100644 --- a/test/support/pages/header_page.js +++ b/test/support/pages/header_page.js @@ -51,7 +51,7 @@ define(function (require) { clickTimepicker: function clickTimepicker() { return this.remote.setFindTimeout(defaultTimeout) - .findByClassName('navbar-timepicker-time-desc').click(); + .findDisplayedByClassName('navbar-timepicker-time-desc').click(); }, clickAbsoluteButton: function clickAbsoluteButton() { @@ -100,41 +100,27 @@ define(function (require) { return self.clickGoButton(); }) .then(function () { - self.collapseTimepicker(); + return self.collapseTimepicker(); }); }, collapseTimepicker: function collapseTimepicker() { return this.remote.setFindTimeout(defaultTimeout) - .findByCssSelector('.fa.fa-chevron-up') + .findByCssSelector('.fa.fa-chevron-circle-up') .click(); }, getToastMessage: function getToastMessage() { return this.remote.setFindTimeout(defaultTimeout) - .findByCssSelector('kbn-truncated.toast-message.ng-isolate-scope') + .findDisplayedByCssSelector('kbn-truncated.toast-message.ng-isolate-scope') .getVisibleText(); }, waitForToastMessageGone: function waitForToastMessageGone() { var self = this; - return common.tryForTime(defaultTimeout, function () { - return self.remote.setFindTimeout(500) - .findAllByCssSelector('kbn-truncated.toast-message') - .then(function toastMessage(messages) { - if (messages.length > 0) { - common.debug('toast message found, waiting...'); - throw new Error('waiting for toast message to clear'); - } else { - common.debug('toast message clear'); - return messages; - } - }) - .catch(function () { - common.debug('toast message not found'); - return; - }); - }); + + return self.remote.setFindTimeout(defaultTimeout) + .waitForDeletedByCssSelector('kbn-truncated.toast-message'); }, clickToastOK: function clickToastOK() { @@ -148,7 +134,7 @@ define(function (require) { var self = this; return this.remote .setFindTimeout(defaultTimeout * 10) - .findByCssSelector('.navbar-text.ng-hide .spinner'); + .findByCssSelector('.spinner.ng-hide'); } }; diff --git a/test/support/pages/settings_page.js b/test/support/pages/settings_page.js index 871d7081a9d35..ca0168129b3ac 100644 --- a/test/support/pages/settings_page.js +++ b/test/support/pages/settings_page.js @@ -25,8 +25,9 @@ define(function (require) { return common.findTestSubject('advancedSetting&' + propertyName + ' editButton') .click() .then(function setAdvancedSettingsClickPropertyValue(selectList) { - return self.remote.findByCssSelector('option[label="' + propertyValue + '"]') - .click(); + return self.remote + .findDisplayedByCssSelector('option[label="' + propertyValue + '"]') + .click(); }) .then(function setAdvancedSettingsClickSaveButton() { return common.findTestSubject('advancedSetting&' + propertyName + ' saveButton') @@ -95,7 +96,7 @@ define(function (require) { getTimeFieldNameField: function () { return this.remote.setFindTimeout(defaultTimeout) - .findByCssSelector('select[ng-model="index.timeField"]'); + .findDisplayedByCssSelector('select[ng-model="index.timeField"]'); }, selectTimeFieldOption: function (selection) { @@ -122,12 +123,12 @@ define(function (require) { getTimeFieldOption: function (selection) { return this.remote.setFindTimeout(defaultTimeout) - .findByCssSelector('option[label="' + selection + '"]').click(); + .findDisplayedByCssSelector('option[label="' + selection + '"]').click(); }, getCreateButton: function () { return this.remote.setFindTimeout(defaultTimeout) - .findByCssSelector('.btn'); + .findDisplayedByCssSelector('.btn'); }, clickCreateButton: function () { diff --git a/test/support/pages/visualize_page.js b/test/support/pages/visualize_page.js index f8c68abbe2a92..cffcd7e79731a 100644 --- a/test/support/pages/visualize_page.js +++ b/test/support/pages/visualize_page.js @@ -82,7 +82,7 @@ define(function (require) { var types = []; return this.remote .setFindTimeout(defaultTimeout) - .findAllByCssSelector('a.wizard-vis-type.ng-scope h4') + .findAllByCssSelector('.wizard-type-heading h4') .then(function (chartTypes) { function getChartType(chart) { return chart.getVisibleText(); @@ -134,8 +134,7 @@ define(function (require) { getMetric: function getMetric() { return this.remote - .setFindTimeout(defaultTimeout) - // .findByCssSelector('div[ng-repeat="metric in metrics"') + .setFindTimeout(2000) .findByCssSelector('div[ng-controller="KbnMetricVisController"]') .getVisibleText(); }, @@ -150,7 +149,7 @@ define(function (require) { clickNewSearch: function clickNewSearch() { return this.remote .setFindTimeout(defaultTimeout) - .findByCssSelector('li[ng-click="stepTwoMode=\'new\'"]') + .findByCssSelector('.list-group-item a') .click(); }, @@ -274,7 +273,7 @@ define(function (require) { setNumericInterval: function setNumericInterval(newValue) { return this.remote .setFindTimeout(defaultTimeout) - .findByCssSelector('input.form-control:nth-child(2)') + .findByCssSelector('input[name="interval"]') .type(newValue); }, @@ -314,7 +313,7 @@ define(function (require) { .then(function () { return self.remote .setFindTimeout(defaultTimeout) - .findByCssSelector('.btn-primary') + .findByCssSelector('.config button[type="submit"]') .click(); }) // verify that green message at the top of the page. From 0e3933860cd98949b2959fa06a5daecb663fded7 Mon Sep 17 00:00:00 2001 From: Shelby Sturgis Date: Wed, 16 Mar 2016 14:29:21 -0700 Subject: [PATCH 172/181] adding breadcrumbs --- src/plugins/kibana/public/settings/app.html | 1 + src/plugins/kibana/public/settings/index.js | 1 + .../kibana/public/settings/styles/main.less | 10 ++++++- .../kibana/public/visualize/styles/main.less | 5 ++-- .../public/visualize/wizard/step_1.html | 1 + .../public/visualize/wizard/step_2.html | 1 + src/ui/public/chrome/api/angular.js | 1 - src/ui/public/directives/bread_crumbs.js | 29 +++++++++++++++++++ src/ui/public/partials/bread_crumbs.html | 6 ++++ src/ui/public/styles/base.less | 28 +++++++++++++++++- 10 files changed, 78 insertions(+), 5 deletions(-) create mode 100644 src/ui/public/directives/bread_crumbs.js create mode 100644 src/ui/public/partials/bread_crumbs.html diff --git a/src/plugins/kibana/public/settings/app.html b/src/plugins/kibana/public/settings/app.html index 6bb1ecd5a167c..f78a64d809790 100644 --- a/src/plugins/kibana/public/settings/app.html +++ b/src/plugins/kibana/public/settings/app.html @@ -1,6 +1,7 @@