From 483a000bddfeb4145e1cf5f42209960480a95f48 Mon Sep 17 00:00:00 2001 From: Khalah Jones-Golden Date: Wed, 25 Feb 2015 22:52:14 -0400 Subject: [PATCH 1/5] [directives/collapsible_sidebar] created the collapsible sidebar directive --- .../collapsible_sidebar.js | 37 +++++++++++++ .../collapsible_sidebar.less | 52 +++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 src/kibana/components/collapsible_sidebar/collapsible_sidebar.js create mode 100644 src/kibana/components/collapsible_sidebar/collapsible_sidebar.less diff --git a/src/kibana/components/collapsible_sidebar/collapsible_sidebar.js b/src/kibana/components/collapsible_sidebar/collapsible_sidebar.js new file mode 100644 index 0000000000000..31c2387bd72df --- /dev/null +++ b/src/kibana/components/collapsible_sidebar/collapsible_sidebar.js @@ -0,0 +1,37 @@ +define(function (require) { + require('css!components/collapsible_sidebar/collapsible_sidebar.css'); + + var _ = require('lodash'); + var $ = require('jquery'); + + require('modules') + .get('kibana') + .directive('collapsibleSidebar', function () { + var listOfWidthClasses = 1; + // simply a list of all of all of angulars .col-md-* classes except 12 + listOfWidthClasses = _(new Array(11)).map(function (n) { return 'col-md-' + listOfWidthClasses++; }); + + return { + restrict: 'C', + link: function ($scope, $elem) { + var $collapser = $(''); + var $siblings = $elem.siblings(); + + var siblingsClass = listOfWidthClasses.reduce(function (prev, className) { + if (prev) return prev; + return $siblings.hasClass(className) && className; + }, false); + + $collapser.on('click', function () { + $elem.toggleClass('closed'); + // if there is are only two elements we can assume the other one will take 100% of the width + if ($siblings.length === 1 && siblingsClass) { + $siblings.toggleClass(siblingsClass + ' col-md-12'); + } + }) + + .appendTo($elem); + } + }; + }); +}); diff --git a/src/kibana/components/collapsible_sidebar/collapsible_sidebar.less b/src/kibana/components/collapsible_sidebar/collapsible_sidebar.less new file mode 100644 index 0000000000000..7f45d8c9ddcdb --- /dev/null +++ b/src/kibana/components/collapsible_sidebar/collapsible_sidebar.less @@ -0,0 +1,52 @@ +.sidebar-container.collapsible-sidebar { + position: relative; + + .sidebar-collapser { + background-color: #fff; + right: 0; + height: 100%; + position: absolute; + top: 0; + right: 0; + margin-top: -25px; + width: 10px; + border: 1px solid #ecf0f1; + border-width: 1px 0 1px 1px; + cursor: pointer; + + .chevron-cont{ + position: absolute; + height: 50px; + top: 25%; /* FIXME because of the different layouts (fullscreen;scrolling) in Discover vs Visualize. */ + text-align: center; + line-height: 50px; + left: 50%; + margin-left: -5px; + &:before { + font-family: FontAwesome; + color: #333; + content: "\F053"; + } + } + } + + &.closed { + width: 0 !important; + border-right-width: 0; + border-left-width: 0; + z-index: 100; + + > * { + visibility: hidden; + } + + .sidebar-collapser { + visibility: visible; + right: -10px; + border-right: 1px solid #ecf0f1; + .chevron-cont:before { + content: "\F054"; + } + } + } +} From 1a68de5555661a7589c57edbef55d5d37282e4eb Mon Sep 17 00:00:00 2001 From: Khalah Jones-Golden Date: Wed, 25 Feb 2015 22:55:34 -0400 Subject: [PATCH 2/5] [discover/sidebar] Made the sidebar collapsible on Discover page --- src/kibana/plugins/discover/index.html | 2 +- src/kibana/plugins/discover/index.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/kibana/plugins/discover/index.html b/src/kibana/plugins/discover/index.html index ca599cb664a8b..643ec900d85ed 100644 --- a/src/kibana/plugins/discover/index.html +++ b/src/kibana/plugins/discover/index.html @@ -43,7 +43,7 @@
-