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:
@@ -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>
|
||||||
|
@@ -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>
|
||||||
)}
|
)}
|
||||||
|
@@ -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"
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
Reference in New Issue
Block a user