Skip to content

Commit 9b81dd6

Browse files
committed
Add side-title to CmkCollapsible and use it in PendingChangesList
Add number of change besides the "Changes" title. Move "Foreign changes" on the same line as section title and reduce opacity. CMK-24849 Change-Id: Ic10ab6274f3eb21a9e6d5d0089c9ab6e84454455
1 parent 158196e commit 9b81dd6

3 files changed

Lines changed: 49 additions & 32 deletions

File tree

packages/cmk-frontend-vue/src/components/CmkCollapsibleTitle.vue

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ interface CollapsibleTitleProps {
1010
/**@property {string} title - Text to display next to the chevron */
1111
title: string
1212
13+
/**@property {string} sideTitle - Text to display on the right side of the title */
14+
sideTitle?: string
15+
1316
/** @property {boolean} open - If true, the collapsible element will be open by default,
1417
* otherwise it will be rendered closed
1518
*/
@@ -32,12 +35,17 @@ defineEmits(['toggleOpen'])
3235
<span class="cmk-collapsible-title__text">
3336
{{ title }}
3437
</span>
38+
<span v-if="sideTitle" class="cmk-collapsible-title__side-text">
39+
{{ sideTitle }}
40+
</span>
3541
<HelpText v-if="help_text" :help="help_text" />
3642
</button>
3743
</template>
3844

3945
<style scoped>
4046
.cmk-collapsible-title {
47+
display: flex;
48+
align-items: center;
4149
position: relative;
4250
margin-left: 0;
4351
padding-left: 0;
@@ -91,9 +99,14 @@ defineEmits(['toggleOpen'])
9199
&.cmk-collapsible-title__chevron--right:before {
92100
top: 4px;
93101
left: 0;
94-
margin-bottom: 16px;
95102
transform: rotate(45deg);
96103
transition: transform 100ms linear;
97104
}
98105
}
106+
107+
.cmk-collapsible-title__side-text {
108+
color: var(--font-color-dimmed);
109+
font-weight: var(--font-weight-default);
110+
margin-left: auto;
111+
}
99112
</style>

packages/cmk-frontend-vue/src/components/_demo/DemoCmkCollapsibles.vue

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,27 @@ const open = ref(false)
1515
</script>
1616

1717
<template>
18-
<CmkCollapsibleTitle
19-
:title="'Collapsible Title'"
20-
:open="open"
21-
:help_text="'Some help text'"
22-
@toggle-open="open = !open"
23-
/>
24-
<CmkCollapsible :open="open">
25-
<CmkIndent> Some text inside the collapsible </CmkIndent>
26-
</CmkCollapsible>
18+
<div class="demo-container">
19+
<CmkCollapsibleTitle
20+
:title="'Collapsible Title'"
21+
:side-title="'Side Title'"
22+
:open="open"
23+
:help_text="'Some help text'"
24+
class="collapsible"
25+
@toggle-open="open = !open"
26+
/>
27+
<CmkCollapsible :open="open">
28+
<CmkIndent> Some text inside the collapsible </CmkIndent>
29+
</CmkCollapsible>
30+
</div>
2731
</template>
32+
33+
<style scoped>
34+
.demo-container {
35+
min-width: 400px;
36+
}
37+
38+
.collapsible {
39+
width: 100%;
40+
}
41+
</style>

packages/cmk-frontend-vue/src/main-menu/components/pending-changes/PendingChangesList.vue

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ conditions defined in the file COPYING, which is part of this source code packag
55
-->
66

77
<script setup lang="ts">
8-
import { ref } from 'vue'
8+
import { ref, computed } from 'vue'
99
import CmkCollapsibleTitle from '@/components/CmkCollapsibleTitle.vue'
1010
import CmkCollapsible from '@/components/CmkCollapsible.vue'
1111
import CmkIndent from '@/components/CmkIndent.vue'
@@ -17,35 +17,35 @@ import PendingChangeItemText from './PendingChangeItemText.vue'
1717
1818
const { t } = usei18n('changes-app')
1919
20-
defineProps<{
20+
const props = defineProps<{
2121
pendingChanges: PendingChanges[]
2222
selectedSites: string[]
2323
numberOfForeignChanges: number
2424
userName: string
2525
}>()
2626
2727
const pendingChangesCollapsible = ref<boolean>(true)
28+
29+
const changesTitle = computed(() => {
30+
return `${t('changes', 'Changes')} (${props.pendingChanges.length})`
31+
})
32+
33+
const changesSideTitle = computed(() => {
34+
return `${t('foreign-changes', 'Foreign changes: ')} ${props.numberOfForeignChanges}`
35+
})
2836
</script>
2937

3038
<template>
3139
<div class="pending-changes-container">
3240
<CmkCollapsibleTitle
33-
:title="`Changes`"
41+
:title="changesTitle"
42+
:side-title="changesSideTitle"
3443
class="collapsible-title"
3544
:open="pendingChangesCollapsible"
3645
@toggle-open="pendingChangesCollapsible = !pendingChangesCollapsible"
3746
/>
3847

3948
<CmkCollapsible :open="pendingChangesCollapsible" class="cmk-collapsible-pending-changes">
40-
<CmkIndent class="cmk-indent-foreign-changes-container">
41-
<div class="cmk-div-foreign-changes-text">
42-
{{ t('foreign-changes', 'Foreign changes: ') }}
43-
</div>
44-
<div class="cmk-div-foreign-changes-text">
45-
{{ numberOfForeignChanges }}
46-
</div>
47-
</CmkIndent>
48-
4949
<CmkIndent v-if="selectedSites.length === 0" class="cmk-indent-no-sites-selected-container">
5050
<div class="cmk-div-no-sites-selected">
5151
{{ t('no-sites-selected', "You haven't selected any sites") }}
@@ -112,8 +112,6 @@ const pendingChangesCollapsible = ref<boolean>(true)
112112
background-color: var(--ux-theme-5);
113113
width: 100%;
114114
box-sizing: border-box;
115-
display: block;
116-
text-align: left;
117115
}
118116
119117
.cmk-collapsible-pending-changes {
@@ -125,14 +123,6 @@ const pendingChangesCollapsible = ref<boolean>(true)
125123
height: 100%;
126124
}
127125
128-
.cmk-indent-foreign-changes-container {
129-
display: flex;
130-
flex-direction: row;
131-
align-items: flex-start;
132-
gap: 6px;
133-
border-bottom: 2px solid var(--ux-theme-4) !important;
134-
}
135-
136126
.cmk-indent-no-sites-selected-container {
137127
display: flex;
138128
flex-direction: column;

0 commit comments

Comments
 (0)