Web: Files: added sharing api
This commit is contained in:
parent
de55454c84
commit
f97e690773
@ -81,8 +81,14 @@ class SectionBodyContent extends React.Component {
|
|||||||
}
|
}
|
||||||
} */
|
} */
|
||||||
|
|
||||||
shouldComponentUpdate(nextProps) {
|
shouldComponentUpdate(nextProps, nextState) {
|
||||||
return !isEqual(this.props, nextProps);
|
if(this.state.showSharingPanel !== nextState.showSharingPanel) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if(!isEqual(this.props, nextProps)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
onClickRename = (item) => {
|
onClickRename = (item) => {
|
||||||
@ -192,7 +198,7 @@ class SectionBodyContent extends React.Component {
|
|||||||
key: "sharing-settings",
|
key: "sharing-settings",
|
||||||
label: "Sharing settings",
|
label: "Sharing settings",
|
||||||
onClick: this.onClickShare.bind(this, item),
|
onClick: this.onClickShare.bind(this, item),
|
||||||
disabled: item.access !== 1
|
disabled: item.access !== 1 && item.access !== 0
|
||||||
},
|
},
|
||||||
isFile
|
isFile
|
||||||
? {
|
? {
|
||||||
|
@ -20,11 +20,7 @@ import { withRouter } from "react-router";
|
|||||||
import { withTranslation } from "react-i18next";
|
import { withTranslation } from "react-i18next";
|
||||||
import { utils as commonUtils, constants, api } from "asc-web-common";
|
import { utils as commonUtils, constants, api } from "asc-web-common";
|
||||||
import i18n from "./i18n";
|
import i18n from "./i18n";
|
||||||
import {
|
import { getShareUsers, setShareFiles } from "../../../store/files/actions";
|
||||||
setSharedFolders,
|
|
||||||
setSharedFiles,
|
|
||||||
getShareUsers
|
|
||||||
} from "../../../store/files/actions";
|
|
||||||
import { getAccessOption } from '../../../store/files/selectors';
|
import { getAccessOption } from '../../../store/files/selectors';
|
||||||
import {
|
import {
|
||||||
StyledSharingPanel,
|
StyledSharingPanel,
|
||||||
@ -80,28 +76,34 @@ class SharingPanelComponent extends React.Component {
|
|||||||
//onKeyClick = () => console.log("onKeyClick");
|
//onKeyClick = () => console.log("onKeyClick");
|
||||||
|
|
||||||
onSaveClick = () => {
|
onSaveClick = () => {
|
||||||
toastr.success("onSaveClick");
|
const {
|
||||||
|
baseShareData,
|
||||||
const { baseShareData, isNotifyUsers, message } = this.state;
|
isNotifyUsers,
|
||||||
const { shareDataItems, selectedItems, onClose } = this.props;
|
message,
|
||||||
|
shareDataItems,
|
||||||
|
} = this.state;
|
||||||
|
const { selectedItems, onClose } = this.props;
|
||||||
|
|
||||||
const folderIds = [];
|
const folderIds = [];
|
||||||
const fileIds = [];
|
const fileIds = [];
|
||||||
|
|
||||||
const shareTo = [];
|
const share = [];
|
||||||
const access = [];
|
|
||||||
for (let item of shareDataItems) {
|
for (let item of shareDataItems) {
|
||||||
const baseItem = baseShareData.find((x) => x.id === item.id);
|
const baseItem = baseShareData.find((x) => x.id === item.id);
|
||||||
if (
|
if (
|
||||||
(baseItem && baseItem.rights.rights !== item.rights.rights) ||
|
(baseItem && baseItem.rights.rights !== item.rights.rights) ||
|
||||||
!baseItem
|
!baseItem
|
||||||
) {
|
) {
|
||||||
shareTo.push(item.id);
|
share.push({ shareTo: item.id, access: item.rights.accessNumber });
|
||||||
access.push(item.rights.accessNumber);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const notify = isNotifyUsers;
|
for (let item of baseShareData) {
|
||||||
|
const baseItem = shareDataItems.find((x) => x.id === item.id);
|
||||||
|
if (!baseItem) {
|
||||||
|
share.push({ shareTo: item.id, access: 0});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (let item of selectedItems) {
|
for (let item of selectedItems) {
|
||||||
if (item.fileExst) {
|
if (item.fileExst) {
|
||||||
@ -111,12 +113,9 @@ class SharingPanelComponent extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*folderIds.length > 0 &&
|
setShareFiles(folderIds, fileIds, share, isNotifyUsers, message)
|
||||||
setSharedFolders(folderIds, shareTo, access, notify, message);
|
.catch((err) => toastr.error(err))
|
||||||
fileIds.length > 0 &&
|
.finally(() => onClose());
|
||||||
setSharedFiles(fileIds, shareTo, access, notify, message);*/
|
|
||||||
|
|
||||||
onClose();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
onFullAccessClick = () => {
|
onFullAccessClick = () => {
|
||||||
|
@ -306,20 +306,17 @@ export function deleteFolder(folderId, deleteAfter, immediately) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setSharedFolders(folderIds, shareTo, access, notify, sharingMessage) {
|
export function setShareFiles(folderIds, fileIds, share, notify, sharingMessage) {
|
||||||
const requests = folderIds.map((id) =>
|
const foldersRequests = folderIds.map((id) =>
|
||||||
files.setShareFolder(id, shareTo, access, notify, sharingMessage)
|
files.setShareFolder(id, share, notify, sharingMessage)
|
||||||
);
|
);
|
||||||
|
|
||||||
return axios.all(requests).then((res) => res);
|
const filesRequests = fileIds.map((id) =>
|
||||||
}
|
files.setShareFiles(id, share, notify, sharingMessage)
|
||||||
|
|
||||||
export function setSharedFiles(fileId, shareTo, access, notify, sharingMessage) {
|
|
||||||
const requests = fileId.map((id) =>
|
|
||||||
files.setShareFiles(id, shareTo, access, notify, sharingMessage)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return axios.all(requests).then((res) => res);
|
const requests = [...foldersRequests, ...filesRequests];
|
||||||
|
return axios.all(requests);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getShareUsers(folderIds, fileIds) {
|
export function getShareUsers(folderIds, fileIds) {
|
||||||
|
@ -303,15 +303,14 @@ export function getShareFiles(fileId) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setShareFolder(folderId, shareTo, access, notify, sharingMessage) {
|
export function setShareFolder(folderId, share, notify, sharingMessage) {
|
||||||
const share = [shareTo, access];
|
|
||||||
const data = { share, notify, sharingMessage };
|
const data = { share, notify, sharingMessage };
|
||||||
return request({ method: "put", url: `/files/folder/${folderId}/share`, data });
|
return request({ method: "put", url: `/files/folder/${folderId}/share`, data });
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setShareFiles(fileId, shareTo, access, notify, sharingMessage) {
|
export function setShareFiles(fileId, share, notify, sharingMessage) {
|
||||||
const share = [shareTo, access];
|
|
||||||
const data = { share, notify, sharingMessage };
|
const data = { share, notify, sharingMessage };
|
||||||
|
console.log("data", data);
|
||||||
return request({ method: "put", url: `/files/file/${fileId}/share`, data });
|
return request({ method: "put", url: `/files/file/${fileId}/share`, data });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user