@orangelogic/orange-dam-content-browser-sdk 2.1.7 → 2.1.8
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/CBSDKdemo.html +2 -2
- package/gab_extension/GAB.html +2 -2
- package/package.json +1 -1
- package/src/components/FormatDialog/FormatDialog.cy.tsx +1 -0
- package/src/components/Result/AssetCard/AssetCardWrapper.cy.tsx +2 -0
- package/src/components/Result/AssetPreview/AssetPreview.cy.tsx +4 -0
- package/src/index.tsx +2 -2
- package/src/page/Home/Home.tsx +7 -5
- package/src/store/search/search.api.ts +30 -25
- package/src/types/search.ts +1 -1
package/CBSDKdemo.html
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap" />
|
|
8
8
|
|
|
9
|
-
<script src="https://downloads.orangelogic.com/ContentBrowserSDK/v2.1.
|
|
9
|
+
<script src="https://downloads.orangelogic.com/ContentBrowserSDK/v2.1.8/OrangeDAMContentBrowserSDK.min.js"></script>
|
|
10
10
|
<link rel="stylesheet" type="text/css"
|
|
11
|
-
href="https://downloads.orangelogic.com/ContentBrowserSDK/v2.1.
|
|
11
|
+
href="https://downloads.orangelogic.com/ContentBrowserSDK/v2.1.8/OrangeDAMContentBrowserSDK.min.css">
|
|
12
12
|
|
|
13
13
|
<style>
|
|
14
14
|
* {
|
package/gab_extension/GAB.html
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
<head>
|
|
5
5
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&display=swap">
|
|
6
|
-
<script src="https://downloads.orangelogic.com/Cortex/AssetBrowser/v2.1.
|
|
6
|
+
<script src="https://downloads.orangelogic.com/Cortex/AssetBrowser/v2.1.8/OrangeDamAssetBrowser.min.js"></script>
|
|
7
7
|
<link rel="stylesheet" type="text/css"
|
|
8
|
-
href="https://downloads.orangelogic.com/Cortex/AssetBrowser/v2.1.
|
|
8
|
+
href="https://downloads.orangelogic.com/Cortex/AssetBrowser/v2.1.8/OrangeDamAssetBrowser.min.css">
|
|
9
9
|
<style>
|
|
10
10
|
#orangelogic-GAB-browser-wrapper {
|
|
11
11
|
min-width: 382px;
|
package/package.json
CHANGED
|
@@ -23,6 +23,7 @@ const AssetCardWrapperProps = {
|
|
|
23
23
|
allowATSLink: true,
|
|
24
24
|
imageUrl: 'https://placehold.co/400x400/png',
|
|
25
25
|
originalUrl: 'https://placehold.co/400x400/png',
|
|
26
|
+
recordId: 'Q0LDO000001895618',
|
|
26
27
|
},
|
|
27
28
|
{
|
|
28
29
|
docType: MediaType.Video,
|
|
@@ -41,6 +42,7 @@ const AssetCardWrapperProps = {
|
|
|
41
42
|
'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
|
|
42
43
|
originalUrl:
|
|
43
44
|
'https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
|
|
45
|
+
recordId: 'Q0LDO000001895619',
|
|
44
46
|
},
|
|
45
47
|
],
|
|
46
48
|
isError: false,
|
|
@@ -23,6 +23,7 @@ describe('AssetPreview Component', () => {
|
|
|
23
23
|
tags: '',
|
|
24
24
|
width: '475',
|
|
25
25
|
allowATSLink: true,
|
|
26
|
+
recordId: 'Q0LDO000001895618',
|
|
26
27
|
}}
|
|
27
28
|
imageLoaded={true}
|
|
28
29
|
slot="image"
|
|
@@ -52,6 +53,7 @@ describe('AssetPreview Component', () => {
|
|
|
52
53
|
tags: '',
|
|
53
54
|
width: '475',
|
|
54
55
|
allowATSLink: true,
|
|
56
|
+
recordId: 'Q0LDO000001895618',
|
|
55
57
|
}}
|
|
56
58
|
imageLoaded={true}
|
|
57
59
|
slot="video"
|
|
@@ -81,6 +83,7 @@ describe('AssetPreview Component', () => {
|
|
|
81
83
|
tags: '',
|
|
82
84
|
width: '475',
|
|
83
85
|
allowATSLink: true,
|
|
86
|
+
recordId: 'Q0LDO000001895618',
|
|
84
87
|
}}
|
|
85
88
|
imageLoaded={false}
|
|
86
89
|
slot="image"
|
|
@@ -110,6 +113,7 @@ describe('AssetPreview Component', () => {
|
|
|
110
113
|
tags: '',
|
|
111
114
|
width: '475',
|
|
112
115
|
allowATSLink: true,
|
|
116
|
+
recordId: 'Q0LDO000001895618',
|
|
113
117
|
}}
|
|
114
118
|
imageLoaded={true}
|
|
115
119
|
slot="image"
|
package/src/index.tsx
CHANGED
|
@@ -397,8 +397,8 @@ const ContentBrowser: OrangeDAMContentBrowser = {
|
|
|
397
397
|
close: () => {
|
|
398
398
|
window.OrangeDAMContentBrowser._onClose?.();
|
|
399
399
|
},
|
|
400
|
-
previewAsset: (
|
|
401
|
-
store.dispatch(setSelectedAssetId(
|
|
400
|
+
previewAsset: (recordId: string) => {
|
|
401
|
+
store.dispatch(setSelectedAssetId(recordId));
|
|
402
402
|
},
|
|
403
403
|
};
|
|
404
404
|
|
package/src/page/Home/Home.tsx
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _debounce from 'lodash-es/debounce';
|
|
2
2
|
import _intersection from 'lodash-es/intersection';
|
|
3
|
-
import _isEqual from 'lodash-es/isEqual';
|
|
4
3
|
import {
|
|
5
4
|
FC, useCallback, useContext, useEffect, useMemo, useReducer, useRef, useState,
|
|
6
5
|
} from 'react';
|
|
@@ -232,7 +231,7 @@ const HomePage: FC<Props> = () => {
|
|
|
232
231
|
} : skipToken);
|
|
233
232
|
|
|
234
233
|
const selectedAsset = useMemo(() => {
|
|
235
|
-
if (!selectedAssetData || !selectedAssetId || selectedAssetData.
|
|
234
|
+
if (!selectedAssetData || !selectedAssetId || selectedAssetData.recordId !== selectedAssetId) {
|
|
236
235
|
return null;
|
|
237
236
|
}
|
|
238
237
|
return selectedAssetData;
|
|
@@ -304,15 +303,16 @@ const HomePage: FC<Props> = () => {
|
|
|
304
303
|
const formatDialogTimeoutRef = useRef<number | null>(null);
|
|
305
304
|
|
|
306
305
|
const mappedMediaTypes = useMemo(() => {
|
|
307
|
-
const globalIntersection = availableDocTypes?.length ? _intersection(availableDocTypes, supportedDocTypes) : supportedDocTypes;
|
|
306
|
+
const globalIntersection = (availableDocTypes?.length ? _intersection(availableDocTypes, supportedDocTypes) : supportedDocTypes)?.map(item => item.toLowerCase());
|
|
308
307
|
if (!globalIntersection || globalIntersection.length === 0) return state.mediaTypes;
|
|
309
308
|
const intersection = state.mediaTypes.reduce((acc, mediaType) => {
|
|
310
309
|
const [parent] = mediaType.split('>>');
|
|
311
310
|
|
|
312
|
-
if (globalIntersection.includes(`${parent}*`) || globalIntersection.includes(parent)) {
|
|
311
|
+
if (globalIntersection.includes(`${parent.toLowerCase()}*`) || globalIntersection.includes(parent.toLowerCase())) {
|
|
313
312
|
if (!mediaType.includes('>>')) {
|
|
314
313
|
return acc.concat(`${parent}*`);
|
|
315
314
|
}
|
|
315
|
+
|
|
316
316
|
return acc.concat(mediaType);
|
|
317
317
|
}
|
|
318
318
|
|
|
@@ -369,6 +369,8 @@ const HomePage: FC<Props> = () => {
|
|
|
369
369
|
});
|
|
370
370
|
}, [availableProxies, allowedExtensions]);
|
|
371
371
|
|
|
372
|
+
useEffect(() => console.log(mappedMediaTypes), [mappedMediaTypes]);
|
|
373
|
+
|
|
372
374
|
const { data, isFetching, isError, refetch } = useGetAssetsQuery(isResized && sortOrders && mappedMediaTypes?.length && browserMounted ? {
|
|
373
375
|
extensions: state.extensions,
|
|
374
376
|
folderID: state.currentFolder.id,
|
|
@@ -538,7 +540,7 @@ const HomePage: FC<Props> = () => {
|
|
|
538
540
|
const isMobile = state.containerSize.width <= MOBILE_THRESHOLD;
|
|
539
541
|
|
|
540
542
|
const onItemSelect = (item: Asset) => {
|
|
541
|
-
appDispatch(setSelectedAssetId(item.
|
|
543
|
+
appDispatch(setSelectedAssetId(item.recordId));
|
|
542
544
|
};
|
|
543
545
|
|
|
544
546
|
const onSearchChange = useCallback((value: string) => {
|
|
@@ -15,14 +15,22 @@ import { FOLDER_PAGE_SIZE } from '@/utils/constants';
|
|
|
15
15
|
|
|
16
16
|
const NATURAL_SORT_ORDER_REFERENCE_ID = 'OR4ND000000063615';
|
|
17
17
|
|
|
18
|
-
const resolveFolderExtraFilters = (
|
|
18
|
+
const resolveFolderExtraFilters = ({
|
|
19
|
+
searchText,
|
|
20
|
+
folder,
|
|
21
|
+
allowedFolders,
|
|
22
|
+
}: {
|
|
23
|
+
searchText: string;
|
|
24
|
+
folder?: Folder;
|
|
25
|
+
allowedFolders?: string[];
|
|
26
|
+
}) => {
|
|
19
27
|
let baseQuery = 'MediaType:Story OR MediaType:Album';
|
|
20
28
|
if (!isNullOrWhiteSpace(searchText)) {
|
|
21
29
|
baseQuery = `(${baseQuery}) AND Story_Title:${searchText}`;
|
|
22
30
|
}
|
|
23
31
|
if (allowedFolders?.length) {
|
|
24
32
|
const allowedFoldersQuery = allowedFolders
|
|
25
|
-
.map(
|
|
33
|
+
.map((item) => `Path:${item}${folder?.id ? '/*' : ''}`)
|
|
26
34
|
.join(' OR ');
|
|
27
35
|
baseQuery = `(${baseQuery}) AND (${allowedFoldersQuery})`;
|
|
28
36
|
}
|
|
@@ -32,7 +40,6 @@ const resolveFolderExtraFilters = (searchText: string, allowedFolders?: string[]
|
|
|
32
40
|
|
|
33
41
|
const resolveAssetExtraFilters = ({
|
|
34
42
|
extensions,
|
|
35
|
-
searchText,
|
|
36
43
|
statuses,
|
|
37
44
|
visibilityClasses,
|
|
38
45
|
}: {
|
|
@@ -41,14 +48,14 @@ const resolveAssetExtraFilters = ({
|
|
|
41
48
|
statuses: string[];
|
|
42
49
|
visibilityClasses: string[];
|
|
43
50
|
}) => {
|
|
51
|
+
const filterResult: Record<string, string> = {};
|
|
52
|
+
|
|
44
53
|
let statusQuery = '';
|
|
45
54
|
if (statuses?.length) {
|
|
46
55
|
statusQuery = statuses
|
|
47
56
|
.map(status => `WorkflowStatus:${status}`)
|
|
48
57
|
.join(' OR ');
|
|
49
|
-
|
|
50
|
-
statusQuery = `(${statusQuery})`;
|
|
51
|
-
}
|
|
58
|
+
filterResult.Status = statusQuery;
|
|
52
59
|
}
|
|
53
60
|
|
|
54
61
|
let extensionsQuery = '';
|
|
@@ -56,9 +63,7 @@ const resolveAssetExtraFilters = ({
|
|
|
56
63
|
extensionsQuery = extensions
|
|
57
64
|
.map(extension => `FileExtension:${extension}`)
|
|
58
65
|
.join(' OR ');
|
|
59
|
-
|
|
60
|
-
extensionsQuery = `(${extensionsQuery})`;
|
|
61
|
-
}
|
|
66
|
+
filterResult.Extension = extensionsQuery;
|
|
62
67
|
}
|
|
63
68
|
|
|
64
69
|
let visibilityClassesQuery = '';
|
|
@@ -66,16 +71,10 @@ const resolveAssetExtraFilters = ({
|
|
|
66
71
|
visibilityClassesQuery = visibilityClasses
|
|
67
72
|
.map(visibilityClass => `Purpose:${visibilityClass}`)
|
|
68
73
|
.join(' OR ');
|
|
69
|
-
|
|
70
|
-
visibilityClassesQuery = `(${visibilityClassesQuery})`;
|
|
71
|
-
}
|
|
74
|
+
filterResult.VisibilityClass = visibilityClassesQuery;
|
|
72
75
|
}
|
|
73
76
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const filters = [statusQuery, extensionsQuery, visibilityClassesQuery, searchTextQuery].filter(filter => filter.length > 0);
|
|
77
|
-
|
|
78
|
-
return filters.join(' AND ');
|
|
77
|
+
return filterResult;
|
|
79
78
|
};
|
|
80
79
|
|
|
81
80
|
const baseQueryWithRetry = retry(AppBaseQuery, {
|
|
@@ -106,7 +105,7 @@ export const searchApi = createApi({
|
|
|
106
105
|
const params = [
|
|
107
106
|
[
|
|
108
107
|
'extraFilters',
|
|
109
|
-
resolveFolderExtraFilters(searchText, allowedFolders),
|
|
108
|
+
resolveFolderExtraFilters({ searchText, folder, allowedFolders }),
|
|
110
109
|
],
|
|
111
110
|
['fields', FIELD_CORTEX_PATH],
|
|
112
111
|
['fields', FIELD_DOC_TYPE],
|
|
@@ -203,7 +202,7 @@ export const searchApi = createApi({
|
|
|
203
202
|
const params = [
|
|
204
203
|
[
|
|
205
204
|
'extraFilters',
|
|
206
|
-
resolveFolderExtraFilters(searchText),
|
|
205
|
+
resolveFolderExtraFilters({ searchText }),
|
|
207
206
|
],
|
|
208
207
|
['fields', FIELD_CORTEX_PATH],
|
|
209
208
|
['fields', FIELD_DOC_TYPE],
|
|
@@ -304,26 +303,31 @@ export const searchApi = createApi({
|
|
|
304
303
|
['fields', FIELD_SUBTYPE],
|
|
305
304
|
['fields', FIELD_IDENTIFIER],
|
|
306
305
|
['fields', FIELD_EXTENSION],
|
|
306
|
+
['fields', FIELD_RECORD_ID],
|
|
307
307
|
['seeThru', isSeeThrough],
|
|
308
308
|
['start', start],
|
|
309
309
|
['limit', pageSize],
|
|
310
|
-
['FieldFilters', '{}'],
|
|
311
310
|
];
|
|
312
|
-
const
|
|
311
|
+
const fieldFilters = resolveAssetExtraFilters({
|
|
313
312
|
extensions,
|
|
314
313
|
searchText,
|
|
315
314
|
statuses,
|
|
316
315
|
visibilityClasses,
|
|
317
316
|
});
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
317
|
+
|
|
318
|
+
Object.entries(fieldFilters).forEach(([key, value]) => {
|
|
319
|
+
params.push([`fieldFilters[${key}]`, value]);
|
|
320
|
+
}, '');
|
|
321
|
+
|
|
321
322
|
if (sortOrder) {
|
|
322
323
|
params.push(['orderBy', sortOrder]);
|
|
323
324
|
}
|
|
324
325
|
if (mappedMediaTypes.length) {
|
|
325
326
|
params.push(...mappedMediaTypes);
|
|
326
327
|
}
|
|
328
|
+
if (searchText) {
|
|
329
|
+
params.push(['extraFilters', `Text:${searchText}`]);
|
|
330
|
+
}
|
|
327
331
|
if (useSession) {
|
|
328
332
|
params.push(['UseSession', useSession]);
|
|
329
333
|
}
|
|
@@ -361,6 +365,7 @@ export const searchApi = createApi({
|
|
|
361
365
|
tags: GetValueByKeyCaseInsensitive(item.fields, FIELD_KEYWORDS) ?? '',
|
|
362
366
|
width: GetValueByKeyCaseInsensitive(item.fields, FIELD_MAX_WIDTH) ?? '0',
|
|
363
367
|
allowATSLink: GetValueByKeyCaseInsensitive(item.fields, FIELD_ALLOW_ATS_LINK) === 'True',
|
|
368
|
+
recordId: GetValueByKeyCaseInsensitive(item.fields, FIELD_RECORD_ID) ?? '',
|
|
364
369
|
} as Asset;
|
|
365
370
|
}) ?? [],
|
|
366
371
|
totalCount: response.totalCount,
|
|
@@ -440,7 +445,7 @@ export const searchApi = createApi({
|
|
|
440
445
|
useSession?: string;
|
|
441
446
|
}) => {
|
|
442
447
|
const params = [
|
|
443
|
-
['extraFilters', `
|
|
448
|
+
['extraFilters', `RecordID:${id}`],
|
|
444
449
|
['fields', FIELD_TITLE_WITH_FALLBACK],
|
|
445
450
|
['fields', DEFAULT_VIEW_SIZE],
|
|
446
451
|
['fields', ORIGINAL_VIEW_SIZE],
|