Skip to content

Commit 0cace2f

Browse files
committed
Merge branch 'next' of github.com:devforth/adminforth into next
2 parents 2991287 + 29fc947 commit 0cace2f

File tree

3 files changed

+21
-14
lines changed

3 files changed

+21
-14
lines changed

adminforth/modules/configValidator.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -807,17 +807,23 @@ export default class ConfigValidator implements IConfigValidator {
807807
if (typeof condition !== 'object') {
808808
return;
809809
}
810+
const relatedColumn = res.columns.find((c) => c.name === field);
811+
if (!relatedColumn) {
812+
const similar = suggestIfTypo(res.columns.map((c) => c.name), field);
813+
errors.push(`Resource "${res.resourceId}" column "${column.name}" has showIf on unknown column "${field}". ${similar ? `Did you mean "${similar}"?` : ''}`);
814+
return;
815+
}
810816
if ("$in" in condition && !Array.isArray(condition.$in)) {
811817
errors.push(`Resource "${res.resourceId}" column "${column.name}" has showIf with $in that is not an array`);
812818
}
813819
if ("$nin" in condition && !Array.isArray(condition.$nin)) {
814820
errors.push(`Resource "${res.resourceId}" column "${column.name}" has showIf with $nin that is not an array`);
815821
}
816-
if ("$includes" in condition && !column.isArray) {
817-
errors.push(`Resource "${res.resourceId}" has showIf with $includes on non-array column "${column.name}"`);
822+
if ("$includes" in condition && !relatedColumn.isArray?.enabled) {
823+
errors.push(`Resource "${res.resourceId}" has showIf with $includes on non-array column "${relatedColumn.name}"`);
818824
}
819-
if ("$nincludes" in condition && !column.isArray) {
820-
errors.push(`Resource "${res.resourceId}" has showIf with $nincludes on non-array column "${column.name}"`);
825+
if ("$nincludes" in condition && !relatedColumn.isArray?.enabled) {
826+
errors.push(`Resource "${res.resourceId}" has showIf with $nincludes on non-array column "${relatedColumn.name}"`);
821827
}
822828
});
823829
}

adminforth/spa/src/components/ResourceListTable.vue

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<tbody>
1616
<!-- table header -->
1717
<tr class="t-header sticky z-20 top-0 text-xs text-lightListTableHeadingText bg-lightListTableHeading dark:bg-darkListTableHeading dark:text-darkListTableHeadingText">
18-
<td scope="col" class="p-4 sticky-column bg-lightListTableHeading dark:bg-darkListTableHeading">
18+
<td scope="col" class="list-table-header-cell p-4 sticky-column bg-lightListTableHeading dark:bg-darkListTableHeading">
1919
<Checkbox
2020
:modelValue="allFromThisPageChecked"
2121
:disabled="!rows || !rows.length"
@@ -25,7 +25,7 @@
2525
</Checkbox>
2626
</td>
2727

28-
<td v-for="c in columnsListed" ref="headerRefs" scope="col" class="px-2 md:px-3 lg:px-6 py-3" :class="{'sticky-column bg-lightListTableHeading dark:bg-darkListTableHeading': c.listSticky}">
28+
<td v-for="c in columnsListed" ref="headerRefs" scope="col" class="list-table-header-cell px-2 md:px-3 lg:px-6 py-3" :class="{'sticky-column bg-lightListTableHeading dark:bg-darkListTableHeading': c.listSticky}">
2929

3030
<div @click="(evt) => c.sortable && onSortButtonClick(evt, c.name)"
3131
class="flex items-center " :class="{'cursor-pointer':c.sortable}">
@@ -86,7 +86,7 @@
8686
<tr @click="onClick($event,row)"
8787
v-else v-for="(row, rowI) in rows" :key="`row_${row._primaryKeyValue}`"
8888
ref="rowRefs"
89-
class="bg-lightListTable dark:bg-darkListTable border-lightListBorder dark:border-gray-700 hover:bg-lightListTableRowHover dark:hover:bg-darkListTableRowHover"
89+
class="list-table-body-row bg-lightListTable dark:bg-darkListTable border-lightListBorder dark:border-gray-700 hover:bg-lightListTableRowHover dark:hover:bg-darkListTableRowHover"
9090

9191
:class="{'border-b': rowI !== rows.length - 1, 'cursor-pointer': row._clickUrl !== null}"
9292
>
@@ -620,9 +620,10 @@ td.sticky-column {
620620
@apply left-[56px];
621621
}
622622
}
623-
tr:not(:first-child):hover {
624-
td.sticky-column {
623+
tr.list-table-body-row:not(:first-child):hover {
624+
td.sticky-column:not(.list-table-header-cell) {
625625
@apply bg-lightListTableRowHover dark:bg-darkListTableRowHover;
626626
}
627627
}
628+
628629
</style>

adminforth/spa/src/components/ResourceListTableVirtual.vue

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<tbody>
2020
<!-- table header -->
2121
<tr class="t-header sticky z-20 top-0 text-xs bg-lightListTableHeading dark:bg-darkListTableHeading dark:text-gray-400">
22-
<td scope="col" class="p-4 sticky-column bg-lightListTableHeading dark:bg-darkListTableHeading">
22+
<td scope="col" class="list-table-header-cell p-4 sticky-column bg-lightListTableHeading dark:bg-darkListTableHeading">
2323
<Checkbox
2424
:modelValue="allFromThisPageChecked"
2525
:disabled="!rows || !rows.length"
@@ -29,7 +29,7 @@
2929
</Checkbox>
3030
</td>
3131

32-
<td v-for="c in columnsListed" ref="headerRefs" scope="col" class="px-2 md:px-3 lg:px-6 py-3" :class="{'sticky-column bg-lightListTableHeading dark:bg-darkListTableHeading': c.listSticky}">
32+
<td v-for="c in columnsListed" ref="headerRefs" scope="col" class="list-table-header-cell px-2 md:px-3 lg:px-6 py-3" :class="{'sticky-column bg-lightListTableHeading dark:bg-darkListTableHeading': c.listSticky}">
3333

3434
<div @click="(evt) => c.sortable && onSortButtonClick(evt, c.name)"
3535
class="flex items-center " :class="{'cursor-pointer':c.sortable}">
@@ -97,7 +97,7 @@
9797
v-for="(row, rowI) in visibleRows"
9898
:key="`row_${row._primaryKeyValue}`"
9999
ref="rowRefs"
100-
class="bg-lightListTable dark:bg-darkListTable border-lightListBorder dark:border-gray-700 hover:bg-lightListTableRowHover dark:hover:bg-darkListTableRowHover"
100+
class="list-table-body-row bg-lightListTable dark:bg-darkListTable border-lightListBorder dark:border-gray-700 hover:bg-lightListTableRowHover dark:hover:bg-darkListTableRowHover"
101101
:class="{'border-b': rowI !== visibleRows.length - 1, 'cursor-pointer': row._clickUrl !== null}"
102102
@mounted="(el: any) => updateRowHeight(`row_${row._primaryKeyValue}`, el.offsetHeight)"
103103
>
@@ -761,8 +761,8 @@ td.sticky-column {
761761
@apply left-[56px];
762762
}
763763
}
764-
tr:not(:first-child):hover {
765-
td.sticky-column {
764+
tr.list-table-body-row:not(:first-child):hover {
765+
td.sticky-column:not(.list-table-header-cell) {
766766
@apply bg-lightListTableRowHover dark:bg-darkListTableRowHover;
767767
}
768768
}

0 commit comments

Comments
 (0)