This commit is contained in:
xds
2026-02-06 19:02:06 +03:00
parent e2c0d46de8
commit 9f7aecb1aa
2 changed files with 22 additions and 19 deletions

View File

@@ -367,11 +367,14 @@ const restoreGeneration = async (gen) => {
// 4. Set Result if status is 'done'
if (gen.status === 'done') {
const assets = characterAssets.value
if (gen.assets_list && gen.assets_list.length > 0) {
selectedAssets.value = assets.filter(a => gen.assets_list.includes(a.id))
if (gen.result_list && gen.result_list.length > 0) {
generatedResult.value = {
type: 'assets',
assets: selectedAssets.value,
assets: gen.result_list.map(id => ({
id,
url: `/assets/${id}`,
name: 'Generated Result'
})),
tech_prompt: gen.tech_prompt,
execution_time: gen.execution_time_seconds,
api_execution_time: gen.api_execution_time_seconds,
@@ -440,11 +443,11 @@ const reuseAsset = (gen) => {
}
const useResultAsReference = (gen) => {
if (gen.assets_list && gen.assets_list.length > 0) {
if (gen.result_list && gen.result_list.length > 0) {
// Appends the generated assets to the selection
// In this view, we might need to fetch full asset objects if we want to show thumbnails immediately,
// but constructing objects with IDs and URLs is usually enough for the selection preview.
const newAssets = gen.assets_list.map(id => ({
const newAssets = gen.result_list.map(id => ({
id,
url: `/assets/${id}`
}))
@@ -884,10 +887,10 @@ const handleLogout = () => {
@click="restoreGeneration(gen)"
class="glass-panel p-2 rounded-lg border border-white/5 flex gap-3 items-start hover:bg-white/10 cursor-pointer transition-colors group">
<div class="w-12 h-12 rounded bg-black/40 border border-white/10 flex-shrink-0 mt-0.5 relative z-0"
@mouseenter="onThumbnailEnter($event, API_URL + '/assets/' + gen.assets_list[0] + '?thumbnail=true')"
@mouseenter="onThumbnailEnter($event, API_URL + '/assets/' + gen.result_list[0] + '?thumbnail=true')"
@mouseleave="onThumbnailLeave">
<img v-if="gen.assets_list && gen.assets_list.length > 0"
:src="API_URL + '/assets/' + gen.assets_list[0] + '?thumbnail=true'"
<img v-if="gen.result_list && gen.result_list.length > 0"
:src="API_URL + '/assets/' + gen.result_list[0] + '?thumbnail=true'"
class="w-full h-full object-cover rounded opacity-100" />
<div v-else
class="w-full h-full flex items-center justify-center text-slate-700 overflow-hidden rounded">

View File

@@ -239,7 +239,7 @@ const pollStatus = async (id) => {
generationSuccess.value = true
// For global generation, we might need to fetch the assets by ID if returned
if (response.assets_list && response.assets_list.length > 0) {
if (response.result_list && response.result_list.length > 0) {
// Since we don't have a direct "getAssetsByIds" batch endpoint easily available in dataService yet,
// we might just fetch the first one or construct objects if URL is provided.
// Assuming response includes asset details or just IDs.
@@ -287,18 +287,18 @@ const restoreGeneration = async (gen) => {
const foundAspect = aspectRatioOptions.value.find(opt => opt.key === gen.aspect_ratio)
if (foundAspect) aspectRatio.value = foundAspect
if (gen.status === 'done' && gen.assets_list && gen.assets_list.length > 0) {
if (gen.status === 'done' && gen.result_list && gen.result_list.length > 0) {
// We need to fetch details or just display the image
// history list usually has the main image preview
generatedResult.value = {
type: 'assets',
// Mocking asset object structure from history usage in DetailView
assets: gen.assets_list.map(id => ({
assets: gen.result_list.map(id => ({
id,
url: `/assets/${id}`, // This might need adjustment based on how API serves files
// Ideally history API should return full asset objects or URLs.
// If not, we rely on the implementation in CharacterDetailView:
// :src="API_URL + '/assets/' + gen.assets_list[0]"
// :src="API_URL + '/assets/' + gen.result_list[0]"
// So let's construct it similarly
})),
tech_prompt: gen.tech_prompt,
@@ -363,9 +363,8 @@ const reusePrompt = (gen) => {
}
const reuseAsset = (gen) => {
// Try to find input assets field from history object
// We check linked_assets or input_assets, and fallback to empty array if not found
const assetIds = gen.assets_list || gen.input_assets || []
// Assets used as INPUT are now explicitly in assets_list (per user request)
const assetIds = gen.assets_list || []
if (assetIds && assetIds.length > 0) {
selectedAssets.value = assetIds.map(id => {
@@ -386,9 +385,10 @@ const reuseAsset = (gen) => {
}
const useResultAsReference = (gen) => {
if (gen.assets_list && gen.assets_list.length > 0) {
// Result (output) is now in result_list
if (gen.result_list && gen.result_list.length > 0) {
// Appends the generated assets to the selection
const newAssets = gen.assets_list.map(id => ({
const newAssets = gen.result_list.map(id => ({
id,
url: `/assets/${id}`
}))
@@ -697,8 +697,8 @@ onMounted(() => {
<div class="flex gap-3 items-start cursor-pointer" @click="restoreGeneration(gen)">
<div
class="w-12 h-12 rounded bg-black/40 border border-white/10 overflow-hidden flex-shrink-0 mt-0.5">
<img v-if="gen.assets_list && gen.assets_list.length > 0"
:src="API_URL + '/assets/' + gen.assets_list[0] + '?thumbnail=true'"
<img v-if="gen.result_list && gen.result_list.length > 0"
:src="API_URL + '/assets/' + gen.result_list[0] + '?thumbnail=true'"
class="w-full h-full object-cover" />
</div>
<div class="flex-1 min-w-0">