Commit ba82fb6d authored by Miguel Rincon's avatar Miguel Rincon Committed by Clement Ho

Improve layout of dropdowns in metrics page

Ensure layout works on xs and sm screens

Add check in case buttons are not present

Apply Prettier to file

Remove unused class and div, reduce margins
parent cdf347bf
...@@ -3,6 +3,7 @@ import { ...@@ -3,6 +3,7 @@ import {
GlButton, GlButton,
GlDropdown, GlDropdown,
GlDropdownItem, GlDropdownItem,
GlFormGroup,
GlModal, GlModal,
GlModalDirective, GlModalDirective,
GlTooltipDirective, GlTooltipDirective,
...@@ -34,6 +35,7 @@ export default { ...@@ -34,6 +35,7 @@ export default {
GlButton, GlButton,
GlDropdown, GlDropdown,
GlDropdownItem, GlDropdownItem,
GlFormGroup,
GlModal, GlModal,
}, },
directives: { directives: {
...@@ -278,15 +280,19 @@ export default { ...@@ -278,15 +280,19 @@ export default {
<template> <template>
<div class="prometheus-graphs"> <div class="prometheus-graphs">
<div class="gl-p-3 border-bottom bg-gray-light d-flex justify-content-between"> <div class="gl-p-3 pb-0 border-bottom bg-gray-light">
<div <div class="row">
v-if="environmentsEndpoint" <template v-if="environmentsEndpoint">
class="dropdowns d-flex align-items-center justify-content-between" <gl-form-group
v-if="multipleDashboardsEnabled"
:label="__('Dashboard')"
label-size="sm"
label-for="monitor-dashboards-dropdown"
class="col-sm-12 col-md-4 col-lg-2"
> >
<div v-if="multipleDashboardsEnabled" class="d-flex align-items-center">
<label class="mb-0">{{ __('Dashboard') }}</label>
<gl-dropdown <gl-dropdown
class="ml-2 mr-3 js-dashboards-dropdown" id="monitor-dashboards-dropdown"
class="mb-0 d-flex js-dashboards-dropdown"
toggle-class="dropdown-menu-toggle" toggle-class="dropdown-menu-toggle"
:text="selectedDashboardText" :text="selectedDashboardText"
> >
...@@ -296,15 +302,20 @@ export default { ...@@ -296,15 +302,20 @@ export default {
:active="dashboard.path === currentDashboard" :active="dashboard.path === currentDashboard"
active-class="is-active" active-class="is-active"
:href="`?dashboard=${dashboard.path}`" :href="`?dashboard=${dashboard.path}`"
>{{ dashboard.display_name || dashboard.path }}</gl-dropdown-item
> >
{{ dashboard.display_name || dashboard.path }}
</gl-dropdown-item>
</gl-dropdown> </gl-dropdown>
</div> </gl-form-group>
<div class="d-flex align-items-center">
<strong>{{ s__('Metrics|Environment') }}</strong> <gl-form-group
:label="s__('Metrics|Environment')"
label-size="sm"
label-for="monitor-environments-dropdown"
class="col-sm-6 col-md-4 col-lg-2"
>
<gl-dropdown <gl-dropdown
class="prepend-left-10 js-environments-dropdown" id="monitor-environments-dropdown"
class="mb-0 d-flex js-environments-dropdown"
toggle-class="dropdown-menu-toggle" toggle-class="dropdown-menu-toggle"
:text="currentEnvironmentName" :text="currentEnvironmentName"
:disabled="environments.length === 0" :disabled="environments.length === 0"
...@@ -318,11 +329,18 @@ export default { ...@@ -318,11 +329,18 @@ export default {
>{{ environment.name }}</gl-dropdown-item >{{ environment.name }}</gl-dropdown-item
> >
</gl-dropdown> </gl-dropdown>
</div> </gl-form-group>
<div v-if="!showEmptyState" class="d-flex align-items-center prepend-left-8">
<strong>{{ s__('Metrics|Show last') }}</strong> <gl-form-group
v-if="!showEmptyState"
:label="s__('Metrics|Show last')"
label-size="sm"
label-for="monitor-time-window-dropdown"
class="col-sm-6 col-md-4 col-lg-2"
>
<gl-dropdown <gl-dropdown
class="prepend-left-10 js-time-window-dropdown" id="monitor-time-window-dropdown"
class="mb-0 d-flex js-time-window-dropdown"
toggle-class="dropdown-menu-toggle" toggle-class="dropdown-menu-toggle"
:text="selectedTimeWindow" :text="selectedTimeWindow"
> >
...@@ -335,16 +353,24 @@ export default { ...@@ -335,16 +353,24 @@ export default {
>{{ value }}</gl-dropdown-item >{{ value }}</gl-dropdown-item
> >
</gl-dropdown> </gl-dropdown>
</div> </gl-form-group>
</div> </template>
<div class="d-flex">
<div v-if="addingMetricsAvailable"> <gl-form-group
v-if="addingMetricsAvailable || externalDashboardUrl.length"
label-for="prometheus-graphs-dropdown-buttons"
class="dropdown-buttons col-lg d-lg-flex align-items-end"
>
<div id="prometheus-graphs-dropdown-buttons">
<gl-button <gl-button
v-if="addingMetricsAvailable"
v-gl-modal="$options.addMetric.modalId" v-gl-modal="$options.addMetric.modalId"
class="js-add-metric-button text-success border-success" class="mr-2 mt-1 js-add-metric-button text-success border-success"
>{{ $options.addMetric.title }}</gl-button
> >
{{ $options.addMetric.title }}
</gl-button>
<gl-modal <gl-modal
v-if="addingMetricsAvailable"
ref="addMetricModal" ref="addMetricModal"
:modal-id="$options.addMetric.modalId" :modal-id="$options.addMetric.modalId"
:title="$options.addMetric.title" :title="$options.addMetric.title"
...@@ -362,23 +388,28 @@ export default { ...@@ -362,23 +388,28 @@ export default {
:disabled="!formIsValid" :disabled="!formIsValid"
variant="success" variant="success"
@click="submitCustomMetricsForm" @click="submitCustomMetricsForm"
>{{ __('Save changes') }}</gl-button
> >
{{ __('Save changes') }}
</gl-button>
</div> </div>
</gl-modal> </gl-modal>
</div>
<gl-button <gl-button
v-if="externalDashboardUrl.length" v-if="externalDashboardUrl.length"
class="js-external-dashboard-link prepend-left-8" class="mt-1 js-external-dashboard-link"
variant="primary" variant="primary"
:href="externalDashboardUrl" :href="externalDashboardUrl"
target="_blank" target="_blank"
rel="noopener noreferrer"
> >
{{ __('View full dashboard') }} {{ __('View full dashboard') }}
<icon name="external-link" /> <icon name="external-link" />
</gl-button> </gl-button>
</div> </div>
</gl-form-group>
</div> </div>
</div>
<div v-if="!showEmptyState"> <div v-if="!showEmptyState">
<graph-group <graph-group
v-for="(groupData, index) in groups" v-for="(groupData, index) in groups"
......
.prometheus-graphs { .prometheus-graphs {
.dropdowns { .dropdown-buttons {
.dropdown-menu-toggle { > div {
svg { margin-left: auto;
position: absolute;
right: 5%;
top: 25%;
} }
} }
.dropdown-menu-toggle, .col-form-label {
.dropdown-menu { line-height: 1;
width: 240px; padding-top: 0;
} }
.form-group {
margin-bottom: map-get($spacing-scale, 3);
} }
} }
......
---
title: Improve layout of dropdowns in the metrics dashboard page
merge_request: 31239
author:
type: fixed
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment