diff --git a/frontend/package.json b/frontend/package.json index fdb32bf1f5..f47f6b01d2 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -32,6 +32,7 @@ "reactstrap": "^6.4.0", "seafile-js": "^0.2.47", "seafile-ui": "^0.1.10", + "socket.io-client": "^2.2.0", "sw-precache-webpack-plugin": "0.11.4", "unified": "^7.0.0", "url-loader": "0.6.2", diff --git a/frontend/src/components/dir-view/dir-panel.js b/frontend/src/components/dir-view/dir-panel.js index cbbdb52c03..3d74c81cb9 100644 --- a/frontend/src/components/dir-view/dir-panel.js +++ b/frontend/src/components/dir-view/dir-panel.js @@ -18,6 +18,7 @@ const propTypes = { pathPrefix: PropTypes.array.isRequired, path: PropTypes.string.isRequired, repoID: PropTypes.string.isRequired, + dirID: PropTypes.string.isRequired, repoName: PropTypes.string.isRequired, pathExist: PropTypes.bool.isRequired, permission: PropTypes.bool.isRequired, @@ -165,6 +166,7 @@ class DirPanel extends React.Component { ErrMessage : { - let direntList = res.data.map(item => { + let direntList = res.data.data.map(item => { return new Dirent(item); }); this.setState({ isDirentListLoading: false, direntList: direntList, + dirID: res.data.oid, }); }).catch(() => { this.setState({pathExist: false}); @@ -460,6 +462,7 @@ class DirView extends React.Component { render() { return ( { + console.log(data); + this.checkFileUpdate(); + }); + socket.on('connect', function(){}); + } + + checkFileUpdate = () => { + let repoID = this.props.repoID; + let path = this.props.path; + + seafileAPI.dirMetaData(repoID, path).then((res) => { + if (res.data.id !== this.props.dirID) { + toaster.notify('File updated! Refresh.') + } + }); } onFreezedItem = () => { diff --git a/frontend/src/pages/repo-wiki-mode/main-panel.js b/frontend/src/pages/repo-wiki-mode/main-panel.js index 0050557155..3fe298a2e6 100644 --- a/frontend/src/pages/repo-wiki-mode/main-panel.js +++ b/frontend/src/pages/repo-wiki-mode/main-panel.js @@ -30,6 +30,7 @@ const propTypes = { isDirentSelected: PropTypes.bool.isRequired, isAllDirentSelected: PropTypes.bool.isRequired, direntList: PropTypes.array.isRequired, + dirID: PropTypes.string.isRequired, selectedDirentList: PropTypes.array.isRequired, updateDirent: PropTypes.func.isRequired, onSideNavMenuClick: PropTypes.func.isRequired, @@ -244,6 +245,7 @@ class MainPanel extends Component { /> : { let direntList = []; - res.data.forEach(item => { + res.data.data.forEach(item => { let dirent = new Dirent(item); direntList.push(dirent); }); this.setState({ direntList: direntList, isDirentListLoading: false, + dirID: res.data.oid, }); }); } @@ -835,6 +837,7 @@ class Wiki extends Component { onDeleteNode={this.onDeleteTreeNode} />