Web: Files: fixed update of row after change of file owner
This commit is contained in:
parent
cbb0c75492
commit
f4b41b5111
@ -19,6 +19,8 @@ import {
|
|||||||
setShareFiles,
|
setShareFiles,
|
||||||
setSharingPanelVisible,
|
setSharingPanelVisible,
|
||||||
setIsLoading,
|
setIsLoading,
|
||||||
|
setFiles,
|
||||||
|
setFolders,
|
||||||
} from "../../../store/files/actions";
|
} from "../../../store/files/actions";
|
||||||
import {
|
import {
|
||||||
getAccessOption,
|
getAccessOption,
|
||||||
@ -27,6 +29,8 @@ import {
|
|||||||
getSharePanelVisible,
|
getSharePanelVisible,
|
||||||
getCanShareOwnerChange,
|
getCanShareOwnerChange,
|
||||||
getIsLoading,
|
getIsLoading,
|
||||||
|
getFiles,
|
||||||
|
getFolders,
|
||||||
} from "../../../store/files/selectors";
|
} from "../../../store/files/selectors";
|
||||||
import {
|
import {
|
||||||
StyledAsidePanel,
|
StyledAsidePanel,
|
||||||
@ -99,6 +103,27 @@ class SharingPanelComponent extends React.Component {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
updateRowData = (newRowData) => {
|
||||||
|
const { files, folders, setFiles, setFolders } = this.props;
|
||||||
|
|
||||||
|
for (let item of newRowData) {
|
||||||
|
if (!item.fileExst && item.foldersCount) {
|
||||||
|
let folderIndex = folders.findIndex((x) => x.id === item.id);
|
||||||
|
if (folderIndex !== -1) {
|
||||||
|
folders[folderIndex] = item;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
let fileIndex = files.findIndex((x) => x.id === item.id);
|
||||||
|
if (fileIndex !== -1) {
|
||||||
|
files[fileIndex] = item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setFiles(files);
|
||||||
|
setFolders(folders);
|
||||||
|
};
|
||||||
|
|
||||||
onSaveClick = () => {
|
onSaveClick = () => {
|
||||||
const {
|
const {
|
||||||
baseShareData,
|
baseShareData,
|
||||||
@ -124,7 +149,7 @@ class SharingPanelComponent extends React.Component {
|
|||||||
(baseItem &&
|
(baseItem &&
|
||||||
baseItem.access !== item.access &&
|
baseItem.access !== item.access &&
|
||||||
!item.sharedTo.shareLink) ||
|
!item.sharedTo.shareLink) ||
|
||||||
!baseItem
|
(!item.isOwner && !baseItem)
|
||||||
) {
|
) {
|
||||||
share.push({ shareTo: item.sharedTo.id, access: item.access });
|
share.push({ shareTo: item.sharedTo.id, access: item.access });
|
||||||
}
|
}
|
||||||
@ -168,10 +193,15 @@ class SharingPanelComponent extends React.Component {
|
|||||||
externalAccess,
|
externalAccess,
|
||||||
ownerId
|
ownerId
|
||||||
)
|
)
|
||||||
|
.then((res) => {
|
||||||
|
if (ownerId) {
|
||||||
|
this.updateRowData(res[0]);
|
||||||
|
}
|
||||||
|
})
|
||||||
.catch((err) => toastr.error(err))
|
.catch((err) => toastr.error(err))
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
this.onClose();
|
|
||||||
setIsLoading(false);
|
setIsLoading(false);
|
||||||
|
this.onClose();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -244,7 +274,7 @@ class SharingPanelComponent extends React.Component {
|
|||||||
const accessOptions = getAccessOption(selection);
|
const accessOptions = getAccessOption(selection);
|
||||||
const externalAccessOptions = getExternalAccessOption(selection);
|
const externalAccessOptions = getExternalAccessOption(selection);
|
||||||
const filesOwner = shareDataItems.find((x) => x.isOwner);
|
const filesOwner = shareDataItems.find((x) => x.isOwner);
|
||||||
const filesOwnerId = filesOwner ? filesOwner.id : null;
|
const filesOwnerId = filesOwner ? filesOwner.sharedTo.id : null;
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
baseShareData,
|
baseShareData,
|
||||||
@ -530,10 +560,14 @@ const mapStateToProps = (state) => {
|
|||||||
sharingPanelVisible: getSharePanelVisible(state),
|
sharingPanelVisible: getSharePanelVisible(state),
|
||||||
canShareOwnerChange: getCanShareOwnerChange(state),
|
canShareOwnerChange: getCanShareOwnerChange(state),
|
||||||
isLoading: getIsLoading(state),
|
isLoading: getIsLoading(state),
|
||||||
|
files: getFiles(state),
|
||||||
|
folders: getFolders(state),
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export default connect(mapStateToProps, {
|
export default connect(mapStateToProps, {
|
||||||
setSharingPanelVisible,
|
setSharingPanelVisible,
|
||||||
setIsLoading,
|
setIsLoading,
|
||||||
|
setFiles,
|
||||||
|
setFolders,
|
||||||
})(withRouter(SharingPanel));
|
})(withRouter(SharingPanel));
|
||||||
|
@ -561,10 +561,14 @@ export function setShareFiles(
|
|||||||
? [files.setFileOwner(folderIds, fileIds, ownerId)]
|
? [files.setFileOwner(folderIds, fileIds, ownerId)]
|
||||||
: [];
|
: [];
|
||||||
|
|
||||||
|
const shareRequest = !!share.length
|
||||||
|
? [files.setShareFiles(fileIds, folderIds, share, notify, sharingMessage)]
|
||||||
|
: [];
|
||||||
|
|
||||||
const requests = [
|
const requests = [
|
||||||
files.setShareFiles(fileIds, folderIds, share, notify, sharingMessage),
|
|
||||||
...externalAccessRequest,
|
|
||||||
...ownerChangeRequest,
|
...ownerChangeRequest,
|
||||||
|
...shareRequest,
|
||||||
|
...externalAccessRequest,
|
||||||
];
|
];
|
||||||
|
|
||||||
return axios.all(requests);
|
return axios.all(requests);
|
||||||
|
Loading…
Reference in New Issue
Block a user