Temporarily: #603
This commit is contained in:
@@ -111,9 +111,11 @@ export const useDriveActions = () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const remove = useCallback(
|
const remove = useCallback(
|
||||||
async (id: string, parentId: string) => {
|
async (id: string | string[], parentId: string) => {
|
||||||
try {
|
try {
|
||||||
await DriveApiClient.remove(companyId, id);
|
if (Array.isArray(id)) {
|
||||||
|
await Promise.all(id.map(i => DriveApiClient.remove(companyId, i)));
|
||||||
|
} else await DriveApiClient.remove(companyId, id);
|
||||||
await refresh(parentId || '', true);
|
await refresh(parentId || '', true);
|
||||||
await getQuota();
|
await getQuota();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
@@ -149,14 +149,14 @@ export default memo(
|
|||||||
if (item?.id) setUploadModalState({ open: true, parent_id: item.id });
|
if (item?.id) setUploadModalState({ open: true, parent_id: item.id });
|
||||||
}, [item?.id, setUploadModalState]);
|
}, [item?.id, setUploadModalState]);
|
||||||
|
|
||||||
const documents = (
|
const items = item?.is_directory === false
|
||||||
item?.is_directory === false
|
|
||||||
? //We use this hack for public shared single file
|
? //We use this hack for public shared single file
|
||||||
item
|
item
|
||||||
? [item]
|
? [item]
|
||||||
: []
|
: []
|
||||||
: children
|
: children
|
||||||
).filter(i => !i.is_directory);
|
|
||||||
|
const documents = items.filter(i => !i.is_directory);
|
||||||
|
|
||||||
const selectedCount = Object.values(checked).filter(v => v).length;
|
const selectedCount = Object.values(checked).filter(v => v).length;
|
||||||
|
|
||||||
@@ -292,6 +292,7 @@ export default memo(
|
|||||||
}}
|
}}
|
||||||
onDragOver={handleDragOver}
|
onDragOver={handleDragOver}
|
||||||
onDrop={handleDrop}
|
onDrop={handleDrop}
|
||||||
|
disabled={inTrash || access === 'read'}
|
||||||
>
|
>
|
||||||
{role == 'admin' && <UsersModal />}
|
{role == 'admin' && <UsersModal />}
|
||||||
<VersionsModal />
|
<VersionsModal />
|
||||||
@@ -307,7 +308,7 @@ export default memo(
|
|||||||
<div
|
<div
|
||||||
className={
|
className={
|
||||||
'flex flex-col grow h-full overflow-hidden ' +
|
'flex flex-col grow h-full overflow-hidden ' +
|
||||||
(loading && (!children?.length || loadingParentChange) ? 'opacity-50 ' : '')
|
(loading && (!items?.length || loadingParentChange) ? 'opacity-50 ' : '')
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<div className="flex flex-row shrink-0 items-center mb-4">
|
<div className="flex flex-row shrink-0 items-center mb-4">
|
||||||
@@ -423,7 +424,7 @@ export default memo(
|
|||||||
|
|
||||||
<DndContext sensors={sensors} onDragEnd={handleDragEnd} onDragStart={handleDragStart}>
|
<DndContext sensors={sensors} onDragEnd={handleDragEnd} onDragStart={handleDragStart}>
|
||||||
<div className="grow overflow-auto" ref={scrollViwer}>
|
<div className="grow overflow-auto" ref={scrollViwer}>
|
||||||
{documents.length === 0 && !loading && (
|
{items.length === 0 && !loading && (
|
||||||
<div className="mt-4 text-center border-2 border-dashed rounded-md p-8">
|
<div className="mt-4 text-center border-2 border-dashed rounded-md p-8">
|
||||||
<Subtitle className="block mb-2">
|
<Subtitle className="block mb-2">
|
||||||
{Languages.t('scenes.app.drive.nothing')}
|
{Languages.t('scenes.app.drive.nothing')}
|
||||||
@@ -443,14 +444,14 @@ export default memo(
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{children.map((child, index) =>
|
{items.map((child, index) =>
|
||||||
child.is_directory ? (
|
child.is_directory ? (
|
||||||
<Droppable id={index} key={index}>
|
<Droppable id={index} key={index}>
|
||||||
<FolderRow
|
<FolderRow
|
||||||
key={index}
|
key={index}
|
||||||
className={
|
className={
|
||||||
(index === 0 ? 'rounded-t-md ' : '') +
|
(index === 0 ? 'rounded-t-md ' : '') +
|
||||||
(index === children.length - 1 ? 'rounded-b-md ' : '')
|
(index === items.length - 1 ? 'rounded-b-md ' : '')
|
||||||
}
|
}
|
||||||
item={child}
|
item={child}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
@@ -476,7 +477,7 @@ export default memo(
|
|||||||
<DocumentRowOverlay
|
<DocumentRowOverlay
|
||||||
className={
|
className={
|
||||||
(activeIndex === 0 ? 'rounded-t-md ' : '') +
|
(activeIndex === 0 ? 'rounded-t-md ' : '') +
|
||||||
(activeIndex === children.length - 1 ? 'rounded-b-md ' : '')
|
(activeIndex === items.length - 1 ? 'rounded-b-md ' : '')
|
||||||
}
|
}
|
||||||
item={activeChild}
|
item={activeChild}
|
||||||
></DocumentRowOverlay>
|
></DocumentRowOverlay>
|
||||||
|
|||||||
@@ -102,6 +102,7 @@ export const useOnBuildContextMenu = (children: DriveItem[], initialParentId?: s
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
/*TODO: fix loading of preview in new window and uncomment. See https://github.com/linagora/twake-drive/issues/603 .
|
||||||
{
|
{
|
||||||
type: 'menu',
|
type: 'menu',
|
||||||
icon: 'eye',
|
icon: 'eye',
|
||||||
@@ -112,7 +113,7 @@ export const useOnBuildContextMenu = (children: DriveItem[], initialParentId?: s
|
|||||||
const route = RouterServices.generateRouteFromState({ companyId: company, viewId, itemId });
|
const route = RouterServices.generateRouteFromState({ companyId: company, viewId, itemId });
|
||||||
window.open(route, '_blank');
|
window.open(route, '_blank');
|
||||||
}
|
}
|
||||||
},
|
}, // */
|
||||||
{ type: 'separator' },
|
{ type: 'separator' },
|
||||||
{
|
{
|
||||||
type: 'menu',
|
type: 'menu',
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ const ConfirmDeleteModalContent = ({ items }: { items: DriveItem[] }) => {
|
|||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const [state, setState] = useRecoilState(ConfirmDeleteModalAtom);
|
const [state, setState] = useRecoilState(ConfirmDeleteModalAtom);
|
||||||
const [, setSelected] = useRecoilState(DriveItemSelectedList);
|
const [, setSelected] = useRecoilState(DriveItemSelectedList);
|
||||||
const { viewId } = RouterServices.getStateFromRoute();
|
const { dirId, viewId } = RouterServices.getStateFromRoute();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
refresh(items[0].id);
|
refresh(items[0].id);
|
||||||
@@ -65,9 +65,8 @@ const ConfirmDeleteModalContent = ({ items }: { items: DriveItem[] }) => {
|
|||||||
loading={loading}
|
loading={loading}
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
for (const item of items) {
|
const ids = items.map((item) => item.id);
|
||||||
await remove(item.id, viewId || "");
|
await remove(ids, dirId || viewId || "");
|
||||||
}
|
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
setSelected({});
|
setSelected({});
|
||||||
setState({ ...state, open: false });
|
setState({ ...state, open: false });
|
||||||
|
|||||||
Reference in New Issue
Block a user