From 7676a4bc2ab7ef7bde27224c3d1f942f798e1853 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Katja=20S=C3=BCss?= Date: Wed, 14 Jun 2023 19:26:39 +0200 Subject: [PATCH] =?UTF-8?q?References=20(not=20just=20links)=20to=20item?= =?UTF-8?q?=20(view=20and=20menu=20item)=20=E2=80=93=20Update=20to=20relea?= =?UTF-8?q?sed=20plone.restapi.relations=20(#4842)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Steve Piercy --- .../user-manual/manage/link-to-items.png | Bin 23298 -> 55379 bytes docs/source/user-manual/links-to-item.md | 28 +-- locales/ca/LC_MESSAGES/volto.po | 34 +++ locales/de/LC_MESSAGES/volto.po | 34 +++ locales/en/LC_MESSAGES/volto.po | 34 +++ locales/es/LC_MESSAGES/volto.po | 34 +++ locales/eu/LC_MESSAGES/volto.po | 34 +++ locales/fi/LC_MESSAGES/volto.po | 34 +++ locales/fr/LC_MESSAGES/volto.po | 34 +++ locales/it/LC_MESSAGES/volto.po | 34 +++ locales/ja/LC_MESSAGES/volto.po | 34 +++ locales/nl/LC_MESSAGES/volto.po | 34 +++ locales/pt/LC_MESSAGES/volto.po | 34 +++ locales/pt_BR/LC_MESSAGES/volto.po | 34 +++ locales/ro/LC_MESSAGES/volto.po | 34 +++ locales/volto.pot | 36 ++- locales/zh_CN/LC_MESSAGES/volto.po | 34 +++ news/4842.feature | 1 + src/actions/index.js | 1 - src/actions/relations/relations.js | 14 -- .../manage/LinksToItem/LinksToItem.jsx | 222 +++++++++--------- .../manage/LinksToItem/LinksToItem.test.jsx | 32 +-- .../__snapshots__/LinksToItem.test.jsx.snap | 32 +-- src/components/manage/Toolbar/More.jsx | 8 +- .../Toolbar/__snapshots__/More.test.jsx.snap | 26 ++ src/constants/ActionTypes.js | 1 - src/reducers/relations/relations.js | 17 -- 27 files changed, 689 insertions(+), 205 deletions(-) create mode 100644 news/4842.feature diff --git a/docs/source/_static/user-manual/manage/link-to-items.png b/docs/source/_static/user-manual/manage/link-to-items.png index 8922f8ce6790fd2ac636cf1950bfa6acdbd25481..3d72bf39c33c42912423b4e1359e5726c5d5d45b 100644 GIT binary patch literal 55379 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

Se>pDCPs1{@z?PJBHp)_@@h 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\n" "Language-Team: Plone i18n \n" "MIME-Version: 1.0\n" @@ -428,6 +428,7 @@ msgstr "" #: components/manage/Controlpanels/UpgradeControlPanel #: components/manage/Diff/Diff #: components/manage/History/History +#: components/manage/LinksToItem/LinksToItem #: components/manage/Multilingual/ManageTranslations #: components/manage/Preferences/ChangePassword #: components/manage/Preferences/PersonalPreferences @@ -747,6 +748,11 @@ msgstr "" msgid "Content rules from parent folders" msgstr "" +#: components/manage/LinksToItem/LinksToItem +# defaultMessage: Content that links to or references {title} +msgid "Content that links to or references {title}" +msgstr "" + #: components/manage/Controlpanels/ContentTypes # defaultMessage: Content type created msgid "Content type created" @@ -1926,6 +1932,17 @@ msgstr "" msgid "Link translation for" msgstr "" +#: components/manage/LinksToItem/LinksToItem +# defaultMessage: Linking this item with hyperlink in text +msgid "Linking this item with hyperlink in text" +msgstr "" + +#: components/manage/LinksToItem/LinksToItem +#: components/manage/Toolbar/More +# defaultMessage: Links and references +msgid "Links and references" +msgstr "" + #: components/manage/Blocks/Listing/schema # defaultMessage: Listing msgid "Listing" @@ -2259,6 +2276,11 @@ msgstr "" msgid "No items selected" msgstr "" +#: components/manage/LinksToItem/LinksToItem +# defaultMessage: No links to this item found. +msgid "No links to this item found." +msgstr "" + #: components/manage/Blocks/Maps/MapsSidebar # defaultMessage: No map selected msgid "No map selected" @@ -2636,6 +2658,16 @@ msgstr "" msgid "Reduce complexity" msgstr "" +#: components/manage/LinksToItem/LinksToItem +# defaultMessage: Referencing this item as related item +msgid "Referencing this item as related item" +msgstr "" + +#: components/manage/LinksToItem/LinksToItem +# defaultMessage: Referencing this item with {relationship} +msgid "Referencing this item with {relationship}" +msgstr "" + #: components/theme/Anontools/Anontools #: components/theme/Login/Login #: components/theme/Register/Register @@ -2801,6 +2833,7 @@ msgid "Revert to this revision" msgstr "" #: components/manage/Contents/Contents +#: components/manage/LinksToItem/LinksToItem # defaultMessage: Review state msgid "Review state" msgstr "" @@ -3678,6 +3711,7 @@ msgid "Triggering event field error. Please select a value" msgstr "" #: components/manage/Controlpanels/ContentTypes +#: components/manage/LinksToItem/LinksToItem #: components/manage/Widgets/SchemaWidget #: components/theme/View/TabularView # defaultMessage: Type diff --git a/locales/zh_CN/LC_MESSAGES/volto.po b/locales/zh_CN/LC_MESSAGES/volto.po index e8f5457cddf..1bca113ac6f 100644 --- a/locales/zh_CN/LC_MESSAGES/volto.po +++ b/locales/zh_CN/LC_MESSAGES/volto.po @@ -432,6 +432,7 @@ msgstr "可用的内容规则" #: components/manage/Controlpanels/UpgradeControlPanel #: components/manage/Diff/Diff #: components/manage/History/History +#: components/manage/LinksToItem/LinksToItem #: components/manage/Multilingual/ManageTranslations #: components/manage/Preferences/ChangePassword #: components/manage/Preferences/PersonalPreferences @@ -751,6 +752,11 @@ msgstr "{title}的内容规则" msgid "Content rules from parent folders" msgstr "父文件夹的内容规则" +#: components/manage/LinksToItem/LinksToItem +# defaultMessage: Content that links to or references {title} +msgid "Content that links to or references {title}" +msgstr "" + #: components/manage/Controlpanels/ContentTypes # defaultMessage: Content type created msgid "Content type created" @@ -1930,6 +1936,17 @@ msgstr "链接至" msgid "Link translation for" msgstr "链接翻译" +#: components/manage/LinksToItem/LinksToItem +# defaultMessage: Linking this item with hyperlink in text +msgid "Linking this item with hyperlink in text" +msgstr "" + +#: components/manage/LinksToItem/LinksToItem +#: components/manage/Toolbar/More +# defaultMessage: Links and references +msgid "Links and references" +msgstr "" + #: components/manage/Blocks/Listing/schema # defaultMessage: Listing msgid "Listing" @@ -2263,6 +2280,11 @@ msgstr "在此容器中没有发现条目。" msgid "No items selected" msgstr "未选择条目" +#: components/manage/LinksToItem/LinksToItem +# defaultMessage: No links to this item found. +msgid "No links to this item found." +msgstr "" + #: components/manage/Blocks/Maps/MapsSidebar # defaultMessage: No map selected msgid "No map selected" @@ -2640,6 +2662,16 @@ msgstr "重做" msgid "Reduce complexity" msgstr "减少复杂性" +#: components/manage/LinksToItem/LinksToItem +# defaultMessage: Referencing this item as related item +msgid "Referencing this item as related item" +msgstr "" + +#: components/manage/LinksToItem/LinksToItem +# defaultMessage: Referencing this item with {relationship} +msgid "Referencing this item with {relationship}" +msgstr "" + #: components/theme/Anontools/Anontools #: components/theme/Login/Login #: components/theme/Register/Register @@ -2805,6 +2837,7 @@ msgid "Revert to this revision" msgstr "回退到这个版本" #: components/manage/Contents/Contents +#: components/manage/LinksToItem/LinksToItem # defaultMessage: Review state msgid "Review state" msgstr "审核状态" @@ -3682,6 +3715,7 @@ msgid "Triggering event field error. Please select a value" msgstr "触发了事件字段错误。请选择一个值" #: components/manage/Controlpanels/ContentTypes +#: components/manage/LinksToItem/LinksToItem #: components/manage/Widgets/SchemaWidget #: components/theme/View/TabularView # defaultMessage: Type diff --git a/news/4842.feature b/news/4842.feature new file mode 100644 index 00000000000..457228117d1 --- /dev/null +++ b/news/4842.feature @@ -0,0 +1 @@ +Tune 'Links to item' view to 'Links and references' view. Show all relation types. @ksuess \ No newline at end of file diff --git a/src/actions/index.js b/src/actions/index.js index 3bc2e17847a..8212c75bf78 100644 --- a/src/actions/index.js +++ b/src/actions/index.js @@ -75,7 +75,6 @@ export { createRelations, deleteRelations, queryRelations, - resetRelations, } from '@plone/volto/actions/relations/relations'; export { rebuildRelations } from '@plone/volto/actions/relations/rebuild'; export { listRoles } from '@plone/volto/actions/roles/roles'; diff --git a/src/actions/relations/relations.js b/src/actions/relations/relations.js index 063b2244e33..6b837a366c3 100644 --- a/src/actions/relations/relations.js +++ b/src/actions/relations/relations.js @@ -7,7 +7,6 @@ import { CREATE_RELATIONS, DELETE_RELATIONS, LIST_RELATIONS, - RESET_RELATIONS, } from '@plone/volto/constants/ActionTypes'; /** @@ -85,16 +84,3 @@ export function queryRelations( }, }; } - -/** - * Reset relations function - * @function resetRelations - * @param {string} subrequest Key of the subrequest. - * @returns {Object} Reset relations action - */ -export function resetRelations(subrequest = null) { - return { - type: RESET_RELATIONS, - subrequest, - }; -} diff --git a/src/components/manage/LinksToItem/LinksToItem.jsx b/src/components/manage/LinksToItem/LinksToItem.jsx index 582e859fb07..0919a639d38 100644 --- a/src/components/manage/LinksToItem/LinksToItem.jsx +++ b/src/components/manage/LinksToItem/LinksToItem.jsx @@ -9,13 +9,7 @@ import { Portal } from 'react-portal'; import { Container, Segment, Table } from 'semantic-ui-react'; import { FormattedMessage, defineMessages, useIntl } from 'react-intl'; import { useDispatch, useSelector } from 'react-redux'; -import { map } from 'lodash'; -import { - queryRelations, - resetRelations, - getContent, - resetContent, -} from '@plone/volto/actions'; +import { getContent, queryRelations } from '@plone/volto/actions'; import { Icon as IconNext, Toolbar, @@ -30,134 +24,128 @@ const messages = defineMessages({ id: 'Back', defaultMessage: 'Back', }, - linktoitem: { - id: 'Link To Item', - defaultMessage: 'Link To Item', - }, - success: { - id: 'Success', - defaultMessage: 'Success', - }, - successAdd: { - id: 'Alias has been added', - defaultMessage: 'Alias has been added', + linkstoitem: { + id: 'Links and references', + defaultMessage: 'Links and references', }, }); const LinksToItem = (props) => { const intl = useIntl(); - const pathname = props.location.pathname; const dispatch = useDispatch(); - const relations_subrequest = useSelector( - (state) => state.relations.subrequests, + const pathname = props.location.pathname; + const itempath = getBaseUrl(pathname); + + const title = useSelector((state) => state.content.data?.title || ''); + const myrelations = useSelector( + (state) => state.relations.subrequests[itempath]?.relations, ); - const content_subrequest = useSelector((state) => state.content.subrequests); - const content = content_subrequest[pathname]?.data; - const relations = relations_subrequest[pathname]?.relations; useEffect(() => { - if (!content_subrequest[pathname]) { - dispatch(getContent(getBaseUrl(pathname), null, pathname)); - } - return () => { - resetContent(pathname); - }; - }, [dispatch, pathname, content_subrequest]); + dispatch(queryRelations(null, false, itempath, null, [itempath])); + }, [dispatch, itempath]); useEffect(() => { - if ( - !relations_subrequest[pathname] && - content_subrequest[pathname]?.data?.UID - ) { - dispatch( - queryRelations(null, false, pathname, null, [ - content_subrequest[pathname]?.data?.UID, - ]), - ); - } - return () => { - resetRelations(pathname); - }; - }, [dispatch, content_subrequest[pathname]?.data?.UID, relations_subrequest]); + if (!title) dispatch(getContent(itempath)); + }, [dispatch, itempath, title]); let links = {}; - - // Create a list of links (via constructing a hashmap and thus avoiding duplicates) - if (relations) { - for (const relation_items of Object.values(relations.items)) { - for (const item of relation_items) { - links[item.source.UID] = item.source; - } - } + if (myrelations) { + Object.keys(myrelations).forEach((relationtype) => { + links[relationtype] = {}; + myrelations[relationtype].items.forEach((item) => { + links[relationtype][item.source.UID] = item.source; + }); + }); } - let links_ordered = Object.values(links).sort((link) => link['@id']); - const relations_found = links_ordered.length > 0; - return content && relations ? ( - - + let links_ordered = {}; + Object.keys(links).forEach((relationtype) => { + links_ordered[relationtype] = Object.values(links[relationtype]).sort( + (link) => link['@id'], + ); + }); + + const relations_found = Object.keys(links_ordered).length > 0; + return ( + + {content.title} }} + id="Content that links to or references {title}" + defaultMessage="Content that links to or references {title}" + values={{ title: {title} }} /> - {relations_found && ( - <> - - - - - - - - - - - - - - - { - - {map(links_ordered, (link) => ( - - - - - {link.title} - - - - - {link.review_state} - - - ))} - - } -
- - )} - {!relations_found && ( + {relations_found ? ( + + { + + {Object.keys(links_ordered).map((relationtype) => { + return [].concat( + [ + + + {relationtype === 'isReferencing' ? ( + + ) : relationtype === 'relatedItems' ? ( + + ) : ( + <> + {relationtype} }} + /> + + )} + + + + + + + + , + ], + links_ordered[relationtype].map((link) => { + return ( + + + + + {link.title} + + + + + {link.review_state} + + + {link.type_title || ''} + + + ); + }), + ); + })} + + } +
+ ) : ( { pathname={pathname} hideDefaultViewButtons inner={ - + { )}
- ) : null; + ); }; export default LinksToItem; diff --git a/src/components/manage/LinksToItem/LinksToItem.test.jsx b/src/components/manage/LinksToItem/LinksToItem.test.jsx index 22463c0f786..e29506cd661 100644 --- a/src/components/manage/LinksToItem/LinksToItem.test.jsx +++ b/src/components/manage/LinksToItem/LinksToItem.test.jsx @@ -19,51 +19,41 @@ describe('LinksToItem', () => { const store = mockStore({ relations: { subrequests: { - '/page-1/links-to-item': { - loading: false, - loaded: true, - error: null, + '/page-1': { relations: { - '@id': - 'http://localhost:3000/VirtualHostBase/http/localhost:3000/Plone/++api++/VirtualHostRoot/@relations?target=d4cf2f07ea844d5ea58b98a66ab30e3b', - items: { - isReferencing: [ + isReferencing: { + items: [ { source: { '@id': 'http://localhost:3000/page-2-linking-to-page-1', '@type': 'Document', - UID: '46550d2ad6564938a7cdbaabd6fd24a8', + UID: 'SOMEUID008', description: '', review_state: 'private', title: 'page #2 linking to page #1', + type_title: 'Document', }, target: { '@id': 'http://localhost:3000/page-1', '@type': 'Document', - UID: 'd4cf2f07ea844d5ea58b98a66ab30e3b', + UID: 'SOMEUID007', description: '', review_state: 'private', title: 'page #1', + type_title: 'Document', }, }, ], - }, - items_total: { - isReferencing: 1, + items_total: 1, }, }, - stats: null, }, }, }, content: { - subrequests: { - '/page-1/links-to-item': { - data: { - UID: 'd4cf2f07ea844d5ea58b98a66ab30e3b', - title: 'page #1', - }, - }, + data: { + UID: 'SOMEUID007', + title: 'page #1', }, }, intl: { diff --git a/src/components/manage/LinksToItem/__snapshots__/LinksToItem.test.jsx.snap b/src/components/manage/LinksToItem/__snapshots__/LinksToItem.test.jsx.snap index cf46935f7fa..20d0954817a 100644 --- a/src/components/manage/LinksToItem/__snapshots__/LinksToItem.test.jsx.snap +++ b/src/components/manage/LinksToItem/__snapshots__/LinksToItem.test.jsx.snap @@ -3,7 +3,7 @@ exports[`LinksToItem renders links to item view 1`] = `

- Links to + Content that links to or references page #1
-
- Whenever this item is being referenced from some different item by a hyperlink, block or similar, it appears here in this list. -
- - Linked by this item + Linking this item with hyperlink in text + - - @@ -52,7 +48,7 @@ exports[`LinksToItem renders links to item view 1`] = ` className="" > page #2 linking to page #1 @@ -72,6 +69,13 @@ exports[`LinksToItem renders links to item view 1`] = ` private +
Review state + Type +
+ + Document + +
diff --git a/src/components/manage/Toolbar/More.jsx b/src/components/manage/Toolbar/More.jsx index 63478273eac..3e06a0193b4 100644 --- a/src/components/manage/Toolbar/More.jsx +++ b/src/components/manage/Toolbar/More.jsx @@ -54,8 +54,8 @@ const messages = defineMessages({ defaultMessage: 'URL Management', }, linkstoitem: { - id: 'Links To Item', - defaultMessage: 'Links To Item', + id: 'Links and references', + defaultMessage: 'Links and references', }, ManageTranslations: { id: 'Manage Translations', @@ -232,9 +232,7 @@ class More extends Component { id: 'redirection', }); - const linksToItemAction = find(this.props.actions.object_buttons, { - id: 'linkstoitem', - }); + const linksToItemAction = path !== ''; const { content, intl } = this.props; diff --git a/src/components/manage/Toolbar/__snapshots__/More.test.jsx.snap b/src/components/manage/Toolbar/__snapshots__/More.test.jsx.snap index 785eec18d04..da818c40540 100644 --- a/src/components/manage/Toolbar/__snapshots__/More.test.jsx.snap +++ b/src/components/manage/Toolbar/__snapshots__/More.test.jsx.snap @@ -92,6 +92,19 @@ exports[`Toolbar More component renders a Toolbar More component 1`] = ` /> +
  • + + Links and references + + +
  • @@ -190,6 +203,19 @@ exports[`Toolbar More component renders a Toolbar More component with manage con /> +
  • + + Links and references + + +
  • diff --git a/src/constants/ActionTypes.js b/src/constants/ActionTypes.js index bdeec80ec19..2a24ce004b0 100644 --- a/src/constants/ActionTypes.js +++ b/src/constants/ActionTypes.js @@ -39,7 +39,6 @@ export const GET_QUERYSTRING_RESULTS = 'GET_QUERYSTRING_RESULTS'; export const CREATE_RELATIONS = 'CREATE_RELATIONS'; export const DELETE_RELATIONS = 'DELETE_RELATIONS'; export const LIST_RELATIONS = 'LIST_RELATIONS'; -export const RESET_RELATIONS = 'RESET_RELATIONS'; export const REBUILD_RELATIONS = 'REBUILD_RELATIONS'; export const GET_SCHEMA = 'GET_SCHEMA'; export const POST_SCHEMA = 'POST_SCHEMA'; diff --git a/src/reducers/relations/relations.js b/src/reducers/relations/relations.js index 22031c4a19b..43ab28c4c4d 100644 --- a/src/reducers/relations/relations.js +++ b/src/reducers/relations/relations.js @@ -3,13 +3,10 @@ * @module reducers/relations/relations */ -import { omit } from 'lodash'; - import { CREATE_RELATIONS, DELETE_RELATIONS, LIST_RELATIONS, - RESET_RELATIONS, REBUILD_RELATIONS, } from '@plone/volto/constants/ActionTypes'; @@ -170,20 +167,6 @@ export default function relations(state = initialState, action = {}) { error: action.error, }, }; - case RESET_RELATIONS: - return action.subrequest - ? { - ...state, - subrequests: omit(state.subrequests, action.subrequest), - } - : { - ...state, - get: { - loaded: false, - }, - data: null, - relations: null, - }; default: return state; }