Skip to content

Commit 518e30a

Browse files
committed
fix: make bulk actions state prop option and defien possible values
1 parent c7c0400 commit 518e30a

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

adminforth/documentation/docs/tutorial/03-Customization/09-bulkActions.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@ import { admin } from '../index';
3535
//diff-add
3636
confirm: 'Are you sure you want to mark all selected apartments as listed?',
3737
//diff-add
38-
action: function ({selectedIds, adminUser }: {selectedIds: any[], adminUser: AdminUser }) {
38+
action: async function ({selectedIds, adminUser }: {selectedIds: any[], adminUser: AdminUser }) {
3939
//diff-add
4040
const stmt = admin.resource('aparts').dataConnector.client.prepare(`UPDATE apartments SET listed = 1 WHERE id IN (${selectedIds.map(() => '?').join(',')})`);
4141
//diff-add
42-
stmt.run(...selectedIds);
42+
await stmt.run(...selectedIds);
4343
//diff-add
4444
return { ok: true, error: false, successMessage: `Marked ${selectedIds.length} apartments as listed` };
4545
//diff-add
@@ -48,7 +48,6 @@ import { admin } from '../index';
4848
}
4949
//diff-add
5050
],
51-
//diff-add
5251
}
5352
}
5453
```
@@ -80,7 +79,6 @@ bulkActions: [
8079
{
8180
label: 'Mark as listed',
8281
icon: 'flowbite:eye-solid',
83-
state:'active',
8482
//diff-add
8583
allowed: async ({ resource, adminUser, selectedIds }) => {
8684
//diff-add
@@ -95,9 +93,9 @@ bulkActions: [
9593
},
9694
// if optional `confirm` is provided, user will be asked to confirm action
9795
confirm: 'Are you sure you want to mark all selected apartments as listed?',
98-
action: function ({selectedIds, adminUser }: {selectedIds: any[], adminUser: AdminUser }, allow) {
96+
action: async function ({selectedIds, adminUser }: {selectedIds: any[], adminUser: AdminUser }, allow) {
9997
const stmt = admin.resource('aparts').dataConnector.client.prepare(`UPDATE apartments SET listed = 1 WHERE id IN (${selectedIds.map(() => '?').join(',')}`);
100-
stmt.run(...selectedIds);
98+
await stmt.run(...selectedIds);
10199
return { ok: true, error: false, successMessage: `Marked ${selectedIds.length} apartments as listed` };
102100
},
103101
}

adminforth/spa/src/views/ListView.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,10 @@
3838
:key="action.id"
3939
@click="startBulkAction(action.id)"
4040
class="flex gap-1 items-center py-1 px-3 text-sm font-medium text-gray-900 focus:outline-none bg-white rounded-default border border-gray-300 hover:bg-gray-100 hover:text-lightPrimary focus:z-10 focus:ring-4 focus:ring-gray-100 dark:focus:ring-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:border-gray-600 dark:hover:text-white dark:hover:bg-gray-700"
41-
:class="{'bg-red-100 text-red-800 border-red-400 dark:bg-red-700 dark:text-red-400 dark:border-red-400':action.state==='danger', 'bg-green-100 text-green-800 border-green-400 dark:bg-green-700 dark:text-green-400 dark:border-green-400':action.state==='success',
42-
'bg-lightPrimaryOpacity text-lightPrimary border-blue-400 dark:bg-blue-700 dark:text-blue-400 dark:border-blue-400':action.state==='active',
41+
:class="{
42+
'bg-red-100 text-red-800 border-red-400 dark:bg-red-700 dark:text-red-400 dark:border-red-400':action.state==='danger',
43+
'bg-green-100 text-green-800 border-green-400 dark:bg-green-700 dark:text-green-400 dark:border-green-400':action.state==='success',
44+
'bg-lightPrimaryOpacity text-lightPrimary border-blue-400 dark:bg-blue-700 dark:text-blue-400 dark:border-blue-400':action.state==='active',
4345
}"
4446
>
4547
<component

adminforth/types/Common.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,14 @@ export interface AdminForthBulkActionCommon {
9494
* Label for action button which will be displayed in the list view
9595
*/
9696
label: string,
97-
state: string,
97+
98+
/**
99+
* Bulk Action button state 'danger'|success|'active',
100+
* * 'danger' - red button
101+
* * 'success' - green button
102+
* * 'active' - blue button
103+
**/
104+
state?: 'danger' | 'success' | 'active';
98105

99106
/**
100107
* Icon for action button which will be displayed in the list view

0 commit comments

Comments
 (0)