Merge branch 'master' into hotfix_itemFixedPrice
gitea/salix-front/pipeline/pr-master This commit looks good Details

This commit is contained in:
Javier Segarra 2024-12-09 07:05:18 +00:00
commit e0bc14e3f7
8 changed files with 37 additions and 18 deletions

6
Jenkinsfile vendored
View File

@ -4,7 +4,8 @@ def PROTECTED_BRANCH
def BRANCH_ENV = [ def BRANCH_ENV = [
test: 'test', test: 'test',
master: 'production' master: 'production',
beta: 'production'
] ]
node { node {
@ -15,7 +16,8 @@ node {
PROTECTED_BRANCH = [ PROTECTED_BRANCH = [
'dev', 'dev',
'test', 'test',
'master' 'master',
'beta'
].contains(env.BRANCH_NAME) ].contains(env.BRANCH_NAME)
// https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables // https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables

View File

@ -2,7 +2,7 @@
import CreateNewPostcode from 'src/components/CreateNewPostcodeForm.vue'; import CreateNewPostcode from 'src/components/CreateNewPostcodeForm.vue';
import VnSelectDialog from 'components/common/VnSelectDialog.vue'; import VnSelectDialog from 'components/common/VnSelectDialog.vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { ref } from 'vue'; import { computed } from 'vue';
import { useAttrs } from 'vue'; import { useAttrs } from 'vue';
import { useRequired } from 'src/composables/useRequired'; import { useRequired } from 'src/composables/useRequired';
const { t } = useI18n(); const { t } = useI18n();
@ -43,7 +43,7 @@ const formatLocation = (obj, properties) => {
return filteredParts.join(', '); return filteredParts.join(', ');
}; };
const modelValue = ref( const modelValue = computed(() =>
props.location ? formatLocation(props.location, locationProperties) : null props.location ? formatLocation(props.location, locationProperties) : null
); );

View File

@ -20,7 +20,7 @@ export function useRole() {
function hasAny(roles) { function hasAny(roles) {
const roleStore = state.getRoles(); const roleStore = state.getRoles();
if (typeof roles === 'string') roles = [roles];
for (const role of roles) { for (const role of roles) {
if (roleStore.value.indexOf(role) !== -1) return true; if (roleStore.value.indexOf(role) !== -1) return true;
} }

View File

@ -29,7 +29,8 @@ async function hasCustomerRole() {
:filter="filter" :filter="filter"
model="customer" model="customer"
:mapper=" :mapper="
({ active, name, email }) => { ({ account }) => {
const { name, email, active } = account;
return { return {
active, active,
name, name,

View File

@ -37,7 +37,7 @@ const columns = computed(() => [
}, },
isId: true, isId: true,
columnFilter: { columnFilter: {
name: 'search', name: 'id',
}, },
}, },
{ {
@ -74,7 +74,9 @@ const columns = computed(() => [
component: 'select', component: 'select',
attrs: { attrs: {
url: 'Clients', url: 'Clients',
fields: ['id', 'name'], fields: ['id', 'socialName'],
optionLabel: 'socialName',
optionValue: 'id',
}, },
columnField: { columnField: {
component: null, component: null,

View File

@ -760,7 +760,7 @@ watch(
</template> </template>
<template #column-item="{ row }"> <template #column-item="{ row }">
<div class="row column full-width justify-between items-start"> <div class="row column full-width justify-between items-start">
{{ row?.item?.name }} {{ row?.concept }}
<div v-if="row?.item?.subName" class="subName"> <div v-if="row?.item?.subName" class="subName">
{{ row?.item?.subName.toUpperCase() }} {{ row?.item?.subName.toUpperCase() }}
</div> </div>

View File

@ -11,7 +11,7 @@ import VnInput from 'src/components/common/VnInput.vue';
import useNotify from 'src/composables/useNotify.js'; import useNotify from 'src/composables/useNotify.js';
import axios from 'axios'; import axios from 'axios';
import { toDateFormat } from 'src/filters/date'; import { toDateFormat } from 'src/filters/date';
import { useRole } from 'src/composables/useRole'; import { useAcl } from 'src/composables/useAcl';
import { useVnConfirm } from 'composables/useVnConfirm'; import { useVnConfirm } from 'composables/useVnConfirm';
const emit = defineEmits(['updateDiscounts', 'getMana', 'refreshTable']); const emit = defineEmits(['updateDiscounts', 'getMana', 'refreshTable']);
@ -48,7 +48,7 @@ const { push } = useRouter();
const { t } = useI18n(); const { t } = useI18n();
const { dialog } = useQuasar(); const { dialog } = useQuasar();
const { notify } = useNotify(); const { notify } = useNotify();
const role = useRole(); const acl = useAcl();
const btnDropdownRef = ref(null); const btnDropdownRef = ref(null);
const { openConfirmationModal } = useVnConfirm(); const { openConfirmationModal } = useVnConfirm();
@ -58,8 +58,10 @@ const isClaimable = computed(() => {
if (ticket.value) { if (ticket.value) {
const landedPlusWeek = new Date(ticket.value.landed); const landedPlusWeek = new Date(ticket.value.landed);
landedPlusWeek.setDate(landedPlusWeek.getDate() + 7); landedPlusWeek.setDate(landedPlusWeek.getDate() + 7);
const hasClaimManagerRole = role.hasAny('claimManager'); const createAfterDeadline = acl.hasAny([
return landedPlusWeek >= Date.vnNew() || hasClaimManagerRole; { model: 'Claim', props: 'createAfterDeadline', accessType: 'WRITE' },
]);
return landedPlusWeek >= Date.vnNew() || createAfterDeadline;
} }
return false; return false;
}); });

View File

@ -57,7 +57,7 @@ const travelKgPercentages = ref([]);
const tableColumnComponents = { const tableColumnComponents = {
id: { id: {
component: QBtn, component: QBtn,
attrs: { flat: true, color: 'primary' }, attrs: { flat: true, color: 'primary', dense: true },
}, },
cargoSupplierNickname: { cargoSupplierNickname: {
component: QBtn, component: QBtn,
@ -178,6 +178,7 @@ const columns = computed(() => [
align: 'left', align: 'left',
showValue: false, showValue: false,
sortable: true, sortable: true,
style: 'min-width: 170px;',
}, },
{ {
label: t('globals.packages'), label: t('globals.packages'),
@ -237,7 +238,7 @@ const columns = computed(() => [
format: (value) => toDate(value), format: (value) => toDate(value),
}, },
{ {
label: t('globals.wareHhuseIn'), label: t('globals.warehouseIn'),
field: 'warehouseInName', field: 'warehouseInName',
name: 'warehouseInName', name: 'warehouseInName',
align: 'left', align: 'left',
@ -506,7 +507,7 @@ const getColor = (percentage) => {
:key="col.name" :key="col.name"
:props="props" :props="props"
@click="stopEventPropagation($event, col)" @click="stopEventPropagation($event, col)"
auto-width :style="col.style"
> >
<component <component
:is="tableColumnComponents[col.name].component" :is="tableColumnComponents[col.name].component"
@ -581,7 +582,7 @@ const getColor = (percentage) => {
}" }"
> >
<QTd> <QTd>
<QBtn flat class="link">{{ entry.id }} </QBtn> <QBtn dense flat class="link">{{ entry.id }} </QBtn>
<EntryDescriptorProxy :id="entry.id" /> <EntryDescriptorProxy :id="entry.id" />
</QTd> </QTd>
<QTd> <QTd>
@ -637,6 +638,18 @@ const getColor = (percentage) => {
:deep(.q-table) { :deep(.q-table) {
border-collapse: collapse; border-collapse: collapse;
th {
padding: 0;
}
tbody tr td {
&:nth-child(1) {
max-width: 65px;
}
&:nth-child(4) {
padding: 0;
}
}
} }
.q-td :deep(input) { .q-td :deep(input) {
@ -684,7 +697,6 @@ const getColor = (percentage) => {
width: max-content; width: max-content;
} }
</style> </style>
<i18n> <i18n>
en: en:
searchExtraCommunity: Search for extra community shipping searchExtraCommunity: Search for extra community shipping