Skip to content

Commit 91396a7

Browse files
authored
Merge pull request #61 from devforth/fix-filter-input-height
fix: change component used by filter inputs
2 parents cff6ec1 + a8bee08 commit 91396a7

File tree

2 files changed

+33
-29
lines changed

2 files changed

+33
-29
lines changed

adminforth/spa/src/afcl/Input.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
aria-describedby="helper-text-explanation"
1717
class="inline-flex bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-0 focus:ring-lightPrimary focus:border-lightPrimary dark:focus:ring-darkPrimary dark:focus:border-darkPrimary
1818
blue-500 focus:border-blue-500 block w-20 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white translate-y-0"
19-
:class="{'rounded-l-md': !$slots.prefix, 'rounded-r-md': !$slots.suffix}"
19+
:class="{'rounded-l-md': !$slots.prefix, 'rounded-r-md': !$slots.suffix, 'w-full': fullWidth}"
2020
>
2121

2222

@@ -33,6 +33,7 @@
3333
3434
const props = defineProps({
3535
type: String,
36+
fullWidth: Boolean,
3637
modelValue: String,
3738
})
3839

adminforth/spa/src/components/Filters.vue

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,14 @@
5353
:modelValue="filtersStore.filters.find(f => f.field === c.name && f.operator === 'in')?.value || []"
5454
/>
5555

56-
<input
57-
v-else-if="[ 'string', 'text' ].includes(c.type)"
58-
type="text" class="w-full py-1 px-2 border border-gray-300 rounded-md dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
59-
:placeholder="$t('Search')"
60-
@input="setFilterItem({ column: c, operator: 'ilike', value: $event.target.value || undefined })"
61-
:value="getFilterItem({ column: c, operator: 'ilike' })"
62-
>
56+
<Input
57+
v-else-if="[ 'string', 'text' ].includes(c.type)"
58+
type="text"
59+
full-width
60+
:placeholder="$t('Search')"
61+
@update:modelValue="setFilterItem({ column: c, operator: 'ilike', value: $event || undefined })"
62+
:modelValue="getFilterItem({ column: c, operator: 'ilike' })"
63+
/>
6364

6465
<CustomDateRangePicker
6566
v-else-if="['datetime'].includes(c.type)"
@@ -70,13 +71,14 @@
7071
@update:valueEnd="setFilterItem({ column: c, operator: 'lte', value: $event || undefined })"
7172
/>
7273

73-
<input
74-
v-else-if="[ 'date', 'time' ].includes(c.type)"
75-
type="text" class="w-full py-1 px-2 border border-gray-300 rounded-md"
76-
:placeholder="$t('Search datetime')"
77-
@input="setFilterItem({ column: c, operator: 'ilike', value: $event.target.value || undefined })"
78-
:value="getFilterItem({ column: c, operator: 'ilike' })"
79-
>
74+
<Input
75+
v-else-if="[ 'date', 'time' ].includes(c.type)"
76+
type="text"
77+
full-width
78+
:placeholder="$t('Search datetime')"
79+
@update:modelValue="setFilterItem({ column: c, operator: 'ilike', value: $event || undefined })"
80+
:modelValue="getFilterItem({ column: c, operator: 'ilike' })"
81+
/>
8082

8183
<CustomRangePicker
8284
v-else-if="['integer', 'decimal', 'float'].includes(c.type) && c.allowMinMaxQuery"
@@ -89,20 +91,20 @@
8991
/>
9092

9193
<div v-else-if="['integer', 'decimal', 'float'].includes(c.type)" class="flex gap-2">
92-
<input
93-
type="number" aria-describedby="helper-text-explanation"
94-
class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-20 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
95-
:placeholder="$t('From')"
96-
@input="setFilterItem({ column: c, operator: 'gte', value: $event.target.value || undefined })"
97-
:value="getFilterItem({ column: c, operator: 'gte' })"
98-
>
99-
<input
100-
type="number" aria-describedby="helper-text-explanation"
101-
class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-20 p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500"
102-
:placeholder="$t('To')"
103-
@input="setFilterItem({ column: c, operator: 'lte', value: $event.target.value || undefined})"
104-
:value="getFilterItem({ column: c, operator: 'lte' })"
105-
>
94+
<Input
95+
type="number"
96+
aria-describedby="helper-text-explanation"
97+
:placeholder="$t('From')"
98+
@update:modelValue="setFilterItem({ column: c, operator: 'gte', value: $event || undefined })"
99+
:modelValue="getFilterItem({ column: c, operator: 'gte' })"
100+
/>
101+
<Input
102+
type="number"
103+
aria-describedby="helper-text-explanation"
104+
:placeholder="$t('To')"
105+
@update:modelValue="setFilterItem({ column: c, operator: 'lte', value: $event|| undefined })"
106+
:modelValue="getFilterItem({ column: c, operator: 'lte' })"
107+
/>
106108
</div>
107109

108110
</li>
@@ -132,6 +134,7 @@ import { useRouter } from 'vue-router';
132134
import { computedAsync } from '@vueuse/core'
133135
import CustomRangePicker from "@/components/CustomRangePicker.vue";
134136
import { useFiltersStore } from '@/stores/filters';
137+
import Input from '@/afcl/Input.vue';
135138
import Select from '@/afcl/Select.vue';
136139
137140
const filtersStore = useFiltersStore();

0 commit comments

Comments
 (0)