Commit d8f1cb39 authored by Clement Ho's avatar Clement Ho

Merge branch '64730-metrics-dashboard-menu-is-cramped-with-new-features-enabled' into 'master'

Improve layout of dropdowns in the metrics dashboard page

Closes #64730

See merge request gitlab-org/gitlab-ce!31239
parents cdf347bf ba82fb6d
...@@ -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