1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-04 00:20:07 +00:00

[shared dir view] 'list tagged files' dialog: added 'download' for files

This commit is contained in:
llj
2022-03-15 10:53:16 +08:00
parent 7dbb1ca640
commit 2f16016da6
3 changed files with 16 additions and 6 deletions

View File

@@ -14,7 +14,8 @@ const propTypes = {
onClose: PropTypes.func.isRequired, onClose: PropTypes.func.isRequired,
updateUsedRepoTags: PropTypes.func, updateUsedRepoTags: PropTypes.func,
onFileTagChanged: PropTypes.func, onFileTagChanged: PropTypes.func,
shareLinkToken: PropTypes.string shareLinkToken: PropTypes.string,
enableFileDownload: PropTypes.bool
}; };
class ListTaggedFilesDialog extends React.Component { class ListTaggedFilesDialog extends React.Component {
@@ -95,6 +96,7 @@ class ListTaggedFilesDialog extends React.Component {
taggedFile={taggedFile} taggedFile={taggedFile}
onDeleteTaggedFile={this.onDeleteTaggedFile} onDeleteTaggedFile={this.onDeleteTaggedFile}
shareLinkToken={this.props.shareLinkToken} shareLinkToken={this.props.shareLinkToken}
enableFileDownload={this.props.enableFileDownload}
/> />
); );
})} })}
@@ -117,7 +119,8 @@ const TaggedFilePropTypes = {
repoID: PropTypes.string.isRequired, repoID: PropTypes.string.isRequired,
taggedFile: PropTypes.object, taggedFile: PropTypes.object,
onDeleteTaggedFile: PropTypes.func.isRequired, onDeleteTaggedFile: PropTypes.func.isRequired,
shareLinkToken: PropTypes.string shareLinkToken: PropTypes.string,
enableFileDownload: PropTypes.bool
}; };
class TaggedFile extends React.Component { class TaggedFile extends React.Component {
@@ -147,12 +150,13 @@ class TaggedFile extends React.Component {
} }
render() { render() {
const { taggedFile, shareLinkToken } = this.props; const { taggedFile, shareLinkToken, enableFileDownload } = this.props;
let className = this.state.active ? 'action-icon sf2-icon-x3' : 'action-icon vh sf2-icon-x3';
let path = taggedFile.parent_path ? Utils.joinPath(taggedFile.parent_path, taggedFile.filename) : ''; let path = taggedFile.parent_path ? Utils.joinPath(taggedFile.parent_path, taggedFile.filename) : '';
let href = shareLinkToken ? let href = shareLinkToken ?
siteRoot + 'd/' + shareLinkToken + '/files/?p=' + Utils.encodePath(path) : siteRoot + 'd/' + shareLinkToken + '/files/?p=' + Utils.encodePath(path) :
siteRoot + 'lib/' + this.props.repoID + '/file' + Utils.encodePath(path); siteRoot + 'lib/' + this.props.repoID + '/file' + Utils.encodePath(path);
return ( return (
<tr onMouseEnter={this.onMouseEnter} onMouseLeave={this.onMouseLeave} onFocus={this.onMouseEnter}> <tr onMouseEnter={this.onMouseEnter} onMouseLeave={this.onMouseLeave} onFocus={this.onMouseEnter}>
{taggedFile.file_deleted ? {taggedFile.file_deleted ?
@@ -170,7 +174,10 @@ class TaggedFile extends React.Component {
} }
<td> <td>
{!shareLinkToken && {!shareLinkToken &&
<a href="#" role="button" aria-label={gettext('Delete')} title={gettext('Delete')} className={className} onClick={this.deleteFile}></a> <a href="#" role="button" aria-label={gettext('Delete')} title={gettext('Delete')} className={`action-icon sf2-icon-x3${this.state.active ? '' : ' invisible'}`} onClick={this.deleteFile}></a>
}
{(shareLinkToken && enableFileDownload) &&
<a className={`action-icon sf2-icon-download${this.state.active ? '' : ' invisible'}`} href={`${href}&dl=1`} title={gettext('Download')} aria-label={gettext('Download')}></a>
} }
</td> </td>
</tr> </tr>

View File

@@ -18,7 +18,8 @@ const propTypes = {
updateUsedRepoTags: PropTypes.func, updateUsedRepoTags: PropTypes.func,
onFileTagChanged: PropTypes.func, onFileTagChanged: PropTypes.func,
className: PropTypes.string, className: PropTypes.string,
shareLinkToken: PropTypes.string shareLinkToken: PropTypes.string,
enableFileDownload: PropTypes.bool
}; };
class RepoInfoBar extends React.Component { class RepoInfoBar extends React.Component {
@@ -121,6 +122,7 @@ class RepoInfoBar extends React.Component {
updateUsedRepoTags={this.props.updateUsedRepoTags} updateUsedRepoTags={this.props.updateUsedRepoTags}
onFileTagChanged={this.props.onFileTagChanged} onFileTagChanged={this.props.onFileTagChanged}
shareLinkToken={this.props.shareLinkToken} shareLinkToken={this.props.shareLinkToken}
enableFileDownload={this.props.enableFileDownload}
/> />
</ModalPortal> </ModalPortal>
)} )}

View File

@@ -496,6 +496,7 @@ class SharedDirView extends React.Component {
currentPath={'/'} currentPath={'/'}
usedRepoTags={this.state.usedRepoTags} usedRepoTags={this.state.usedRepoTags}
shareLinkToken={token} shareLinkToken={token}
enableFileDownload={showDownloadIcon}
className="mx-0" className="mx-0"
/> />
)} )}