diff --git a/frontend/src/components/cur-dir-path/dir-tool.js b/frontend/src/components/cur-dir-path/dir-tool.js index bf22038457..8facc62c66 100644 --- a/frontend/src/components/cur-dir-path/dir-tool.js +++ b/frontend/src/components/cur-dir-path/dir-tool.js @@ -15,6 +15,7 @@ const propTypes = { permission: PropTypes.bool.isRequired, currentPath: PropTypes.string.isRequired, updateUsedRepoTags: PropTypes.func.isRequired, + onDeleteRepoTag: PropTypes.func.isRequired, }; class DirTool extends React.Component { @@ -121,6 +122,7 @@ class DirTool extends React.Component { currentTag={this.state.currentTag} onClose={this.onCloseRepoTagDialog} toggleCancel={this.onUpdateRepoTagToggle} + onDeleteRepoTag={this.props.onDeleteRepoTag} /> )} diff --git a/frontend/src/components/cur-dir-path/index.js b/frontend/src/components/cur-dir-path/index.js index a7bf398eff..b672dd8796 100644 --- a/frontend/src/components/cur-dir-path/index.js +++ b/frontend/src/components/cur-dir-path/index.js @@ -14,6 +14,7 @@ const propTypes = { isViewFile: PropTypes.bool, updateUsedRepoTags: PropTypes.func.isRequired, fileTags: PropTypes.array.isRequired, + onDeleteRepoTag: PropTypes.func.isRequired, }; class CurDirPath extends React.Component { @@ -37,6 +38,7 @@ class CurDirPath extends React.Component { permission={this.props.permission} currentPath={this.props.currentPath} updateUsedRepoTags={this.props.updateUsedRepoTags} + onDeleteRepoTag={this.props.onDeleteRepoTag} /> ); diff --git a/frontend/src/components/dialog/update-tag-dialog.js b/frontend/src/components/dialog/update-tag-dialog.js index 4d6fcddde3..4c9db68c09 100644 --- a/frontend/src/components/dialog/update-tag-dialog.js +++ b/frontend/src/components/dialog/update-tag-dialog.js @@ -8,6 +8,7 @@ const propTypes = { currentTag: PropTypes.object, repoID: PropTypes.string.isRequired, toggleCancel: PropTypes.func.isRequired, + onDeleteRepoTag: PropTypes.func.isRequired, onClose: PropTypes.func.isRequired }; @@ -65,8 +66,11 @@ class UpdateTagDialog extends React.Component { onDeleteTag = () => { let tag = this.props.currentTag; let repoID = this.props.repoID; - seafileAPI.deleteRepoTag(repoID, tag.id).then(() => { + seafileAPI.deleteRepoTag(repoID, tag.id).then((res) => { this.props.toggleCancel(); + if (res.data.success === "true") { + this.props.onDeleteRepoTag(tag.id); + } }); } diff --git a/frontend/src/pages/lib-content-view/lib-content-container.js b/frontend/src/pages/lib-content-view/lib-content-container.js index c96aff9551..9c0329dc49 100644 --- a/frontend/src/pages/lib-content-view/lib-content-container.js +++ b/frontend/src/pages/lib-content-view/lib-content-container.js @@ -75,6 +75,7 @@ const propTypes = { selectedDirent: PropTypes.object, closeDirentDetail: PropTypes.func.isRequired, showDirentDetail: PropTypes.func.isRequired, + onDeleteRepoTag: PropTypes.func.isRequired, }; class LibContentContainer extends React.Component { @@ -153,6 +154,7 @@ class LibContentContainer extends React.Component { onPathClick={this.onPathClick} updateUsedRepoTags={this.props.updateUsedRepoTags} fileTags={this.props.fileTags} + onDeleteRepoTag={this.props.onDeleteRepoTag} />
diff --git a/frontend/src/pages/lib-content-view/lib-content-view.js b/frontend/src/pages/lib-content-view/lib-content-view.js index 713f1e9224..b9f077dd3a 100644 --- a/frontend/src/pages/lib-content-view/lib-content-view.js +++ b/frontend/src/pages/lib-content-view/lib-content-view.js @@ -1229,6 +1229,20 @@ class LibContentView extends React.Component { this.onDirentSelected(dirent); } + onDeleteRepoTag = (deletedTagID) => { + let direntList = this.state.direntList.map(dirent => { + if (dirent.file_tags) { + let fileTags = dirent.file_tags.filter(item => { + return item.repo_tag_id !== deletedTagID; + }); + dirent.file_tags = fileTags; + } + return dirent; + }); + this.setState({direntList: direntList}); + this.updateUsedRepoTags(); + } + render() { if (this.state.libNeedDecrypt) { return ( @@ -1380,6 +1394,7 @@ class LibContentView extends React.Component { selectedDirent={this.state.selectedDirentList && this.state.selectedDirentList[0]} closeDirentDetail={this.closeDirentDetail} showDirentDetail={this.showDirentDetail} + onDeleteRepoTag={this.onDeleteRepoTag} /> {this.state.pathExist && !this.state.isViewFile && (