+export const loadPublicFavoritesTree = () => async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
+ dispatch(treePickerActions.LOAD_TREE_PICKER_NODE({ id: SidePanelTreeCategory.PUBLIC_FAVORITES, pickerId: SIDE_PANEL_TREE }));
+
+ const uuidPrefix = getState().auth.config.uuidPrefix;
+ const publicProjectUuid = `${uuidPrefix}-j7d0g-publicfavorites`;
+ const typeFilters = [ResourceKind.COLLECTION, ResourceKind.CONTAINER_REQUEST, ResourceKind.GROUP, ResourceKind.WORKFLOW];
+
+ const params = {
+ filters: new FilterBuilder()
+ .addEqual('link_class', LinkClass.STAR)
+ .addEqual('owner_uuid', publicProjectUuid)
+ .addIsA('head_uuid', typeFilters)
+ .getFilters(),
+ order: new OrderBuilder<ProjectResource>().addDesc('createdAt').getOrder(),
+ limit: SIDEPANEL_TREE_NODE_LIMIT,
+ };
+
+ const items = (await services.linkService.list(params)).items;
+
+ const uuids = items.map(it => it.headUuid);
+ const groupItems: any = await services.groupsService.list({
+ filters: new FilterBuilder()
+ .addIn("uuid", uuids)
+ .addIsA("uuid", typeFilters)
+ .getFilters()
+ });
+ const collectionItems: any = await services.collectionService.list({
+ filters: new FilterBuilder()
+ .addIn("uuid", uuids)
+ .addIsA("uuid", typeFilters)
+ .getFilters()
+ });
+ const processItems: any = await services.containerRequestService.list({
+ filters: new FilterBuilder()
+ .addIn("uuid", uuids)
+ .addIsA("uuid", typeFilters)
+ .getFilters()
+ });
+
+ const filtereditems = groupItems.items.concat(collectionItems.items).concat(processItems.items);
+
+ for(const item of filtereditems) {
+ const verifiedName = await verifyAndUpdateLinkName(item, dispatch, getState, services);
+ item.name = verifiedName;
+ }
+
+ dispatch(
+ treePickerActions.LOAD_TREE_PICKER_NODE_SUCCESS({
+ id: SidePanelTreeCategory.PUBLIC_FAVORITES,
+ pickerId: SIDE_PANEL_TREE,
+ nodes: filtereditems.map(item => initTreeNode({ id: item.headUuid, value: item })),
+ })
+ );
+
+ dispatch(resourcesActions.SET_RESOURCES(filtereditems));
+};
+