forked from verdnatura/salix-front
Reviewed-on: verdnatura/salix-front#492 Reviewed-by: Javier Segarra <jsegarra@verdnatura.es>
This commit is contained in:
commit
ceaf8a8865
|
@ -187,15 +187,10 @@ function existSummary(routes) {
|
||||||
color: lighten($primary, 20%);
|
color: lighten($primary, 20%);
|
||||||
}
|
}
|
||||||
.q-checkbox {
|
.q-checkbox {
|
||||||
display: flex;
|
|
||||||
margin-bottom: 9px;
|
|
||||||
& .q-checkbox__label {
|
& .q-checkbox__label {
|
||||||
margin-left: 31px;
|
|
||||||
color: var(--vn-text-color);
|
color: var(--vn-text-color);
|
||||||
}
|
}
|
||||||
& .q-checkbox__inner {
|
& .q-checkbox__inner {
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
color: var(--vn-label-color);
|
color: var(--vn-label-color);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
import { dashIfEmpty } from 'src/filters';
|
import { dashIfEmpty } from 'src/filters';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
import { useClipboard } from 'src/composables/useClipboard';
|
import { useClipboard } from 'src/composables/useClipboard';
|
||||||
|
import { computed } from 'vue';
|
||||||
|
|
||||||
const $props = defineProps({
|
const $props = defineProps({
|
||||||
label: { type: String, default: null },
|
label: { type: String, default: null },
|
||||||
|
@ -24,52 +25,67 @@ function copyValueText() {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
const val = computed(() => $props.value);
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<template>
|
||||||
|
<div class="vn-label-value">
|
||||||
|
<QCheckbox
|
||||||
|
v-if="typeof value === 'boolean'"
|
||||||
|
v-model="val"
|
||||||
|
:label="label"
|
||||||
|
disable
|
||||||
|
dense
|
||||||
|
/>
|
||||||
|
<template v-else>
|
||||||
|
<div v-if="label || $slots.label" class="label">
|
||||||
|
<slot name="label">
|
||||||
|
<span>{{ label }}</span>
|
||||||
|
</slot>
|
||||||
|
</div>
|
||||||
|
<div class="value">
|
||||||
|
<slot name="value">
|
||||||
|
<span :title="value">
|
||||||
|
{{ dash ? dashIfEmpty(value) : value }}
|
||||||
|
</span>
|
||||||
|
</slot>
|
||||||
|
</div>
|
||||||
|
<div class="info" v-if="info">
|
||||||
|
<QIcon name="info" class="cursor-pointer" size="xs" color="grey">
|
||||||
|
<QTooltip class="bg-dark text-white shadow-4" :offset="[10, 10]">
|
||||||
|
{{ info }}
|
||||||
|
</QTooltip>
|
||||||
|
</QIcon>
|
||||||
|
</div>
|
||||||
|
<div class="copy" v-if="copy && value" @click="copyValueText()">
|
||||||
|
<QIcon name="Content_Copy" color="primary">
|
||||||
|
<QTooltip>{{ t('globals.copyClipboard') }}</QTooltip>
|
||||||
|
</QIcon>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.vn-label-value {
|
||||||
|
&:hover .copy {
|
||||||
|
visibility: visible;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
.label,
|
.label,
|
||||||
.value {
|
.value {
|
||||||
white-space: pre-line;
|
white-space: pre-line;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
}
|
}
|
||||||
</style>
|
|
||||||
<template>
|
|
||||||
<div class="vn-label-value">
|
|
||||||
<div v-if="$props.label || $slots.label" class="label">
|
|
||||||
<slot name="label">
|
|
||||||
<span>{{ $props.label }}</span>
|
|
||||||
</slot>
|
|
||||||
</div>
|
|
||||||
<div class="value">
|
|
||||||
<slot name="value">
|
|
||||||
<span :title="$props.value">
|
|
||||||
{{ $props.dash ? dashIfEmpty($props.value) : $props.value }}
|
|
||||||
</span>
|
|
||||||
</slot>
|
|
||||||
</div>
|
|
||||||
<div class="info" v-if="$props.info">
|
|
||||||
<QIcon name="info" class="cursor-pointer" size="xs" color="grey">
|
|
||||||
<QTooltip class="bg-dark text-white shadow-4" :offset="[10, 10]">
|
|
||||||
{{ $props.info }}
|
|
||||||
</QTooltip>
|
|
||||||
</QIcon>
|
|
||||||
</div>
|
|
||||||
<div class="copy" v-if="$props.copy && $props.value" @click="copyValueText()">
|
|
||||||
<QIcon name="Content_Copy" color="primary">
|
|
||||||
<QTooltip>{{ t('globals.copyClipboard') }}</QTooltip>
|
|
||||||
</QIcon>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
.vn-label-value:hover .copy {
|
|
||||||
visibility: visible;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.copy {
|
.copy {
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.info {
|
.info {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
:deep(.q-checkbox.disabled) {
|
||||||
|
opacity: 1 !important;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
describe('InvoiceInDescriptor', () => {
|
describe('InvoiceInDescriptor', () => {
|
||||||
const dialogBtns = '.q-card__actions button';
|
const dialogBtns = '.q-card__actions button';
|
||||||
const firstDescritorOpt = '.q-menu > .q-list > :nth-child(1) > .q-item__section';
|
const firstDescritorOpt = '.q-menu > .q-list > :nth-child(1) > .q-item__section';
|
||||||
const isBookedField =
|
const isBookedField = '.q-card:nth-child(3) .vn-label-value:nth-child(5) .q-checkbox';
|
||||||
'.q-card:nth-child(3) .vn-label-value:nth-child(5) > .value > span';
|
|
||||||
|
|
||||||
it('should booking and unbooking the invoice properly', () => {
|
it('should booking and unbooking the invoice properly', () => {
|
||||||
cy.viewport(1280, 720);
|
cy.viewport(1280, 720);
|
||||||
|
@ -12,10 +11,10 @@ describe('InvoiceInDescriptor', () => {
|
||||||
cy.openActionsDescriptor();
|
cy.openActionsDescriptor();
|
||||||
cy.get(firstDescritorOpt).click();
|
cy.get(firstDescritorOpt).click();
|
||||||
cy.get(dialogBtns).eq(1).click();
|
cy.get(dialogBtns).eq(1).click();
|
||||||
cy.get(isBookedField).should('have.attr', 'title', 'true');
|
cy.get(isBookedField).should('have.attr', 'aria-checked', 'true');
|
||||||
|
|
||||||
cy.get(firstDescritorOpt).click();
|
cy.get(firstDescritorOpt).click();
|
||||||
cy.get(dialogBtns).eq(1).click();
|
cy.get(dialogBtns).eq(1).click();
|
||||||
cy.get(isBookedField).should('have.attr', 'title', 'false');
|
cy.get(isBookedField).should('have.attr', 'aria-checked', 'false');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue