translation-connections,sqlObject,column,filter

This commit is contained in:
Stela Augustinova
2025-10-27 15:04:04 +01:00
committed by SPRINX0\prochazka
parent 8663ab2d28
commit 0e211dc91b
16 changed files with 619 additions and 168 deletions

View File

@@ -6,6 +6,7 @@
import FormTextField from '../forms/FormTextField.svelte';
import ModalBase from './ModalBase.svelte';
import { closeCurrentModal } from './modalTools';
import { _t } from '../translations';
export let header;
export let value;
@@ -29,7 +30,7 @@
<svelte:fragment slot="footer">
<FormSubmit value="OK" on:click={e => handleSubmit(e.detail)} data-testid="InputTextModal_ok" />
<FormStyledButton type="button" value="Cancel" on:click={closeCurrentModal} data-testid="InputTextModal_cancel" />
<FormStyledButton type="button" value={_t('common.cancel', { defaultMessage: 'Cancel' })} on:click={closeCurrentModal} data-testid="InputTextModal_cancel" />
</svelte:fragment>
</ModalBase>
</FormProvider>

View File

@@ -10,6 +10,7 @@
import { closeCurrentModal } from './modalTools';
import FormRadioGroupItem from '../forms/FormRadioGroupItem.svelte';
import FormValues from '../forms/FormValues.svelte';
import { _t } from '../translations';
export let condition1;
export let onFilter;
@@ -44,10 +45,10 @@
<FormProvider initialValues={{ condition1, condition2: '=', joinOperator: ' ' }} template={FormFieldTemplateLarge}>
<ModalBase {...$$restProps}>
<div slot="header">Set filter</div>
<div slot="header">{_t('filter.setFilter', {defaultMessage: 'Set filter'})}</div>
<div class="largeFormMarker">
<div class="row">Show rows where</div>
<div class="row">{_t('filter.showRowsWhere', {defaultMessage: 'Show rows where'})}</div>
<div class="row">
<div class="col-6 mr-1">
<SetFilterModal_Select {filterBehaviour} name="condition1" />
@@ -62,9 +63,9 @@
</div>
<div class="row">
<FormRadioGroupItem name="joinOperator" value=" " text="And" />
<FormRadioGroupItem name="joinOperator" value=" " text={_t('filter.and', {defaultMessage: 'And'})} />
{#if !filterBehaviour.disableOr}
<FormRadioGroupItem name="joinOperator" value="," text="Or" />
<FormRadioGroupItem name="joinOperator" value="," text={_t('filter.or', {defaultMessage: 'Or'})} />
{/if}
</div>
@@ -84,7 +85,7 @@
<div slot="footer">
<FormSubmit value="OK" on:click={handleOk} />
<FormButton type="button" value="Close" on:click={closeCurrentModal} />
<FormButton type="button" value={_t('common.close', {defaultMessage: 'Close'})} on:click={closeCurrentModal} />
</div>
</ModalBase>
</FormProvider>

View File

@@ -1,56 +1,57 @@
<script lang="ts">
import _ from 'lodash';
import FormSelectFieldRaw from '../forms/FormSelectFieldRaw.svelte';
import { _t } from '../translations';
export let name;
export let filterBehaviour;
function getOptions() {
const res = [];
if (filterBehaviour.supportEquals) {
res.push({ value: '=', label: 'equals' }, { value: '<>', label: 'does not equal' });
}
res.push({ value: '=', label: _t('filter.modal.equals', {defaultMessage: 'equals'}) }, { value: '<>', label: _t('filter.modal.doesNotEqual', {defaultMessage: 'does not equal'}) });
};
if (filterBehaviour.supportStringInclusion) {
res.push(
{ value: '+', label: 'contains' },
{ value: '~', label: 'does not contain' },
{ value: '^', label: 'begins with' },
{ value: '!^', label: 'does not begin with' },
{ value: '$', label: 'ends with' },
{ value: '!$', label: 'does not end with' }
{ value: '+', label: _t('filter.modal.contains', {defaultMessage: 'contains'}) },
{ value: '~', label: _t('filter.modal.doesNotContain', {defaultMessage: 'does not contain'}) },
{ value: '^', label: _t('filter.modal.beginsWith', {defaultMessage: 'begins with'}) },
{ value: '!^', label: _t('filter.modal.doesNotBeginWith', {defaultMessage: 'does not begin with'}) },
{ value: '$', label: _t('filter.modal.endsWith', {defaultMessage: 'ends with'}) },
{ value: '!$', label: _t('filter.modal.doesNotEndWith', {defaultMessage: 'does not end with'}) }
);
}
if (filterBehaviour.supportNumberLikeComparison) {
res.push(
{ value: '<', label: 'is smaller' },
{ value: '>', label: 'is greater' },
{ value: '<=', label: 'is smaller or equal' },
{ value: '>=', label: 'is greater or equal' }
{ value: '<', label: _t('filter.isSmaller', {defaultMessage: 'is smaller'}) },
{ value: '>', label: _t('filter.isGreater', {defaultMessage: 'is greater'}) },
{ value: '<=', label: _t('filter.isSmallerOrEqual', {defaultMessage: 'is smaller or equal'}) },
{ value: '>=', label: _t('filter.isGreaterOrEqual', {defaultMessage: 'is greater or equal'}) }
);
}
if (filterBehaviour.supportDatetimeComparison) {
res.push(
{ value: '<', label: 'is before' },
{ value: '>', label: 'is after' },
{ value: '<=', label: 'is before or equal' },
{ value: '>=', label: 'is after or equal' }
{ value: '<', label: _t('filter.isBefore', {defaultMessage: 'is before'}) },
{ value: '>', label: _t('filter.isAfter', {defaultMessage: 'is after'}) },
{ value: '<=', label: _t('filter.isBeforeOrEqual', {defaultMessage: 'is before or equal'}) },
{ value: '>=', label: _t('filter.isAfterOrEqual', {defaultMessage: 'is after or equal'}) }
);
}
if (filterBehaviour.supportNullTesting) {
res.push({ value: 'NULL', label: 'is NULL' }, { value: 'NOT NULL', label: 'is not NULL' });
res.push({ value: 'NULL', label: _t('filter.modal.isNull', {defaultMessage: 'is NULL'}) }, { value: 'NOT NULL', label: _t('filter.modal.isNotNull', {defaultMessage: 'is not NULL'}) });
}
if (filterBehaviour.supportExistsTesting) {
res.push({ value: 'EXISTS', label: 'field exists' }, { value: 'NOT EXISTS', label: 'field does not exist' });
res.push({ value: 'EXISTS', label: _t('filter.modal.fieldExists', {defaultMessage: 'field exists'}) }, { value: 'NOT EXISTS', label: _t('filter.modal.fieldDoesNotExist', {defaultMessage: 'field does not exist'}) });
}
if (filterBehaviour.supportSqlCondition) {
res.push(
{ value: 'sql', label: 'SQL condition' },
{ value: 'sqlRight', label: 'SQL condition - right side only' }
{ value: 'sql', label: _t('filter.modal.sqlCondition', {defaultMessage: 'SQL condition'}) },
{ value: 'sqlRight', label: _t('filter.modal.sqlConditionRight', {defaultMessage: 'SQL condition - right side only'}) }
);
}