diff --git a/public/assets/js/bridge/library-api.js b/public/assets/js/bridge/library-api.js index 9eff466..3998f8e 100644 --- a/public/assets/js/bridge/library-api.js +++ b/public/assets/js/bridge/library-api.js @@ -95,10 +95,10 @@             return Promise.resolve(B.ApiItemCache[cacheKey]);         } -        return fetch(url, { -            method: 'GET', -            headers: {  -                'Content-Type': 'application/json'  + return fetch(url, { + method: 'GET', + headers: { + 'Content-Type': 'application/json'             },          })             .then(response => { @@ -116,18 +116,28 @@                     return action === 'get' ? {} : { items: [] };                 }                  -                const result = data.items || data.data || data.item; -                const finalResult = result ? (Array.isArray(result) ? result : (action === 'list' ? (result.items || []) : result)) : (action === 'list' ? [] : {}); + const result = data.items || data.data || data.item; + let finalResult = result ? (Array.isArray(result) ? result : (action === 'list' ? (result.items || []) : result)) : (action === 'list' ? [] : {}); -                const resultIsArray = Array.isArray(finalResult); -                const resultLength = resultIsArray ? finalResult.length : (Object.keys(finalResult).length > 0 ? 1 : 0); + const resultIsArray = Array.isArray(finalResult); + const resultLength = resultIsArray ? finalResult.length : (Object.keys(finalResult).length > 0 ? 1 : 0);                 log('EXTRACT SUCCESS', `Extrahiert ${resultLength} Elemente (Typ: ${action}) für /${resource}.`);                  -                // Cache-Speicherung verwendet B.ApiItemCache -                if (cacheKey && resultLength > 0) { -                    B.ApiItemCache[cacheKey] = finalResult; -                } + // Bei GET-Antworten stellt der Server häufig html/content separat bereit. + if (action === 'get' && finalResult && !resultIsArray) { + if (data && typeof data.html !== 'undefined' && !('html' in finalResult)) { + finalResult.html = data.html; + } + if (data && typeof data.content !== 'undefined' && !('content' in finalResult)) { + finalResult.content = data.content; + } + } + + // Cache-Speicherung verwendet B.ApiItemCache + if (cacheKey && resultLength > 0) { + B.ApiItemCache[cacheKey] = finalResult; + }                                  // 💡 KORREKTUR: Bei LIST (action='list') geben wir immer ein Array zurück, sonst das Objekt                 return finalResult;