@adminforth/bulk-ai-flow 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build.log CHANGED
@@ -11,5 +11,5 @@ custom/tsconfig.json
11
11
  custom/visionAction.vue
12
12
  custom/visionTable.vue
13
13
 
14
- sent 56,599 bytes received 134 bytes 113,466.00 bytes/sec
15
- total size is 56,099 speedup is 0.99
14
+ sent 56,553 bytes received 134 bytes 113,374.00 bytes/sec
15
+ total size is 56,046 speedup is 0.99
@@ -8,7 +8,6 @@
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
  });
@@ -8,7 +8,6 @@
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
  });
package/dist/index.js CHANGED
@@ -292,10 +292,14 @@ export default class BulkAiFlowPlugin extends AdminForthPlugin {
292
292
  server.endpoint({
293
293
  method: 'POST',
294
294
  path: `/plugin/${this.pluginInstanceId}/update_fields`,
295
- handler: (body) => __awaiter(this, void 0, void 0, function* () {
296
- if (this.options.isAllowedToSave !== false) {
297
- const selectedIds = body.body.selectedIds || [];
298
- const fieldsToUpdate = body.body.fields || {};
295
+ handler: (_a) => __awaiter(this, [_a], void 0, function* ({ body, adminUser, headers }) {
296
+ let isAllowedToSave = { ok: true, error: '' };
297
+ if (this.options.isAllowedToSave) {
298
+ isAllowedToSave = yield this.options.isAllowedToSave({ record: {}, adminUser: adminUser, resource: this.resourceConfig });
299
+ }
300
+ if (isAllowedToSave.ok !== false) {
301
+ const selectedIds = body.selectedIds || [];
302
+ const fieldsToUpdate = body.fields || {};
299
303
  const outputImageFields = [];
300
304
  if (this.options.generateImages) {
301
305
  for (const [key, value] of Object.entries(this.options.generateImages)) {
@@ -334,7 +338,7 @@ export default class BulkAiFlowPlugin extends AdminForthPlugin {
334
338
  return { ok: true };
335
339
  }
336
340
  else {
337
- return { ok: false };
341
+ return { ok: false, error: isAllowedToSave.error };
338
342
  }
339
343
  })
340
344
  });
package/index.ts CHANGED
@@ -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
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adminforth/bulk-ai-flow",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
package/types.ts CHANGED
@@ -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
  }