Add caret icons to the monitoring dashboard
The carets will function as a button that will allow the panels from the monitoring dashboard to collapse and show panels
This commit is contained in:
parent
c15be006c0
commit
b5b2879e4a
|
@ -1,5 +1,10 @@
|
|||
<script>
|
||||
import Icon from '~/vue_shared/components/icon.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
Icon,
|
||||
},
|
||||
props: {
|
||||
name: {
|
||||
type: String,
|
||||
|
@ -15,15 +20,42 @@ export default {
|
|||
required: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
showGroup: true,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
caretIcon() {
|
||||
return this.collapseGroup && this.showGroup ? 'angle-down' : 'angle-right';
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.showGroup = this.collapseGroup;
|
||||
},
|
||||
methods: {
|
||||
collapse() {
|
||||
this.showGroup = !this.showGroup;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-if="showPanels" class="card prometheus-panel">
|
||||
<div class="card-header">
|
||||
<h4>{{ name }}</h4>
|
||||
<div class="card-header d-flex align-items-center">
|
||||
<h4 class="flex-grow-1">{{ name }}</h4>
|
||||
<a role="button" @click="collapse">
|
||||
<icon :size="16" :aria-label="__('Toggle collapse')" :name="caretIcon" />
|
||||
</a>
|
||||
</div>
|
||||
<div
|
||||
v-if="collapseGroup"
|
||||
v-show="collapseGroup && showGroup"
|
||||
class="card-body prometheus-graph-group"
|
||||
>
|
||||
<slot></slot>
|
||||
</div>
|
||||
<div v-if="collapseGroup" class="card-body prometheus-graph-group"><slot></slot></div>
|
||||
</div>
|
||||
<div v-else class="prometheus-graph-group"><slot></slot></div>
|
||||
</template>
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Add caret icons to the monitoring dashboard
|
||||
merge_request: 32239
|
||||
author:
|
||||
type: changed
|
|
@ -12299,6 +12299,9 @@ msgstr ""
|
|||
msgid "Toggle backtrace"
|
||||
msgstr ""
|
||||
|
||||
msgid "Toggle collapse"
|
||||
msgstr ""
|
||||
|
||||
msgid "Toggle comments for this file"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
import { shallowMount } from '@vue/test-utils';
|
||||
import GraphGroup from '~/monitoring/components/graph_group.vue';
|
||||
|
||||
describe('Graph group component', () => {
|
||||
let graphGroup;
|
||||
|
||||
afterEach(() => {
|
||||
graphGroup.destroy();
|
||||
});
|
||||
|
||||
describe('When groups can be collapsed', () => {
|
||||
beforeEach(() => {
|
||||
graphGroup = shallowMount(GraphGroup, {
|
||||
propsData: {
|
||||
name: 'panel',
|
||||
collapseGroup: true,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it('should show the angle-down caret icon when collapseGroup is true', () => {
|
||||
expect(graphGroup.vm.caretIcon).toBe('angle-down');
|
||||
});
|
||||
|
||||
it('should show the angle-right caret icon when collapseGroup is false', () => {
|
||||
graphGroup.vm.collapse();
|
||||
|
||||
expect(graphGroup.vm.caretIcon).toBe('angle-right');
|
||||
});
|
||||
});
|
||||
|
||||
describe('When groups can not be collapsed', () => {
|
||||
beforeEach(() => {
|
||||
graphGroup = shallowMount(GraphGroup, {
|
||||
propsData: {
|
||||
name: 'panel',
|
||||
collapseGroup: true,
|
||||
showPanels: false,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
it('should not contain a prometheus-graph-group container when showPanels is false', () => {
|
||||
expect(graphGroup.vm.$el.querySelector('.prometheus-graph-group')).toBe(null);
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue