Web: Files: Added creation of thumbnail on open Info Panel + hide loading Info Panel api share on Personal
This commit is contained in:
parent
f1574c1c99
commit
19e235d265
@ -343,3 +343,7 @@ export function getFolderOptions(folderId, filter) {
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
export function sleep(ms) {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
import { FileType } from "@appserver/common/constants";
|
||||
import { LANGUAGE } from "@appserver/common/constants";
|
||||
import { sleep } from "@appserver/common/utils";
|
||||
import Link from "@appserver/components/link";
|
||||
import Text from "@appserver/components/text";
|
||||
import Tooltip from "@appserver/components/tooltip";
|
||||
@ -31,6 +32,8 @@ const SingleItem = (props) => {
|
||||
dontShowLocation,
|
||||
dontShowAccess,
|
||||
personal,
|
||||
createThumbnail,
|
||||
getFileInfo,
|
||||
} = props;
|
||||
|
||||
let updateSubscription = true;
|
||||
@ -198,46 +201,70 @@ const SingleItem = (props) => {
|
||||
const loadAsyncData = async (displayedItem, selectedItem) => {
|
||||
if (!updateSubscription) return;
|
||||
|
||||
const updateLoadedItemProperties = async (displayedItem, selectedItem) => {
|
||||
const parentFolderId = selectedItem.isFolder
|
||||
? selectedItem.parentId
|
||||
: selectedItem.folderId;
|
||||
if (
|
||||
!selectedItem.thumbnailUrl &&
|
||||
!selectedItem.isFolder &&
|
||||
selectedItem.thumbnailStatus === 0 &&
|
||||
(selectedItem.fileType === FileType.Image ||
|
||||
selectedItem.fileType === FileType.Spreadsheet ||
|
||||
selectedItem.fileType === FileType.Presentation ||
|
||||
selectedItem.fileType === FileType.Document)
|
||||
) {
|
||||
await createThumbnail(selectedItem.id);
|
||||
|
||||
const noLocationProperties = [...displayedItem.properties].filter(
|
||||
(dip) => dip.id !== "Location"
|
||||
);
|
||||
await sleep(5000);
|
||||
|
||||
let result;
|
||||
await getFolderInfo(parentFolderId)
|
||||
.catch(() => {
|
||||
result = noLocationProperties;
|
||||
})
|
||||
.then((data) => {
|
||||
if (!data) {
|
||||
result = noLocationProperties;
|
||||
return;
|
||||
}
|
||||
result = [...displayedItem.properties].map((dip) =>
|
||||
dip.id === "Location"
|
||||
? {
|
||||
id: "Location",
|
||||
title: t("Location"),
|
||||
content: (
|
||||
<Link
|
||||
className="property-content"
|
||||
href={`/products/files/filter?folder=${parentFolderId}`}
|
||||
isHovered={true}
|
||||
>
|
||||
{data.title}
|
||||
</Link>
|
||||
),
|
||||
}
|
||||
: dip
|
||||
);
|
||||
const newFileInfo = await getFileInfo(selectedItem.id);
|
||||
|
||||
if (newFileInfo.thumbnailUrl) {
|
||||
displayedItem.thumbnailUrl = newFileInfo.thumbnailUrl;
|
||||
|
||||
setItem({
|
||||
...displayedItem,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
// const updateLoadedItemProperties = async (displayedItem, selectedItem) => {
|
||||
// const parentFolderId = selectedItem.isFolder
|
||||
// ? selectedItem.parentId
|
||||
// : selectedItem.folderId;
|
||||
|
||||
// const noLocationProperties = [...displayedItem.properties].filter(
|
||||
// (dip) => dip.id !== "Location"
|
||||
// );
|
||||
|
||||
// let result;
|
||||
// await getFolderInfo(parentFolderId)
|
||||
// .catch(() => {
|
||||
// result = noLocationProperties;
|
||||
// })
|
||||
// .then((data) => {
|
||||
// if (!data) {
|
||||
// result = noLocationProperties;
|
||||
// return;
|
||||
// }
|
||||
// result = [...displayedItem.properties].map((dip) =>
|
||||
// dip.id === "Location"
|
||||
// ? {
|
||||
// id: "Location",
|
||||
// title: t("Location"),
|
||||
// content: (
|
||||
// <Link
|
||||
// className="property-content"
|
||||
// href={`/products/files/filter?folder=${parentFolderId}`}
|
||||
// isHovered={true}
|
||||
// >
|
||||
// {data.title}
|
||||
// </Link>
|
||||
// ),
|
||||
// }
|
||||
// : dip
|
||||
// );
|
||||
// });
|
||||
|
||||
// return result;
|
||||
// };
|
||||
|
||||
const updateLoadedItemAccess = async (selectedItem) => {
|
||||
const accesses = await getShareUsers(
|
||||
@ -283,12 +310,14 @@ const SingleItem = (props) => {
|
||||
return;
|
||||
}
|
||||
|
||||
const access = await updateLoadedItemAccess(selectedItem);
|
||||
setItem({
|
||||
...displayedItem,
|
||||
// properties: properties,
|
||||
access: access,
|
||||
});
|
||||
if (!personal) {
|
||||
const access = await updateLoadedItemAccess(selectedItem);
|
||||
setItem({
|
||||
...displayedItem,
|
||||
// properties: properties,
|
||||
access: access,
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const openSharingPanel = () => {
|
||||
@ -310,7 +339,7 @@ const SingleItem = (props) => {
|
||||
<Text className="text">{item.title}</Text>
|
||||
</StyledTitle>
|
||||
|
||||
{selectedItem.thumbnailUrl ? (
|
||||
{item.thumbnailUrl ? (
|
||||
<StyledThumbnail>
|
||||
<img src={item.thumbnailUrl} alt="" />
|
||||
</StyledThumbnail>
|
||||
|
@ -25,6 +25,8 @@ const InfoPanelBodyContent = ({
|
||||
isGallery,
|
||||
gallerySelected,
|
||||
personal,
|
||||
createThumbnail,
|
||||
getFileInfo,
|
||||
}) => {
|
||||
const singleItem = (item) => {
|
||||
const dontShowLocation = item.isFolder && item.parentId === 0;
|
||||
@ -49,6 +51,8 @@ const InfoPanelBodyContent = ({
|
||||
dontShowSize={dontShowSize}
|
||||
dontShowAccess={dontShowAccess}
|
||||
personal={personal}
|
||||
createThumbnail={createThumbnail}
|
||||
getFileInfo={getFileInfo}
|
||||
/>
|
||||
);
|
||||
};
|
||||
@ -99,6 +103,8 @@ export default inject(
|
||||
getFolderInfo,
|
||||
getShareUsers,
|
||||
gallerySelected,
|
||||
createThumbnail,
|
||||
getFileInfo,
|
||||
} = filesStore;
|
||||
const { getIcon, getFolderIcon } = settingsStore;
|
||||
const { onSelectItem } = filesActionsStore;
|
||||
@ -130,6 +136,8 @@ export default inject(
|
||||
isFavoritesFolder,
|
||||
gallerySelected,
|
||||
personal,
|
||||
createThumbnail,
|
||||
getFileInfo,
|
||||
};
|
||||
}
|
||||
)(
|
||||
|
@ -1955,6 +1955,12 @@ class FilesStore {
|
||||
if (fileIds.length) return api.files.createThumbnails(fileIds);
|
||||
};
|
||||
|
||||
createThumbnail = async (fileId) => {
|
||||
if (!fileId) return;
|
||||
|
||||
await api.files.createThumbnails([fileId]);
|
||||
};
|
||||
|
||||
setIsUpdatingRowItem = (updating) => {
|
||||
this.isUpdatingRowItem = updating;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user