File tree Expand file tree Collapse file tree 3 files changed +22
-9
lines changed Expand file tree Collapse file tree 3 files changed +22
-9
lines changed Original file line number Diff line number Diff line change 8
8
<Dialog ref =" confirmDialog" >
9
9
<div
10
10
class =" fixed inset-0 z-20 flex items-center justify-center bg-black/40"
11
- @click =" closeDialog"
12
11
>
13
12
<div
14
13
class =" bulk-vision-dialog flex items-center justify-center relative max-w-[95vw] min-w-[640px] max-h-[90vh] bg-white dark:bg-gray-900 rounded-md shadow-2xl overflow-hidden"
@@ -73,7 +72,7 @@ import VisionTable from './visionTable.vue'
73
72
import adminforth from ' @/adminforth' ;
74
73
import { useI18n } from ' vue-i18n' ;
75
74
import { useRoute } from ' vue-router' ;
76
- import { type AdminUser , type AdminForthResourceCommon } from ' @/types' ;
75
+ import { AdminUser , type AdminForthResourceCommon } from ' @/types' ;
77
76
78
77
const route = useRoute ();
79
78
const { t } = useI18n ();
@@ -435,7 +434,7 @@ async function saveData() {
435
434
props .clearCheckboxes ();
436
435
} else if (res .ok === false ) {
437
436
adminforth .alert ({
438
- message: ' You are not allowed to save. ' ,
437
+ message: res . error ,
439
438
variant: ' danger' ,
440
439
timeout: ' unlimited' ,
441
440
});
Original file line number Diff line number Diff line change @@ -338,10 +338,14 @@ export default class BulkAiFlowPlugin extends AdminForthPlugin {
338
338
server . endpoint ( {
339
339
method : 'POST' ,
340
340
path : `/plugin/${ this . pluginInstanceId } /update_fields` ,
341
- handler : async ( body ) => {
342
- if ( this . options . isAllowedToSave !== false ) {
343
- const selectedIds = body . body . selectedIds || [ ] ;
344
- const fieldsToUpdate = body . body . fields || { } ;
341
+ handler : async ( { body, adminUser, headers } ) => {
342
+ let isAllowedToSave : any = { ok : true , error : '' } ;
343
+ if ( this . options . isAllowedToSave ) {
344
+ isAllowedToSave = await this . options . isAllowedToSave ( { record : { } , adminUser : adminUser , resource : this . resourceConfig } ) ;
345
+ }
346
+ if ( isAllowedToSave . ok !== false ) {
347
+ const selectedIds = body . selectedIds || [ ] ;
348
+ const fieldsToUpdate = body . fields || { } ;
345
349
const outputImageFields = [ ] ;
346
350
if ( this . options . generateImages ) {
347
351
for ( const [ key , value ] of Object . entries ( this . options . generateImages ) ) {
@@ -380,7 +384,7 @@ export default class BulkAiFlowPlugin extends AdminForthPlugin {
380
384
await Promise . all ( updates ) ;
381
385
return { ok : true } ;
382
386
} else {
383
- return { ok : false }
387
+ return { ok : false , error : isAllowedToSave . error } ;
384
388
}
385
389
}
386
390
} ) ;
Original file line number Diff line number Diff line change @@ -51,5 +51,15 @@ export interface PluginOptions {
51
51
/**
52
52
* Whether the user is allowed to save the generated images
53
53
*/
54
- isAllowedToSave ?: boolean
54
+ isAllowedToSave ?: ( { record, adminUser, resource } : {
55
+ record : any ;
56
+ adminUser : any ;
57
+ resource : any ;
58
+ } ) => Promise < {
59
+ ok : boolean ;
60
+ error : string ;
61
+ } | {
62
+ ok : boolean ;
63
+ error ?: undefined ;
64
+ } >
55
65
}
You can’t perform that action at this time.
0 commit comments