Merge branch 'dev' into 6426-refactorConstants
gitea/salix-front/pipeline/pr-dev This commit looks good Details

This commit is contained in:
Carlos Satorres 2025-02-06 08:47:50 +00:00
commit 502f41993a
50 changed files with 139 additions and 110 deletions

View File

@ -1,6 +1,6 @@
export default { export default {
mounted: function (el, binding) { mounted(el, binding) {
const shortcut = binding.value ?? '+'; const shortcut = binding.value || '+';
const { key, ctrl, alt, callback } = const { key, ctrl, alt, callback } =
typeof shortcut === 'string' typeof shortcut === 'string'
@ -8,25 +8,24 @@ export default {
key: shortcut, key: shortcut,
ctrl: true, ctrl: true,
alt: true, alt: true,
callback: () => callback: () => el?.click(),
document
.querySelector(`button[shortcut="${shortcut}"]`)
?.click(),
} }
: binding.value; : binding.value;
if (!el.hasAttribute('shortcut')) {
el.setAttribute('shortcut', key);
}
const handleKeydown = (event) => { const handleKeydown = (event) => {
if (event.key === key && (!ctrl || event.ctrlKey) && (!alt || event.altKey)) { if (event.key === key && (!ctrl || event.ctrlKey) && (!alt || event.altKey)) {
callback(); callback();
} }
}; };
// Attach the event listener to the window
window.addEventListener('keydown', handleKeydown); window.addEventListener('keydown', handleKeydown);
el._handleKeydown = handleKeydown; el._handleKeydown = handleKeydown;
}, },
unmounted: function (el) { unmounted(el) {
if (el._handleKeydown) { if (el._handleKeydown) {
window.removeEventListener('keydown', el._handleKeydown); window.removeEventListener('keydown', el._handleKeydown);
} }

View File

@ -282,7 +282,7 @@ const setCategoryList = (data) => {
<QItem class="q-mt-lg"> <QItem class="q-mt-lg">
<QBtn <QBtn
icon="add_circle" icon="add_circle"
shortcut="+" v-shortcut="'+'"
flat flat
class="fill-icon-on-hover q-px-xs" class="fill-icon-on-hover q-px-xs"
color="primary" color="primary"

View File

@ -629,7 +629,7 @@ function handleSelection({ evt, added, rows: selectedRows }, rows) {
size="md" size="md"
round round
flat flat
shortcut="+" v-shortcut="'+'"
:disabled="!disabledAttr" :disabled="!disabledAttr"
/> />
<QTooltip> <QTooltip>
@ -647,7 +647,7 @@ function handleSelection({ evt, added, rows: selectedRows }, rows) {
color="primary" color="primary"
fab fab
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
data-cy="vnTableCreateBtn" data-cy="vnTableCreateBtn"
/> />
<QTooltip self="top right"> <QTooltip self="top right">

View File

@ -413,7 +413,7 @@ defineExpose({
fab fab
color="primary" color="primary"
icon="add" icon="add"
shortcut="+" v-shortcut
@click="showFormDialog()" @click="showFormDialog()"
class="fill-icon" class="fill-icon"
> >

View File

@ -2,7 +2,7 @@
import Navbar from 'src/components/NavBar.vue'; import Navbar from 'src/components/NavBar.vue';
</script> </script>
<template> <template>
<QLayout view="hHh LpR fFf" v-shortcut> <QLayout view="hHh LpR fFf">
<Navbar /> <Navbar />
<RouterView></RouterView> <RouterView></RouterView>
<QFooter v-if="$q.platform.is.mobile"></QFooter> <QFooter v-if="$q.platform.is.mobile"></QFooter>

View File

@ -86,7 +86,7 @@ watch(
() => route.params.id, () => route.params.id,
() => { () => {
getAccountData(); getAccountData();
} },
); );
onMounted(async () => await getAccountData(false)); onMounted(async () => await getAccountData(false));
@ -130,7 +130,8 @@ onMounted(async () => await getAccountData(false));
openConfirmationModal( openConfirmationModal(
t('User will be removed from alias'), t('User will be removed from alias'),
t('¿Seguro que quieres continuar?'), t('¿Seguro que quieres continuar?'),
() => deleteMailAlias(row, rows, rowIndex) () =>
deleteMailAlias(row, rows, rowIndex),
) )
" "
> >
@ -157,7 +158,7 @@ onMounted(async () => await getAccountData(false));
icon="add" icon="add"
color="primary" color="primary"
@click="openCreateMailAliasForm()" @click="openCreateMailAliasForm()"
shortcut="+" v-shortcut="'+'"
> >
<QTooltip>{{ t('warehouses.add') }}</QTooltip> <QTooltip>{{ t('warehouses.add') }}</QTooltip>
</QBtn> </QBtn>

View File

@ -63,7 +63,7 @@ watch(
store.url = urlPath.value; store.url = urlPath.value;
store.filter = filter.value; store.filter = filter.value;
fetchSubRoles(); fetchSubRoles();
} },
); );
const fetchSubRoles = () => paginateRef.value.fetch(); const fetchSubRoles = () => paginateRef.value.fetch();
@ -109,7 +109,7 @@ const redirectToRoleSummary = (id) =>
openConfirmationModal( openConfirmationModal(
t('El rol va a ser eliminado'), t('El rol va a ser eliminado'),
t('¿Seguro que quieres continuar?'), t('¿Seguro que quieres continuar?'),
() => deleteSubRole(row, rows, rowIndex) () => deleteSubRole(row, rows, rowIndex),
) )
" "
> >
@ -131,7 +131,7 @@ const redirectToRoleSummary = (id) =>
<QBtn <QBtn
fab fab
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
color="primary" color="primary"
@click="openCreateSubRoleForm()" @click="openCreateSubRoleForm()"
> >

View File

@ -57,7 +57,6 @@ function onFetch(rows, newRows) {
const price = row.quantity * sale.price; const price = row.quantity * sale.price;
const discount = (sale.discount * price) / 100; const discount = (sale.discount * price) / 100;
amountClaimed.value = amountClaimed.value + (price - discount); amountClaimed.value = amountClaimed.value + (price - discount);
} }
} }
@ -208,7 +207,6 @@ async function saveWhenHasChanges() {
selection="multiple" selection="multiple"
v-model:selected="selected" v-model:selected="selected"
:grid="$q.screen.lt.md" :grid="$q.screen.lt.md"
> >
<template #body-cell-claimed="{ row }"> <template #body-cell-claimed="{ row }">
<QTd auto-width align="right" class="text-primary shrink"> <QTd auto-width align="right" class="text-primary shrink">
@ -319,7 +317,13 @@ async function saveWhenHasChanges() {
</div> </div>
<QPageSticky position="bottom-right" :offset="[25, 25]"> <QPageSticky position="bottom-right" :offset="[25, 25]">
<QBtn fab color="primary" shortcut="+" icon="add" @click="showImportDialog()" /> <QBtn
fab
color="primary"
v-shortcut="'+'"
icon="add"
@click="showImportDialog()"
/>
</QPageSticky> </QPageSticky>
</template> </template>
@ -330,9 +334,10 @@ async function saveWhenHasChanges() {
width: 100%; width: 100%;
} }
.grid-style-transition { .grid-style-transition {
transition: transform 0.28s, background-color 0.28s; transition:
transform 0.28s,
background-color 0.28s;
} }
</style> </style>
<i18n> <i18n>

View File

@ -61,7 +61,7 @@ watch(
() => { () => {
claimDmsFilter.value.where.id = router.currentRoute.value.params.id; claimDmsFilter.value.where.id = router.currentRoute.value.params.id;
claimDmsRef.value.fetch(); claimDmsRef.value.fetch();
} },
); );
function openDialog(dmsId) { function openDialog(dmsId) {
@ -249,7 +249,7 @@ function onDrag() {
<QBtn <QBtn
fab fab
@click="inputFile.nativeEl.click()" @click="inputFile.nativeEl.click()"
shortcut="+" v-shortcut="'+'"
icon="add" icon="add"
color="primary" color="primary"
> >

View File

@ -61,7 +61,7 @@ watch(
(newValue) => { (newValue) => {
if (!newValue) return; if (!newValue) return;
getClientData(newValue); getClientData(newValue);
} },
); );
const getClientData = async (id) => { const getClientData = async (id) => {
@ -137,7 +137,7 @@ const toCustomerAddressEdit = (addressId) => {
<QIcon <QIcon
:style="{ :style="{
'font-variation-settings': `'FILL' ${isDefaultAddress( 'font-variation-settings': `'FILL' ${isDefaultAddress(
item item,
)}`, )}`,
}" }"
color="primary" color="primary"
@ -150,7 +150,7 @@ const toCustomerAddressEdit = (addressId) => {
t( t(
isDefaultAddress(item) isDefaultAddress(item)
? 'Default address' ? 'Default address'
: 'Set as default' : 'Set as default',
) )
}} }}
</QTooltip> </QTooltip>
@ -216,7 +216,7 @@ const toCustomerAddressEdit = (addressId) => {
color="primary" color="primary"
fab fab
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
/> />
<QTooltip> <QTooltip>
{{ t('New consignee') }} {{ t('New consignee') }}

View File

@ -158,7 +158,7 @@ const columns = computed(() => [
openConfirmationModal( openConfirmationModal(
t('Send compensation'), t('Send compensation'),
t('Do you want to report compensation to the client by mail?'), t('Do you want to report compensation to the client by mail?'),
() => sendEmail(`Receipts/${id}/balance-compensation-email`) () => sendEmail(`Receipts/${id}/balance-compensation-email`),
), ),
}, },
], ],
@ -291,7 +291,7 @@ const showBalancePdf = ({ id }) => {
color="primary" color="primary"
fab fab
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
/> />
<QTooltip> <QTooltip>
{{ t('New payment') }} {{ t('New payment') }}

View File

@ -62,7 +62,7 @@ const customerContactsRef = ref(null);
color="primary" color="primary"
flat flat
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
> >
<QTooltip> <QTooltip>
{{ t('Add contact') }} {{ t('Add contact') }}

View File

@ -195,7 +195,7 @@ const updateData = () => {
color="primary" color="primary"
fab fab
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
/> />
<QTooltip> <QTooltip>
{{ t('New contract') }} {{ t('New contract') }}

View File

@ -236,7 +236,7 @@ const toCustomerFileManagementCreate = () => {
@click.stop="toCustomerFileManagementCreate()" @click.stop="toCustomerFileManagementCreate()"
color="primary" color="primary"
fab fab
shortcut="+" v-shortcut="'+'"
icon="add" icon="add"
/> />
<QTooltip> <QTooltip>

View File

@ -104,7 +104,7 @@ const tableRef = ref();
color="primary" color="primary"
fab fab
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
/> />
<QTooltip> <QTooltip>
{{ t('Send sample') }} {{ t('Send sample') }}

View File

@ -49,7 +49,7 @@ const getData = async (observations) => {
notes.value = originalNotes notes.value = originalNotes
.map((observation) => { .map((observation) => {
const type = observationTypes.value.find( const type = observationTypes.value.find(
(type) => type.id === observation.observationTypeFk (type) => type.id === observation.observationTypeFk,
); );
return type return type
? { ? {
@ -112,8 +112,8 @@ function getPayload() {
(oNote) => (oNote) =>
oNote.id === note.id && oNote.id === note.id &&
(note.description !== oNote.description || (note.description !== oNote.description ||
note.observationTypeFk !== oNote.observationTypeFk) note.observationTypeFk !== oNote.observationTypeFk),
) ),
) )
.map((note) => ({ .map((note) => ({
data: note, data: note,
@ -130,9 +130,7 @@ async function handleDialog(data) {
.dialog({ .dialog({
component: VnConfirm, component: VnConfirm,
componentProps: { componentProps: {
title: t( title: t('confirmTicket'),
'confirmTicket'
),
message: t('confirmDeletionMessage'), message: t('confirmDeletionMessage'),
}, },
}) })
@ -341,7 +339,7 @@ function handleLocation(data, location) {
class="cursor-pointer add-icon q-mt-md" class="cursor-pointer add-icon q-mt-md"
flat flat
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
> >
<QTooltip> <QTooltip>
{{ t('Add note') }} {{ t('Add note') }}

View File

@ -17,7 +17,7 @@ const selected = ref([]);
const sortEntryObservationOptions = (data) => { const sortEntryObservationOptions = (data) => {
entryObservationsOptions.value = [...data].sort((a, b) => entryObservationsOptions.value = [...data].sort((a, b) =>
a.description.localeCompare(b.description) a.description.localeCompare(b.description),
); );
}; };
@ -142,7 +142,7 @@ const columns = computed(() => [
fab fab
color="primary" color="primary"
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
@click="entryObservationsRef.insert()" @click="entryObservationsRef.insert()"
/> />
</QPageSticky> </QPageSticky>

View File

@ -215,7 +215,7 @@ function deleteFile(dmsFk) {
v-else v-else
icon="add_circle" icon="add_circle"
round round
shortcut="+" v-shortcut="'+'"
padding="xs" padding="xs"
@click=" @click="
() => { () => {

View File

@ -232,7 +232,7 @@ async function insert() {
<QBtn <QBtn
color="primary" color="primary"
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
size="lg" size="lg"
round round
@click="!areRows ? insert() : invoiceInFormRef.insert()" @click="!areRows ? insert() : invoiceInFormRef.insert()"

View File

@ -218,7 +218,7 @@ const columns = computed(() => [
<QBtn <QBtn
color="primary" color="primary"
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
size="lg" size="lg"
round round
@click="invoiceInFormRef.insert()" @click="invoiceInFormRef.insert()"

View File

@ -117,7 +117,7 @@ const isNotEuro = (code) => code != 'EUR';
function taxRate(invoiceInTax) { function taxRate(invoiceInTax) {
const sageTaxTypeId = invoiceInTax.taxTypeSageFk; const sageTaxTypeId = invoiceInTax.taxTypeSageFk;
const taxRateSelection = sageTaxTypes.value.find( const taxRateSelection = sageTaxTypes.value.find(
(transaction) => transaction.id == sageTaxTypeId (transaction) => transaction.id == sageTaxTypeId,
); );
const taxTypeSage = taxRateSelection?.rate ?? 0; const taxTypeSage = taxRateSelection?.rate ?? 0;
const taxableBase = invoiceInTax?.taxableBase ?? 0; const taxableBase = invoiceInTax?.taxableBase ?? 0;
@ -131,14 +131,14 @@ function autocompleteExpense(evt, row, col) {
const param = isNaN(val) ? row[col.model] : val; const param = isNaN(val) ? row[col.model] : val;
const lookup = expenses.value.find( const lookup = expenses.value.find(
({ id }) => id == useAccountShortToStandard(param) ({ id }) => id == useAccountShortToStandard(param),
); );
expenseRef.value.vnSelectDialogRef.vnSelectRef.toggleOption(lookup); expenseRef.value.vnSelectDialogRef.vnSelectRef.toggleOption(lookup);
} }
const taxableBaseTotal = computed(() => { const taxableBaseTotal = computed(() => {
return getTotal(invoiceInFormRef.value.formData, 'taxableBase', ); return getTotal(invoiceInFormRef.value.formData, 'taxableBase');
}); });
const taxRateTotal = computed(() => { const taxRateTotal = computed(() => {
@ -147,13 +147,9 @@ const taxRateTotal = computed(() => {
}); });
}); });
const combinedTotal = computed(() => { const combinedTotal = computed(() => {
return +taxableBaseTotal.value + +taxRateTotal.value; return +taxableBaseTotal.value + +taxRateTotal.value;
}); });
</script> </script>
<template> <template>
<FetchData <FetchData
@ -283,7 +279,7 @@ const combinedTotal = computed(() => {
row.taxableBase = await getExchange( row.taxableBase = await getExchange(
val, val,
row.currencyFk, row.currencyFk,
invoiceIn.issued invoiceIn.issued,
); );
} }
" "
@ -426,7 +422,7 @@ const combinedTotal = computed(() => {
color="primary" color="primary"
icon="add" icon="add"
size="lg" size="lg"
shortcut="+" v-shortcut="'+'"
round round
@click="invoiceInFormRef.insert()" @click="invoiceInFormRef.insert()"
> >

View File

@ -92,7 +92,7 @@ const submit = async (rows) => {
class="cursor-pointer fill-icon-on-hover" class="cursor-pointer fill-icon-on-hover"
color="primary" color="primary"
icon="add_circle" icon="add_circle"
shortcut="+" v-shortcut="'+'"
flat flat
> >
<QTooltip> <QTooltip>

View File

@ -175,7 +175,7 @@ const insertTag = (rows) => {
@click="insertTag(rows)" @click="insertTag(rows)"
color="primary" color="primary"
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
fab fab
> >
<QTooltip> <QTooltip>

View File

@ -110,7 +110,7 @@ const getSelectedTagValues = async (tag) => {
</div> </div>
<QBtn <QBtn
icon="add_circle" icon="add_circle"
shortcut="+" v-shortcut="'+'"
flat flat
class="filter-icon q-mb-md" class="filter-icon q-mb-md"
size="md" size="md"

View File

@ -184,7 +184,7 @@ function addOrder(value, field, params) {
{{ {{
t( t(
categoryList.find((c) => c.id == customTag.value)?.name || categoryList.find((c) => c.id == customTag.value)?.name ||
'' '',
) )
}} }}
</strong> </strong>
@ -296,7 +296,7 @@ function addOrder(value, field, params) {
<template #append> <template #append>
<QBtn <QBtn
icon="add_circle" icon="add_circle"
shortcut="+" v-shortcut="'+'"
flat flat
color="primary" color="primary"
size="md" size="md"

View File

@ -88,7 +88,7 @@ async function deleteWorCenter(id) {
</VnPaginate> </VnPaginate>
</div> </div>
<QPageSticky :offset="[18, 18]"> <QPageSticky :offset="[18, 18]">
<QBtn @click.stop="dialog.show()" color="primary" fab shortcut="+" icon="add"> <QBtn @click.stop="dialog.show()" color="primary" fab v-shortcut="'+'" icon="add">
<QDialog ref="dialog"> <QDialog ref="dialog">
<FormModelPopup <FormModelPopup
:title="t('Add work center')" :title="t('Add work center')"

View File

@ -68,7 +68,7 @@ const updateDefaultStop = (data) => {
<QBtn <QBtn
flat flat
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
class="cursor-pointer" class="cursor-pointer"
color="primary" color="primary"
@click="roadmapStopsCrudRef.insert()" @click="roadmapStopsCrudRef.insert()"

View File

@ -120,8 +120,8 @@ const deletePriorities = async () => {
try { try {
await Promise.all( await Promise.all(
selectedRows.value.map((ticket) => selectedRows.value.map((ticket) =>
axios.patch(`Tickets/${ticket?.id}/`, { priority: null }) axios.patch(`Tickets/${ticket?.id}/`, { priority: null }),
) ),
); );
} finally { } finally {
refreshKey.value++; refreshKey.value++;
@ -132,8 +132,8 @@ const setOrderedPriority = async () => {
try { try {
await Promise.all( await Promise.all(
ticketList.value.map((ticket, index) => ticketList.value.map((ticket, index) =>
axios.patch(`Tickets/${ticket?.id}/`, { priority: index + 1 }) axios.patch(`Tickets/${ticket?.id}/`, { priority: index + 1 }),
) ),
); );
} finally { } finally {
refreshKey.value++; refreshKey.value++;
@ -162,7 +162,7 @@ const setHighestPriority = async (ticket, ticketList) => {
const goToBuscaman = async (ticket = null) => { const goToBuscaman = async (ticket = null) => {
await openBuscaman( await openBuscaman(
routeEntity.value?.vehicleFk, routeEntity.value?.vehicleFk,
ticket ? [ticket] : selectedRows.value ticket ? [ticket] : selectedRows.value,
); );
}; };
@ -393,7 +393,13 @@ const openSmsDialog = async () => {
</VnPaginate> </VnPaginate>
</div> </div>
<QPageSticky :offset="[20, 20]"> <QPageSticky :offset="[20, 20]">
<QBtn fab icon="add" shortcut="+" color="primary" @click="openTicketsDialog"> <QBtn
fab
icon="add"
v-shortcut="'+'"
color="primary"
@click="openTicketsDialog"
>
<QTooltip> <QTooltip>
{{ t('Add ticket') }} {{ t('Add ticket') }}
</QTooltip> </QTooltip>

View File

@ -84,7 +84,7 @@ function exprBuilder(param, value) {
</div> </div>
<QPageSticky :offset="[20, 20]"> <QPageSticky :offset="[20, 20]">
<RouterLink :to="{ name: 'ShelvingCreate' }"> <RouterLink :to="{ name: 'ShelvingCreate' }">
<QBtn fab icon="add" color="primary" shortcut="+" /> <QBtn fab icon="add" color="primary" v-shortcut="'+'" />
<QTooltip> <QTooltip>
{{ t('shelving.list.newShelving') }} {{ t('shelving.list.newShelving') }}
</QTooltip> </QTooltip>

View File

@ -71,7 +71,7 @@ function bankEntityFilter(val, update) {
filteredBankEntitiesOptions.value = bankEntitiesOptions.value.filter( filteredBankEntitiesOptions.value = bankEntitiesOptions.value.filter(
(bank) => (bank) =>
bank.bic.toLowerCase().startsWith(needle) || bank.bic.toLowerCase().startsWith(needle) ||
bank.name.toLowerCase().includes(needle) bank.name.toLowerCase().includes(needle),
); );
}); });
} }
@ -170,7 +170,7 @@ function bankEntityFilter(val, update) {
<QIcon name="info" class="cursor-pointer"> <QIcon name="info" class="cursor-pointer">
<QTooltip>{{ <QTooltip>{{
t( t(
'Name of the bank account holder if different from the provider' 'Name of the bank account holder if different from the provider',
) )
}}</QTooltip> }}</QTooltip>
</QIcon> </QIcon>
@ -194,7 +194,7 @@ function bankEntityFilter(val, update) {
<QBtn <QBtn
flat flat
icon="add" icon="add"
shortcut="+" v-shortcut
class="cursor-pointer" class="cursor-pointer"
color="primary" color="primary"
@click="supplierAccountRef.insert()" @click="supplierAccountRef.insert()"

View File

@ -89,7 +89,7 @@ const redirectToUpdateView = (addressData) => {
icon="add" icon="add"
color="primary" color="primary"
@click="redirectToCreateView()" @click="redirectToCreateView()"
shortcut="+" v-shortcut="'+'"
/> />
<QTooltip> <QTooltip>
{{ t('New address') }} {{ t('New address') }}

View File

@ -114,7 +114,7 @@ const redirectToCreateView = () => {
icon="add" icon="add"
color="primary" color="primary"
@click="redirectToCreateView()" @click="redirectToCreateView()"
shortcut="+" v-shortcut="'+'"
/> />
<QTooltip> <QTooltip>
{{ t('supplier.agencyTerms.addRow') }} {{ t('supplier.agencyTerms.addRow') }}

View File

@ -78,7 +78,7 @@ const insertRow = () => {
<QBtn <QBtn
flat flat
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
class="cursor-pointer" class="cursor-pointer"
color="primary" color="primary"
@click="insertRow()" @click="insertRow()"

View File

@ -32,7 +32,7 @@ watch(
crudModelFilter.where.ticketFk = route.params.id; crudModelFilter.where.ticketFk = route.params.id;
store.filter = crudModelFilter; store.filter = crudModelFilter;
await ticketNotesCrudRef.value.reload(); await ticketNotesCrudRef.value.reload();
} },
); );
function handleDelete(row) { function handleDelete(row) {
ticketNotesCrudRef.value.remove([row]); ticketNotesCrudRef.value.remove([row]);
@ -105,7 +105,7 @@ async function handleSave() {
<VnRow v-if="observationTypes.length > rows.length"> <VnRow v-if="observationTypes.length > rows.length">
<QBtn <QBtn
icon="add_circle" icon="add_circle"
shortcut="+" v-shortcut="'+'"
flat flat
class="fill-icon-on-hover q-ml-md" class="fill-icon-on-hover q-ml-md"
color="primary" color="primary"

View File

@ -41,7 +41,7 @@ watch(
crudModelFilter.where.ticketFk = route.params.id; crudModelFilter.where.ticketFk = route.params.id;
store.filter = crudModelFilter; store.filter = crudModelFilter;
await ticketPackagingsCrudRef.value.reload(); await ticketPackagingsCrudRef.value.reload();
} },
); );
</script> </script>
@ -118,7 +118,7 @@ watch(
<VnRow> <VnRow>
<QBtn <QBtn
icon="add_circle" icon="add_circle"
shortcut="+" v-shortcut="'+'"
flat flat
class="fill-icon-on-hover q-ml-md" class="fill-icon-on-hover q-ml-md"
color="primary" color="primary"

View File

@ -811,7 +811,7 @@ watch(
color="primary" color="primary"
fab fab
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
data-cy="ticketSaleAddToBasketBtn" data-cy="ticketSaleAddToBasketBtn"
/> />
<QTooltip class="text-no-wrap"> <QTooltip class="text-no-wrap">

View File

@ -40,7 +40,7 @@ watch(
async () => { async () => {
store.filter = crudModelFilter.value; store.filter = crudModelFilter.value;
await ticketServiceCrudRef.value.reload(); await ticketServiceCrudRef.value.reload();
} },
); );
onMounted(async () => await getDefaultTaxClass()); onMounted(async () => await getDefaultTaxClass());
@ -59,7 +59,7 @@ const createRefund = async () => {
t('service.createRefundSuccess', { t('service.createRefundSuccess', {
ticketId: refundTicket.id, ticketId: refundTicket.id,
}), }),
'positive' 'positive',
); );
router.push({ name: 'TicketSale', params: { id: refundTicket.id } }); router.push({ name: 'TicketSale', params: { id: refundTicket.id } });
}; };
@ -225,7 +225,7 @@ async function handleSave() {
color="primary" color="primary"
icon="add" icon="add"
@click="ticketServiceCrudRef.insert()" @click="ticketServiceCrudRef.insert()"
shortcut="+" v-shortcut="'+'"
/> />
</QPageSticky> </QPageSticky>
</template> </template>

View File

@ -19,7 +19,7 @@ watch(
async (val) => { async (val) => {
paginateFilter.where.ticketFk = val; paginateFilter.where.ticketFk = val;
paginateRef.value.fetch(); paginateRef.value.fetch();
} },
); );
const paginateFilter = reactive({ const paginateFilter = reactive({
@ -119,7 +119,7 @@ const openCreateModal = () => createTrackingDialogRef.value.show();
color="primary" color="primary"
fab fab
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
/> />
<QTooltip class="text-no-wrap"> <QTooltip class="text-no-wrap">
{{ t('tracking.addState') }} {{ t('tracking.addState') }}

View File

@ -217,7 +217,7 @@ const removeThermograph = async (id) => {
icon="add" icon="add"
color="primary" color="primary"
@click="redirectToThermographForm('create')" @click="redirectToThermographForm('create')"
shortcut="+" v-shortcut="'+'"
/> />
<QTooltip class="text-no-wrap"> <QTooltip class="text-no-wrap">
{{ t('Add thermograph') }} {{ t('Add thermograph') }}

View File

@ -113,7 +113,7 @@ warehouses();
<template #append> <template #append>
<QBtn <QBtn
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
flat flat
dense dense
size="12px" size="12px"

View File

@ -96,7 +96,13 @@ async function remove(row) {
> >
</VnTable> </VnTable>
<QPageSticky :offset="[18, 18]"> <QPageSticky :offset="[18, 18]">
<QBtn @click.stop="dialog.show()" color="primary" fab icon="add" shortcut="+"> <QBtn
@click.stop="dialog.show()"
color="primary"
fab
icon="add"
v-shortcut="'+'"
>
<QDialog ref="dialog"> <QDialog ref="dialog">
<FormModelPopup <FormModelPopup
:title="t('Create new Wagon type')" :title="t('Create new Wagon type')"

View File

@ -101,7 +101,7 @@ function reloadData() {
openConfirmationModal( openConfirmationModal(
t(`Remove PDA`), t(`Remove PDA`),
t('Do you want to remove this PDA?'), t('Do you want to remove this PDA?'),
() => deallocatePDA(row.deviceProductionFk) () => deallocatePDA(row.deviceProductionFk),
) )
" "
> >
@ -114,7 +114,13 @@ function reloadData() {
</template> </template>
</VnPaginate> </VnPaginate>
<QPageSticky :offset="[18, 18]"> <QPageSticky :offset="[18, 18]">
<QBtn @click.stop="dialog.show()" color="primary" fab icon="add" shortcut="+"> <QBtn
@click.stop="dialog.show()"
color="primary"
fab
icon="add"
v-shortcut="'+'"
>
<QDialog ref="dialog"> <QDialog ref="dialog">
<FormModelPopup <FormModelPopup
:title="t('Add new device')" :title="t('Add new device')"

View File

@ -221,7 +221,7 @@ const deleteRelative = async (id) => {
color="primary" color="primary"
flat flat
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
style="flex: 0" style="flex: 0"
data-cy="addRelative" data-cy="addRelative"
/> />

View File

@ -69,12 +69,12 @@ const acl = useAcl();
const selectedDateYear = computed(() => moment(selectedDate.value).isoWeekYear()); const selectedDateYear = computed(() => moment(selectedDate.value).isoWeekYear());
const worker = computed(() => arrayData.store?.data); const worker = computed(() => arrayData.store?.data);
const canSend = computed(() => const canSend = computed(() =>
acl.hasAny([{ model: 'WorkerTimeControl', props: 'sendMail', accessType: 'WRITE' }]) acl.hasAny([{ model: 'WorkerTimeControl', props: 'sendMail', accessType: 'WRITE' }]),
); );
const canUpdate = computed(() => const canUpdate = computed(() =>
acl.hasAny([ acl.hasAny([
{ model: 'WorkerTimeControl', props: 'updateMailState', accessType: 'WRITE' }, { model: 'WorkerTimeControl', props: 'updateMailState', accessType: 'WRITE' },
]) ]),
); );
const isHimself = computed(() => user.value.id === Number(route.params.id)); const isHimself = computed(() => user.value.id === Number(route.params.id));
@ -100,7 +100,7 @@ const getHeaderFormattedDate = (date) => {
}; };
const formattedWeekTotalHours = computed(() => const formattedWeekTotalHours = computed(() =>
secondsToHoursMinutes(weekTotalHours.value) secondsToHoursMinutes(weekTotalHours.value),
); );
const onInputChange = async (date) => { const onInputChange = async (date) => {
@ -320,7 +320,7 @@ const getFinishTime = () => {
today.setHours(0, 0, 0, 0); today.setHours(0, 0, 0, 0);
let todayInWeek = weekDays.value.find( let todayInWeek = weekDays.value.find(
(day) => day.dated.getTime() === today.getTime() (day) => day.dated.getTime() === today.getTime(),
); );
if (todayInWeek && todayInWeek.hours && todayInWeek.hours.length) { if (todayInWeek && todayInWeek.hours && todayInWeek.hours.length) {
@ -472,7 +472,7 @@ onMounted(async () => {
openConfirmationModal( openConfirmationModal(
t('Send time control email'), t('Send time control email'),
t('Are you sure you want to send it?'), t('Are you sure you want to send it?'),
resendEmail resendEmail,
) )
" "
> >
@ -561,7 +561,7 @@ onMounted(async () => {
@show-worker-time-form=" @show-worker-time-form="
showWorkerTimeForm( showWorkerTimeForm(
{ id: hour.id, entryCode: hour.direction }, { id: hour.id, entryCode: hour.direction },
'edit' 'edit',
) )
" "
class="hour-chip" class="hour-chip"
@ -577,7 +577,7 @@ onMounted(async () => {
</span> </span>
<QBtn <QBtn
icon="add_circle" icon="add_circle"
shortcut="+" v-shortcut="'+'"
flat flat
color="primary" color="primary"
class="fill-icon cursor-pointer" class="fill-icon cursor-pointer"

View File

@ -173,7 +173,7 @@ function handleEvent(type, event, node) {
color="primary" color="primary"
flat flat
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
class="cursor-pointer" class="cursor-pointer"
@click.stop="showCreateNodeForm(node.id)" @click.stop="showCreateNodeForm(node.id)"
> >

View File

@ -78,13 +78,13 @@ const onZoneEventFormClose = () => {
{ {
isNewMode: true, isNewMode: true,
}, },
true true,
) )
" "
color="primary" color="primary"
fab fab
icon="add" icon="add"
shortcut="+" v-shortcut="'+'"
/> />
<QTooltip class="text-no-wrap"> <QTooltip class="text-no-wrap">
{{ t('eventsInclusionForm.addEvent') }} {{ t('eventsInclusionForm.addEvent') }}

View File

@ -49,7 +49,7 @@ watch(
store.url = urlPath.value; store.url = urlPath.value;
store.filter.include = 'warehouse'; store.filter.include = 'warehouse';
fetchWarehouses(); fetchWarehouses();
} },
); );
const fetchWarehouses = () => paginateRef.value.fetch(); const fetchWarehouses = () => paginateRef.value.fetch();
@ -84,7 +84,8 @@ const openCreateWarehouseForm = () => createWarehouseDialogRef.value.show();
openConfirmationModal( openConfirmationModal(
t('zone.deleteTitle'), t('zone.deleteTitle'),
t('zone.deleteSubtitle'), t('zone.deleteSubtitle'),
() => deleteWarehouse(row, rows, rowIndex) () =>
deleteWarehouse(row, rows, rowIndex),
) )
" "
> >
@ -108,7 +109,7 @@ const openCreateWarehouseForm = () => createWarehouseDialogRef.value.show();
icon="add" icon="add"
color="primary" color="primary"
@click="openCreateWarehouseForm()" @click="openCreateWarehouseForm()"
shortcut="+" v-shortcut="'+'"
> >
<QTooltip>{{ t('warehouses.add') }}</QTooltip> <QTooltip>{{ t('warehouses.add') }}</QTooltip>
</QBtn> </QBtn>

View File

@ -74,7 +74,7 @@ async function remove(row) {
</VnPaginate> </VnPaginate>
</div> </div>
<QPageSticky position="bottom-right" :offset="[18, 18]"> <QPageSticky position="bottom-right" :offset="[18, 18]">
<QBtn @click="create" fab icon="add" shortcut="+" color="primary" /> <QBtn @click="create" fab icon="add" v-shortcut="'+'" color="primary" />
</QPageSticky> </QPageSticky>
</QPage> </QPage>
</template> </template>

View File

@ -74,7 +74,7 @@ async function remove(row) {
</VnPaginate> </VnPaginate>
</div> </div>
<QPageSticky position="bottom-right" :offset="[18, 18]"> <QPageSticky position="bottom-right" :offset="[18, 18]">
<QBtn @click="create" fab icon="add" shortcut="+" color="primary" /> <QBtn @click="create" fab icon="add" v-shortcut="'+'" color="primary" />
</QPageSticky> </QPageSticky>
</QPage> </QPage>
</template> </template>

View File

@ -28,6 +28,17 @@ describe('VnShortcuts', () => {
}); });
cy.url().should('include', module); cy.url().should('include', module);
if (['monitor', 'claim'].includes(module)) {
return;
}
cy.waitForElement('.q-page').should('exist');
cy.dataCy('vnTableCreateBtn').should('exist');
cy.get('.q-page').trigger('keydown', {
ctrlKey: true,
altKey: true,
key: '+',
});
cy.get('#formModel').should('exist');
}); });
} }
}); });