diff --git a/src/bundle/ui-dev/src/modules/universal-discovery/services/universal.discovery.service.js b/src/bundle/ui-dev/src/modules/universal-discovery/services/universal.discovery.service.js index 991943eb48..05dabc0018 100644 --- a/src/bundle/ui-dev/src/modules/universal-discovery/services/universal.discovery.service.js +++ b/src/bundle/ui-dev/src/modules/universal-discovery/services/universal.discovery.service.js @@ -257,7 +257,17 @@ export const findLocationsBySearchQuery = ( }; export const findLocationsById = ( - { token, siteaccess, accessToken, id, limit = QUERY_LIMIT, offset = 0, instanceUrl = DEFAULT_INSTANCE_URL }, + { + token, + siteaccess, + accessToken, + id, + noLanguageCode = false, + useAlwaysAvailable = undefined, + limit = QUERY_LIMIT, + offset = 0, + instanceUrl = DEFAULT_INSTANCE_URL, + }, callback, ) => { const body = { @@ -271,10 +281,17 @@ export const findLocationsById = ( limit, offset, }, + useAlwaysAvailable, }, }; - addLanguageCodeToCreateViewEndpoint(body); + if (useAlwaysAvailable !== undefined) { + body.ViewInput.useAlwaysAvailable = useAlwaysAvailable; + } + + if (!noLanguageCode) { + addLanguageCodeToCreateViewEndpoint(body); + } const request = new Request(`${instanceUrl}${ENDPOINT_CREATE_VIEW}`, { method: 'POST', @@ -424,7 +441,18 @@ export const createDraft = ({ token, siteaccess, accessToken, contentId, instanc }; export const loadContentInfo = ( - { token, siteaccess, accessToken, contentId, limit = QUERY_LIMIT, offset = 0, signal, instanceUrl = DEFAULT_INSTANCE_URL }, + { + token, + siteaccess, + accessToken, + contentId, + noLanguageCode = false, + useAlwaysAvailable = undefined, + limit = QUERY_LIMIT, + offset = 0, + signal, + instanceUrl = DEFAULT_INSTANCE_URL, + }, callback, ) => { const body = { @@ -438,10 +466,17 @@ export const loadContentInfo = ( limit, offset, }, + useAlwaysAvailable, }, }; - addLanguageCodeToCreateViewEndpoint(body); + if (useAlwaysAvailable !== undefined) { + body.ViewInput.useAlwaysAvailable = useAlwaysAvailable; + } + + if (!noLanguageCode) { + addLanguageCodeToCreateViewEndpoint(body); + } const request = new Request(`${instanceUrl}${ENDPOINT_CREATE_VIEW}`, { method: 'POST', diff --git a/src/bundle/ui-dev/src/modules/universal-discovery/universal.discovery.module.js b/src/bundle/ui-dev/src/modules/universal-discovery/universal.discovery.module.js index cec9ce9c2b..6c05404ac4 100644 --- a/src/bundle/ui-dev/src/modules/universal-discovery/universal.discovery.module.js +++ b/src/bundle/ui-dev/src/modules/universal-discovery/universal.discovery.module.js @@ -244,7 +244,7 @@ const UniversalDiscoveryModule = (props) => { .join(','); if (!locationIds) { - return Promise.resolve([]); + return Promise.resolve(null); } return new Promise((resolve) => { @@ -262,10 +262,19 @@ const UniversalDiscoveryModule = (props) => { return Promise.resolve([]); } - const contentId = locationsWithoutVersion.map((item) => item.location.ContentInfo.Content._id).join(','); + const contentIds = locationsWithoutVersion.map((item) => item.location.ContentInfo.Content._id).join(','); return new Promise((resolve) => { - loadContentInfo({ ...restInfo, contentId, signal }, (response) => resolve(response)); + loadContentInfo( + { + ...restInfo, + noLanguageCode: true, + useAlwaysAvailable: true, + contentId: contentIds, + signal, + }, + (response) => resolve(response), + ); }); }; const contentTypesMapGlobal = useMemo( @@ -344,15 +353,24 @@ const UniversalDiscoveryModule = (props) => { return; } - findLocationsById({ ...restInfo, id: props.selectedLocations.join(','), limit: props.selectedLocations.length }, (locations) => { - const mappedLocation = props.selectedLocations.map((locationId) => { - const location = locations.find(({ id }) => id === parseInt(locationId, 10)); + findLocationsById( + { + ...restInfo, + noLanguageCode: true, + useAlwaysAvailable: true, + id: props.selectedLocations.join(','), + limit: props.selectedLocations.length, + }, + (locations) => { + const mappedLocation = props.selectedLocations.map((locationId) => { + const location = locations.find(({ id }) => id === parseInt(locationId, 10)); - return { location }; - }); + return { location }; + }); - dispatchSelectedLocationsAction({ type: 'REPLACE_SELECTED_LOCATIONS', locations: mappedLocation }); - }); + dispatchSelectedLocationsAction({ type: 'REPLACE_SELECTED_LOCATIONS', locations: mappedLocation }); + }, + ); }, [props.selectedLocations]); useEffect(() => { @@ -362,7 +380,7 @@ const UniversalDiscoveryModule = (props) => { Promise.all([loadPermissions(), loadVersions(abortControllerRef.current.signal)]).then((response) => { const [locationsWithPermissions, locationsWithVersions] = response; - if (!locationsWithPermissions.length && !locationsWithVersions.length) { + if (!locationsWithPermissions?.LocationList.locations.length && !locationsWithVersions.length) { return; }