@adminforth/bulk-ai-flow 1.15.8 → 1.15.9
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 +2 -2
- package/custom/VisionTable.vue +4 -4
- package/dist/custom/VisionTable.vue +4 -4
- package/dist/index.js +9 -0
- package/index.ts +9 -0
- package/package.json +1 -1
package/build.log
CHANGED
|
@@ -13,5 +13,5 @@ custom/package-lock.json
|
|
|
13
13
|
custom/package.json
|
|
14
14
|
custom/tsconfig.json
|
|
15
15
|
|
|
16
|
-
sent 81,
|
|
17
|
-
total size is 80,
|
|
16
|
+
sent 81,049 bytes received 172 bytes 162,442.00 bytes/sec
|
|
17
|
+
total size is 80,408 speedup is 0.99
|
package/custom/VisionTable.vue
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<img
|
|
25
25
|
v-if="isValidUrl(image)"
|
|
26
26
|
:src="image"
|
|
27
|
-
class="w-20 h-20 object-cover rounded cursor-pointer border hover:border-blue-500 transition"
|
|
27
|
+
class="w-20 h-20 object-cover rounded cursor-pointer border hover:border-blue-500 transition my-2"
|
|
28
28
|
@click="zoomImage(image)"
|
|
29
29
|
/>
|
|
30
30
|
<div v-else class="w-20 h-20">
|
|
@@ -124,8 +124,8 @@
|
|
|
124
124
|
|
|
125
125
|
<div v-if="isAiResponseReceivedImage[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])]" @mouseenter="(() => { hovers[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])][n] = true})" @mouseleave="(() => { hovers[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])][n] = false})">
|
|
126
126
|
<div v-if="isInColumnImage(n)">
|
|
127
|
-
<div class="mt-2 flex items-center justify-start gap-2">
|
|
128
|
-
<div v-if="isValidUrl(selected[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])][n])" class="flex flex-col items-center">
|
|
127
|
+
<div class="mt-2 mb-2 flex items-center justify-start gap-2">
|
|
128
|
+
<div v-if="isValidUrl(selected[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])][n])" class="flex flex-col items-center relative">
|
|
129
129
|
<img
|
|
130
130
|
:src="selected[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])][n]"
|
|
131
131
|
class="w-20 h-20 object-cover rounded cursor-pointer border hover:border-blue-500 transition"
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
/>
|
|
134
134
|
<p
|
|
135
135
|
v-if="isImageHasPreviewUrl[n]"
|
|
136
|
-
class="mt-
|
|
136
|
+
class="absolute mt-20 text-sm hover:text-blue-500 hover:underline hover:cursor-pointer flex items-center gap-1"
|
|
137
137
|
:class="{ 'opacity-0': !hovers[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])][n] }"
|
|
138
138
|
@click="() => {openImageCompare[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])][n] = true}"
|
|
139
139
|
>
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<img
|
|
25
25
|
v-if="isValidUrl(image)"
|
|
26
26
|
:src="image"
|
|
27
|
-
class="w-20 h-20 object-cover rounded cursor-pointer border hover:border-blue-500 transition"
|
|
27
|
+
class="w-20 h-20 object-cover rounded cursor-pointer border hover:border-blue-500 transition my-2"
|
|
28
28
|
@click="zoomImage(image)"
|
|
29
29
|
/>
|
|
30
30
|
<div v-else class="w-20 h-20">
|
|
@@ -124,8 +124,8 @@
|
|
|
124
124
|
|
|
125
125
|
<div v-if="isAiResponseReceivedImage[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])]" @mouseenter="(() => { hovers[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])][n] = true})" @mouseleave="(() => { hovers[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])][n] = false})">
|
|
126
126
|
<div v-if="isInColumnImage(n)">
|
|
127
|
-
<div class="mt-2 flex items-center justify-start gap-2">
|
|
128
|
-
<div v-if="isValidUrl(selected[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])][n])" class="flex flex-col items-center">
|
|
127
|
+
<div class="mt-2 mb-2 flex items-center justify-start gap-2">
|
|
128
|
+
<div v-if="isValidUrl(selected[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])][n])" class="flex flex-col items-center relative">
|
|
129
129
|
<img
|
|
130
130
|
:src="selected[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])][n]"
|
|
131
131
|
class="w-20 h-20 object-cover rounded cursor-pointer border hover:border-blue-500 transition"
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
/>
|
|
134
134
|
<p
|
|
135
135
|
v-if="isImageHasPreviewUrl[n]"
|
|
136
|
-
class="mt-
|
|
136
|
+
class="absolute mt-20 text-sm hover:text-blue-500 hover:underline hover:cursor-pointer flex items-center gap-1"
|
|
137
137
|
:class="{ 'opacity-0': !hovers[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])][n] }"
|
|
138
138
|
@click="() => {openImageCompare[tableColumnsIndexes.findIndex(el => el[primaryKey] === item[primaryKey])][n] = true}"
|
|
139
139
|
>
|
package/dist/index.js
CHANGED
|
@@ -413,6 +413,15 @@ export default class BulkAiFlowPlugin extends AdminForthPlugin {
|
|
|
413
413
|
for (const [key, value] of Object.entries(this.options.generateImages)) {
|
|
414
414
|
const plugin = adminforth.activatedPlugins.find(p => p.resourceConfig.resourceId === this.resourceConfig.resourceId &&
|
|
415
415
|
p.pluginOptions.pathColumnName === key);
|
|
416
|
+
if (!plugin) {
|
|
417
|
+
throw new Error(`Plugin for attachment field '${key}' not found in resource '${this.resourceConfig.resourceId}', please check if Upload Plugin is installed on the field ${key}`);
|
|
418
|
+
}
|
|
419
|
+
if (!plugin.pluginOptions.storageAdapter.objectCanBeAccesedPublicly()) {
|
|
420
|
+
throw new Error(`Upload Plugin for attachment field '${key}' in resource '${this.resourceConfig.resourceId}'
|
|
421
|
+
uses adapter which is not configured to store objects in public way, so it will produce only signed private URLs which can not be used in HTML text of blog posts.
|
|
422
|
+
Please configure adapter in such way that it will store objects publicly (e.g. for S3 use 'public-read' ACL).
|
|
423
|
+
`);
|
|
424
|
+
}
|
|
416
425
|
outputImagesPluginInstanceIds[key] = plugin.pluginInstanceId;
|
|
417
426
|
}
|
|
418
427
|
}
|
package/index.ts
CHANGED
|
@@ -401,6 +401,15 @@ export default class BulkAiFlowPlugin extends AdminForthPlugin {
|
|
|
401
401
|
p.resourceConfig!.resourceId === this.resourceConfig.resourceId &&
|
|
402
402
|
p.pluginOptions.pathColumnName === key
|
|
403
403
|
);
|
|
404
|
+
if (!plugin) {
|
|
405
|
+
throw new Error(`Plugin for attachment field '${key}' not found in resource '${this.resourceConfig.resourceId}', please check if Upload Plugin is installed on the field ${key}`);
|
|
406
|
+
}
|
|
407
|
+
if (!plugin.pluginOptions.storageAdapter.objectCanBeAccesedPublicly()) {
|
|
408
|
+
throw new Error(`Upload Plugin for attachment field '${key}' in resource '${this.resourceConfig.resourceId}'
|
|
409
|
+
uses adapter which is not configured to store objects in public way, so it will produce only signed private URLs which can not be used in HTML text of blog posts.
|
|
410
|
+
Please configure adapter in such way that it will store objects publicly (e.g. for S3 use 'public-read' ACL).
|
|
411
|
+
`);
|
|
412
|
+
}
|
|
404
413
|
outputImagesPluginInstanceIds[key] = plugin.pluginInstanceId;
|
|
405
414
|
}
|
|
406
415
|
}
|