diff --git a/public/app/features/playlist/partials/playlist.html b/public/app/features/playlist/partials/playlist.html index 54600ecc9f4..d52506cc5a7 100644 --- a/public/app/features/playlist/partials/playlist.html +++ b/public/app/features/playlist/partials/playlist.html @@ -18,35 +18,34 @@ -
-
Add dashboards
-
- +
+
+
Add dashboards
+
+ +
-
+
Search results ({{ctrl.filteredDashboards.length}})
- - - - - -
- {{playlistItem.title}} - - -
-
-
-
-
+
+ + + + + +
+ {{playlistItem.title}} + + +
+
-
+ +
Added dashboards
@@ -89,13 +89,10 @@
- - Save - Cancel - + Save + Cancel
diff --git a/public/app/features/playlist/partials/playlist_search.html b/public/app/features/playlist/partials/playlist_search.html index e3005c1b74b..12b3d563820 100644 --- a/public/app/features/playlist/partials/playlist_search.html +++ b/public/app/features/playlist/partials/playlist_search.html @@ -2,25 +2,25 @@ - - + + diff --git a/public/less/_grafana.scss b/public/less/_grafana.scss index dd896261c93..84d74c18ff6 100644 --- a/public/less/_grafana.scss +++ b/public/less/_grafana.scss @@ -1,69 +1,72 @@ +@import "grid-variables"; // MIXINS -@import "./mixins/_mixins.scss"; -@import "./mixins/_buttons.scss"; +@import "mixins/mixins"; +@import "mixins/buttons"; +@import "mixins/breakpoints"; +@import "mixins/grid"; +@import "mixins/grid-framework"; // BASE -@import "./base/_normalize.scss"; -@import "./base/_base.scss"; -@import "./base/_type.scss"; -@import "./base/_forms.scss"; -@import "./base/_fonts.scss"; -@import "./base/_code.scss"; +@import "base/normalize"; +@import "base/base"; +@import "base/type"; +@import "base/forms"; +@import "base/fonts"; +@import "base/grid"; // UTILS -@import "./utils/_utils.scss"; -@import "./utils/_validation.scss"; -@import "./utils/_angular.scss"; +@import "utils/utils"; +@import "utils/validation"; +@import "utils/angular"; // LAYOUTS -// @import "./bootstrap/grid.scss"; -@import "./layout/_page.scss"; +@import "layout/page"; // COMPONENTS -@import "./components/_panel_graph.scss"; -@import "./components/_submenu.scss"; -@import "./components/_panel_dashlist.scss"; -@import "./components/_panel_singlestat.scss"; -@import "./components/_panel_table.scss"; -@import "./components/_tagsinput.scss"; -@import "./components/_tables_lists.scss"; -@import "./components/_search.scss"; -@import "./components/_dashboard.scss"; -@import "./components/_tightform.scss"; -@import "./components/_gf-form.scss"; -@import "./components/_sidemenu.scss"; -@import "./components/_navbar.scss"; -@import "./components/_gfbox.scss"; -@import "./components/_pagination.scss"; -@import "./components/_tabs.scss"; -@import "./components/_timepicker.scss"; -@import "./components/_filter-controls.scss"; -@import "./components/_filter-list.scss"; -@import "./components/_filter-table.scss"; -@import "./components/_scrollbar.scss"; -@import "./components/_old_stuff.scss"; -@import "./components/_navbar.scss"; -@import "./components/_popovers.scss"; -@import "./components/_alerts.scss"; -@import "./components/_typeahead.scss"; -@import "./components/_tags.scss"; -@import "./components/_modals.scss"; -@import "./components/_dropdown.scss"; -@import "./components/_color_picker.scss"; -@import "./components/_tooltip.scss"; -@import "./components/_buttons.scss"; -@import "./components/_footer.scss"; -@import "./components/_infobox.scss"; -@import "./components/_shortcuts.scss"; -@import "./components/_query_editor.scss"; -@import "./components/_navs.scss"; +@import "components/panel_graph.scss"; +@import "components/submenu.scss"; +@import "components/panel_dashlist.scss"; +@import "components/panel_singlestat.scss"; +@import "components/panel_table.scss"; +@import "components/tagsinput.scss"; +@import "components/tables_lists.scss"; +@import "components/search.scss"; +@import "components/dashboard.scss"; +@import "components/tightform.scss"; +@import "components/gf-form.scss"; +@import "components/sidemenu.scss"; +@import "components/navbar.scss"; +@import "components/gfbox.scss"; +@import "components/pagination.scss"; +@import "components/tabs.scss"; +@import "components/timepicker.scss"; +@import "components/filter-controls.scss"; +@import "components/filter-list.scss"; +@import "components/filter-table.scss"; +@import "components/scrollbar.scss"; +@import "components/old_stuff.scss"; +@import "components/navbar.scss"; +@import "components/popovers.scss"; +@import "components/alerts.scss"; +@import "components/typeahead.scss"; +@import "components/tags.scss"; +@import "components/modals.scss"; +@import "components/dropdown.scss"; +@import "components/color_picker.scss"; +@import "components/tooltip.scss"; +@import "components/buttons.scss"; +@import "components/footer.scss"; +@import "components/infobox.scss"; +@import "components/shortcuts.scss"; +@import "components/query_editor.scss"; +@import "components/navs.scss"; // PAGES -@import "./pages/_login.scss"; -@import "./pages/_playlist.scss"; -@import "./pages/_admin.scss"; -@import "./pages/_alerting.scss"; -@import "./pages/_apps.scss"; -@import "./pages/_signup.scss"; +@import "pages/login.scss"; +@import "pages/playlist.scss"; +@import "pages/admin.scss"; +@import "pages/alerting.scss"; +@import "pages/apps.scss"; +@import "pages/signup.scss"; diff --git a/public/less/_grid-variables.scss b/public/less/_grid-variables.scss new file mode 100644 index 00000000000..a362b11b49a --- /dev/null +++ b/public/less/_grid-variables.scss @@ -0,0 +1,36 @@ + + +// Grid breakpoints +// +// Define the minimum and maximum dimensions at which your layout will change, +// adapting to different screen sizes, for use in media queries. + +$grid-breakpoints: ( + xs: 0, + sm: 544px, + md: 768px, + lg: 992px, + xl: 1200px +) !default; + + +// Grid containers +// +// Define the maximum width of `.container` for different screen sizes. + +$container-max-widths: ( + sm: 576px, + md: 720px, + lg: 940px, + xl: 1140px +) !default; + +// Grid columns +// +// Set the number of columns and specify the width of the gutters. + +$grid-columns: 12 !default; +$grid-gutter-width: 30px !default; + +$enable-flex: false; + diff --git a/public/less/base/_grid.scss b/public/less/base/_grid.scss new file mode 100644 index 00000000000..32cd79f0094 --- /dev/null +++ b/public/less/base/_grid.scss @@ -0,0 +1,32 @@ + +// Container widths +// +// Set the container width, and override it for fixed navbars in media queries. + +.container { + @include make-container(); + @include make-container-max-widths(); +} + +// Fluid container +// +// Utilizes the mixin meant for fixed width containers, but without any defined +// width for fluid, full width layouts. + +.container-fluid { + @include make-container(); +} + +// Row +// +// Rows contain and clear the floats of your columns. + +.row { + @include make-row(); +} + +// Columns +// +// Common styles for small and large grid columns + +@include make-grid-columns(); diff --git a/public/less/mixins/_grid-framework.scss b/public/less/mixins/_grid-framework.scss new file mode 100644 index 00000000000..15d1e6bdf86 --- /dev/null +++ b/public/less/mixins/_grid-framework.scss @@ -0,0 +1,47 @@ +// Framework grid generation +// +// Used only by Bootstrap to generate the correct number of grid classes given +// any value of `$grid-columns`. + +@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) { + $breakpoint-counter: 0; + @each $breakpoint in map-keys($breakpoints) { + $breakpoint-counter: ($breakpoint-counter + 1); + @include media-breakpoint-up($breakpoint, $breakpoints) { + @if $enable-flex { + .col-#{$breakpoint} { + position: relative; + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + min-height: 1px; + padding-right: ($grid-gutter-width / 2); + padding-left: ($grid-gutter-width / 2); + } + } + + @for $i from 1 through $columns { + .col-#{$breakpoint}-#{$i} { + @include make-col($i, $columns); + } + } + + @each $modifier in (pull, push) { + @for $i from 0 through $columns { + .#{$modifier}-#{$breakpoint}-#{$i} { + @include make-col-modifier($modifier, $i, $columns) + } + } + } + + // `$columns - 1` because offsetting by the width of an entire row isn't possible + @for $i from 0 through ($columns - 1) { + @if $breakpoint-counter != 1 or $i != 0 { // Avoid emitting useless .col-xs-offset-0 + .offset-#{$breakpoint}-#{$i} { + @include make-col-modifier(offset, $i, $columns) + } + } + } + } + } +} diff --git a/public/less/mixins/_grid.scss b/public/less/mixins/_grid.scss new file mode 100644 index 00000000000..6e67f92cd39 --- /dev/null +++ b/public/less/mixins/_grid.scss @@ -0,0 +1,75 @@ +/// Grid system +// +// Generate semantic grid columns with these mixins. + +@mixin make-container($gutter: $grid-gutter-width) { + margin-left: auto; + margin-right: auto; + padding-left: ($gutter / 2); + padding-right: ($gutter / 2); + @if not $enable-flex { + @include clearfix(); + } +} + + +// For each breakpoint, define the maximum width of the container in a media query +@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) { + @each $breakpoint, $container-max-width in $max-widths { + @include media-breakpoint-up($breakpoint, $breakpoints) { + max-width: $container-max-width; + } + } +} + +@mixin make-row($gutter: $grid-gutter-width) { + @if $enable-flex { + display: flex; + flex-wrap: wrap; + } @else { + @include clearfix(); + } + margin-left: ($gutter / -2); + margin-right: ($gutter / -2); +} + +@mixin make-col($size, $columns: $grid-columns) { + position: relative; + min-height: 1px; + padding-right: ($grid-gutter-width / 2); + padding-left: ($grid-gutter-width / 2); + + @if $enable-flex { + flex: 0 0 percentage($size / $columns); + // Add a `max-width` to ensure content within each column does not blow out + // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari + // do not appear to require this. + max-width: percentage($size / $columns); + } @else { + float: left; + width: percentage($size / $columns); + } +} + +@mixin make-col-offset($size, $columns: $grid-columns) { + margin-left: percentage($size / $columns); +} + +@mixin make-col-push($size, $columns: $grid-columns) { + left: if($size > 0, percentage($size / $columns), auto); +} + +@mixin make-col-pull($size, $columns: $grid-columns) { + right: if($size > 0, percentage($size / $columns), auto); +} + +@mixin make-col-modifier($type, $size, $columns) { + // Work around the lack of dynamic mixin @include support (https://github.com/sass/sass/issues/626) + @if $type == push { + @include make-col-push($size, $columns); + } @else if $type == pull { + @include make-col-pull($size, $columns); + } @else if $type == offset { + @include make-col-offset($size, $columns); + } +} diff --git a/public/less/utils/_flex.scss b/public/less/utils/_flex.scss new file mode 100644 index 00000000000..bcf2c2fa2a5 --- /dev/null +++ b/public/less/utils/_flex.scss @@ -0,0 +1,32 @@ +@if $enable-flex { + @each $breakpoint in map-keys($grid-breakpoints) { + // Flex column reordering + @include media-breakpoint-up($breakpoint) { + .flex-#{$breakpoint}-first { order: -1; } + .flex-#{$breakpoint}-last { order: 1; } + } + + // Alignment for every item + @include media-breakpoint-up($breakpoint) { + .flex-items-#{$breakpoint}-top { align-items: flex-start; } + .flex-items-#{$breakpoint}-middle { align-items: center; } + .flex-items-#{$breakpoint}-bottom { align-items: flex-end; } + } + + // Alignment per item + @include media-breakpoint-up($breakpoint) { + .flex-#{$breakpoint}-top { align-self: flex-start; } + .flex-#{$breakpoint}-middle { align-self: center; } + .flex-#{$breakpoint}-bottom { align-self: flex-end; } + } + + // Horizontal alignment of item + @include media-breakpoint-up($breakpoint) { + .flex-items-#{$breakpoint}-left { justify-content: flex-start; } + .flex-items-#{$breakpoint}-center { justify-content: center; } + .flex-items-#{$breakpoint}-right { justify-content: flex-end; } + .flex-items-#{$breakpoint}-around { justify-content: space-around; } + .flex-items-#{$breakpoint}-between { justify-content: space-between; } + } + } +}