Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
8f8838a1d9
commit
0ccbbf166f
|
|
@ -1,17 +1,15 @@
|
|||
<script>
|
||||
import { s__, __ } from '~/locale';
|
||||
import { GlLink, GlButton, GlTooltip } from '@gitlab/ui';
|
||||
import { GlLink, GlButton, GlTooltip, GlResizeObserverDirective } from '@gitlab/ui';
|
||||
import { GlAreaChart, GlLineChart, GlChartSeriesLabel } from '@gitlab/ui/dist/charts';
|
||||
import dateFormat from 'dateformat';
|
||||
import { debounceByAnimationFrame, roundOffFloat } from '~/lib/utils/common_utils';
|
||||
import { roundOffFloat } from '~/lib/utils/common_utils';
|
||||
import { getSvgIconPathContent } from '~/lib/utils/icon_utils';
|
||||
import Icon from '~/vue_shared/components/icon.vue';
|
||||
import { chartHeight, graphTypes, lineTypes, symbolSizes, dateFormats } from '../../constants';
|
||||
import { makeDataSeries } from '~/helpers/monitor_helper';
|
||||
import { graphDataValidatorForValues } from '../../utils';
|
||||
|
||||
let debouncedResize;
|
||||
|
||||
export default {
|
||||
components: {
|
||||
GlAreaChart,
|
||||
|
|
@ -22,6 +20,9 @@ export default {
|
|||
GlLink,
|
||||
Icon,
|
||||
},
|
||||
directives: {
|
||||
GlResizeObserverDirective,
|
||||
},
|
||||
inheritAttrs: false,
|
||||
props: {
|
||||
graphData: {
|
||||
|
|
@ -29,10 +30,6 @@ export default {
|
|||
required: true,
|
||||
validator: graphDataValidatorForValues.bind(null, false),
|
||||
},
|
||||
containerWidth: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
deploymentData: {
|
||||
type: Array,
|
||||
required: false,
|
||||
|
|
@ -206,21 +203,13 @@ export default {
|
|||
return `${this.graphData.y_label}`;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
containerWidth: 'onResize',
|
||||
},
|
||||
mounted() {
|
||||
const graphTitleEl = this.$refs.graphTitle;
|
||||
if (graphTitleEl && graphTitleEl.scrollWidth > graphTitleEl.offsetWidth) {
|
||||
this.showTitleTooltip = true;
|
||||
}
|
||||
},
|
||||
beforeDestroy() {
|
||||
window.removeEventListener('resize', debouncedResize);
|
||||
},
|
||||
created() {
|
||||
debouncedResize = debounceByAnimationFrame(this.onResize);
|
||||
window.addEventListener('resize', debouncedResize);
|
||||
this.setSvg('rocket');
|
||||
this.setSvg('scroll-handle');
|
||||
},
|
||||
|
|
@ -276,7 +265,7 @@ export default {
|
|||
</script>
|
||||
|
||||
<template>
|
||||
<div class="prometheus-graph">
|
||||
<div v-gl-resize-observer-directive="onResize" class="prometheus-graph">
|
||||
<div class="prometheus-graph-header">
|
||||
<h5
|
||||
ref="graphTitle"
|
||||
|
|
|
|||
|
|
@ -22,12 +22,9 @@ import MonitorTimeSeriesChart from './charts/time_series.vue';
|
|||
import MonitorSingleStatChart from './charts/single_stat.vue';
|
||||
import GraphGroup from './graph_group.vue';
|
||||
import EmptyState from './empty_state.vue';
|
||||
import { sidebarAnimationDuration } from '../constants';
|
||||
import TrackEventDirective from '~/vue_shared/directives/track_event';
|
||||
import { getTimeDiff, isValidDate, downloadCSVOptions, generateLinkToChartOptions } from '../utils';
|
||||
|
||||
let sidebarMutationObserver;
|
||||
|
||||
export default {
|
||||
components: {
|
||||
VueDraggable,
|
||||
|
|
@ -167,7 +164,6 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
state: 'gettingStarted',
|
||||
elWidth: 0,
|
||||
formIsValid: null,
|
||||
selectedTimeWindow: {},
|
||||
isRearrangingPanels: false,
|
||||
|
|
@ -214,11 +210,6 @@ export default {
|
|||
projectPath: this.projectPath,
|
||||
});
|
||||
},
|
||||
beforeDestroy() {
|
||||
if (sidebarMutationObserver) {
|
||||
sidebarMutationObserver.disconnect();
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
if (!this.hasMetrics) {
|
||||
this.setGettingStartedEmptyState();
|
||||
|
|
@ -239,13 +230,6 @@ export default {
|
|||
} else {
|
||||
this.fetchData(range);
|
||||
}
|
||||
|
||||
sidebarMutationObserver = new MutationObserver(this.onSidebarMutation);
|
||||
sidebarMutationObserver.observe(document.querySelector('.layout-page'), {
|
||||
attributes: true,
|
||||
childList: false,
|
||||
subtree: false,
|
||||
});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -306,11 +290,6 @@ export default {
|
|||
hideAddMetricModal() {
|
||||
this.$refs.addMetricModal.hide();
|
||||
},
|
||||
onSidebarMutation() {
|
||||
setTimeout(() => {
|
||||
this.elWidth = this.$el.clientWidth;
|
||||
}, sidebarAnimationDuration);
|
||||
},
|
||||
toggleRearrangingPanels() {
|
||||
this.isRearrangingPanels = !this.isRearrangingPanels;
|
||||
},
|
||||
|
|
@ -503,7 +482,6 @@ export default {
|
|||
generateLink(groupData.group, graphData.title, graphData.y_label)
|
||||
"
|
||||
:graph-data="graphData"
|
||||
:dashboard-width="elWidth"
|
||||
:alerts-endpoint="alertsEndpoint"
|
||||
:prometheus-alerts-available="prometheusAlertsAvailable"
|
||||
:index="`${index}-${graphIndex}`"
|
||||
|
|
@ -520,7 +498,6 @@ export default {
|
|||
:graph-data="graphData"
|
||||
:deployment-data="deploymentData"
|
||||
:thresholds="getGraphAlertValues(graphData.queries)"
|
||||
:container-width="elWidth"
|
||||
:project-path="projectPath"
|
||||
group-id="monitor-time-series-chart"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ export default {
|
|||
<div v-if="showPanels" class="card prometheus-panel">
|
||||
<div class="card-header d-flex align-items-center">
|
||||
<h4 class="flex-grow-1">{{ name }}</h4>
|
||||
<a role="button" @click="collapse">
|
||||
<a role="button" class="js-graph-group-toggle" @click="collapse">
|
||||
<icon :size="16" :aria-label="__('Toggle collapse')" :name="caretIcon" />
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -40,10 +40,6 @@ export default {
|
|||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
dashboardWidth: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
index: {
|
||||
type: String,
|
||||
required: false,
|
||||
|
|
@ -103,7 +99,6 @@ export default {
|
|||
:deployment-data="deploymentData"
|
||||
:project-path="projectPath"
|
||||
:thresholds="getGraphAlertValues(graphData.queries)"
|
||||
:container-width="dashboardWidth"
|
||||
group-id="monitor-area-chart"
|
||||
>
|
||||
<div class="d-flex align-items-center">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fix empty chart in collapsed sections
|
||||
merge_request: 18699
|
||||
author:
|
||||
type: fixed
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Improve clarity of text for merge train position
|
||||
merge_request: 19031
|
||||
author:
|
||||
type: changed
|
||||
|
|
@ -20040,9 +20040,6 @@ msgstr ""
|
|||
msgid "mrWidget|%{metricsLinkStart} Memory %{metricsLinkEnd} usage is %{emphasisStart} unchanged %{emphasisEnd} at %{memoryFrom}MB"
|
||||
msgstr ""
|
||||
|
||||
msgid "mrWidget|Added to the merge train at position %{mergeTrainPosition}"
|
||||
msgstr ""
|
||||
|
||||
msgid "mrWidget|Added to the merge train by"
|
||||
msgstr ""
|
||||
|
||||
|
|
@ -20124,6 +20121,9 @@ msgstr ""
|
|||
msgid "mrWidget|If the %{missingBranchName} branch exists in your local repository, you can merge this merge request manually using the command line"
|
||||
msgstr ""
|
||||
|
||||
msgid "mrWidget|In the merge train at position %{mergeTrainPosition}"
|
||||
msgstr ""
|
||||
|
||||
msgid "mrWidget|Loading deployment statistics"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
|||
|
|
@ -539,42 +539,67 @@ describe('Dashboard', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('when the window resizes', () => {
|
||||
describe('responds to window resizes', () => {
|
||||
let promPanel;
|
||||
let promGroup;
|
||||
let panelToggle;
|
||||
let chart;
|
||||
beforeEach(() => {
|
||||
mock.onGet(mockApiEndpoint).reply(200, metricsGroupsAPIResponse);
|
||||
jasmine.clock().install();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jasmine.clock().uninstall();
|
||||
});
|
||||
|
||||
it('sets elWidth to page width when the sidebar is resized', done => {
|
||||
component = new DashboardComponent({
|
||||
el: document.querySelector('.prometheus-graphs'),
|
||||
propsData: {
|
||||
...propsData,
|
||||
hasMetrics: true,
|
||||
showPanels: false,
|
||||
showPanels: true,
|
||||
},
|
||||
store,
|
||||
});
|
||||
|
||||
expect(component.elWidth).toEqual(0);
|
||||
component.$store.dispatch('monitoringDashboard/setFeatureFlags', {
|
||||
prometheusEndpoint: false,
|
||||
});
|
||||
|
||||
const pageLayoutEl = document.querySelector('.layout-page');
|
||||
pageLayoutEl.classList.add('page-with-icon-sidebar');
|
||||
component.$store.commit(
|
||||
`monitoringDashboard/${types.RECEIVE_ENVIRONMENTS_DATA_SUCCESS}`,
|
||||
environmentData,
|
||||
);
|
||||
|
||||
Vue.nextTick()
|
||||
.then(() => {
|
||||
jasmine.clock().tick(1000);
|
||||
return Vue.nextTick();
|
||||
})
|
||||
.then(() => {
|
||||
expect(component.elWidth).toEqual(pageLayoutEl.clientWidth);
|
||||
done();
|
||||
})
|
||||
.catch(done.fail);
|
||||
component.$store.commit(
|
||||
`monitoringDashboard/${types.RECEIVE_METRICS_DATA_SUCCESS}`,
|
||||
singleGroupResponse,
|
||||
);
|
||||
|
||||
component.$store.commit(
|
||||
`monitoringDashboard/${types.SET_ALL_DASHBOARDS}`,
|
||||
dashboardGitResponse,
|
||||
);
|
||||
|
||||
return Vue.nextTick().then(() => {
|
||||
promPanel = component.$el.querySelector('.prometheus-panel');
|
||||
promGroup = promPanel.querySelector('.prometheus-graph-group');
|
||||
panelToggle = promPanel.querySelector('.js-graph-group-toggle');
|
||||
chart = promGroup.querySelector('.position-relative svg');
|
||||
});
|
||||
});
|
||||
|
||||
it('setting chart size to zero when panel group is hidden', () => {
|
||||
expect(promGroup.style.display).toBe('');
|
||||
expect(chart.clientWidth).toBeGreaterThan(0);
|
||||
|
||||
panelToggle.click();
|
||||
return Vue.nextTick().then(() => {
|
||||
expect(promGroup.style.display).toBe('none');
|
||||
expect(chart.clientWidth).toBe(0);
|
||||
promPanel.style.width = '500px';
|
||||
});
|
||||
});
|
||||
|
||||
it('expanding chart panel group after resize displays chart', () => {
|
||||
panelToggle.click();
|
||||
|
||||
expect(chart.clientWidth).toBeGreaterThan(0);
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe Ci::BridgePresenter do
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe Ci::BuildPresenter do
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe Ci::BuildRunnerPresenter do
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe Ci::GroupVariablePresenter do
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe Ci::PipelinePresenter do
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe Ci::TriggerPresenter do
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe Ci::VariablePresenter do
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe Clusters::ClusterPresenter do
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe CommitStatusPresenter do
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe ConversationalDevelopmentIndex::MetricPresenter do
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe GroupMemberPresenter do
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe MergeRequestPresenter do
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe ProjectMemberPresenter do
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe ProjectPresenter do
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
describe Projects::Settings::DeployKeysPresenter do
|
||||
|
|
|
|||
Loading…
Reference in New Issue