mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-06 09:21:54 +00:00
@@ -159,7 +159,7 @@ class Account extends Component {
|
|||||||
|
|
||||||
Account.defaultProps = {
|
Account.defaultProps = {
|
||||||
isAdminPanel: false
|
isAdminPanel: false
|
||||||
}
|
};
|
||||||
|
|
||||||
Account.propTypes = propTypes;
|
Account.propTypes = propTypes;
|
||||||
|
|
||||||
|
@@ -10,15 +10,15 @@ const propTypes = {
|
|||||||
onNoticeItemClick: PropTypes.func.isRequired,
|
onNoticeItemClick: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
const MSG_TYPE_ADD_USER_TO_GROUP = 'add_user_to_group'
|
const MSG_TYPE_ADD_USER_TO_GROUP = 'add_user_to_group';
|
||||||
const MSG_TYPE_REPO_SHARE = 'repo_share'
|
const MSG_TYPE_REPO_SHARE = 'repo_share';
|
||||||
const MSG_TYPE_REPO_SHARE_TO_GROUP = 'repo_share_to_group'
|
const MSG_TYPE_REPO_SHARE_TO_GROUP = 'repo_share_to_group';
|
||||||
const MSG_TYPE_REPO_TRANSFER = 'repo_transfer'
|
const MSG_TYPE_REPO_TRANSFER = 'repo_transfer';
|
||||||
const MSG_TYPE_FILE_UPLOADED = 'file_uploaded'
|
const MSG_TYPE_FILE_UPLOADED = 'file_uploaded';
|
||||||
const MSG_TYPE_FILE_COMMENT = 'file_comment'
|
const MSG_TYPE_FILE_COMMENT = 'file_comment';
|
||||||
const MSG_TYPE_DRAFT_COMMENT = 'draft_comment'
|
const MSG_TYPE_DRAFT_COMMENT = 'draft_comment';
|
||||||
const MSG_TYPE_DRAFT_REVIEWER = 'draft_reviewer'
|
const MSG_TYPE_DRAFT_REVIEWER = 'draft_reviewer';
|
||||||
const MSG_TYPE_GUEST_INVITATION_ACCEPTED = 'guest_invitation_accepted'
|
const MSG_TYPE_GUEST_INVITATION_ACCEPTED = 'guest_invitation_accepted';
|
||||||
|
|
||||||
class NoticeItem extends React.Component {
|
class NoticeItem extends React.Component {
|
||||||
|
|
||||||
@@ -130,7 +130,7 @@ class NoticeItem extends React.Component {
|
|||||||
} else {
|
} else {
|
||||||
notice = gettext('A file named {upload_file_link} is uploaded to {uploaded_link}.');
|
notice = gettext('A file named {upload_file_link} is uploaded to {uploaded_link}.');
|
||||||
notice = notice.replace('{upload_file_link}', fileName);
|
notice = notice.replace('{upload_file_link}', fileName);
|
||||||
notice = notice.replace('{uploaded_link}', '<strong>Deleted Library</strong>')
|
notice = notice.replace('{uploaded_link}', '<strong>Deleted Library</strong>');
|
||||||
}
|
}
|
||||||
return {avatar_url, notice};
|
return {avatar_url, notice};
|
||||||
}
|
}
|
||||||
@@ -216,7 +216,7 @@ class NoticeItem extends React.Component {
|
|||||||
<p className="time">{moment(noticeItem.time).fromNow()}</p>
|
<p className="time">{moment(noticeItem.time).fromNow()}</p>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -203,7 +203,7 @@ class ContextMenu extends React.Component {
|
|||||||
<div role="menu" className="seafile-contextmenu dropdown-menu" style={inlineStyle} ref={menu => { this.menu = menu; }}>
|
<div role="menu" className="seafile-contextmenu dropdown-menu" style={inlineStyle} ref={menu => { this.menu = menu; }}>
|
||||||
{this.state.menuList.map((menuItem, index) => {
|
{this.state.menuList.map((menuItem, index) => {
|
||||||
if (menuItem === 'Divider') {
|
if (menuItem === 'Divider') {
|
||||||
return <div key={index} className="seafile-divider dropdown-divider"></div>
|
return <div key={index} className="seafile-divider dropdown-divider"></div>;
|
||||||
} else {
|
} else {
|
||||||
return (
|
return (
|
||||||
<button
|
<button
|
||||||
|
@@ -7,10 +7,10 @@ class GlobalEventListener {
|
|||||||
this.callbacks = {};
|
this.callbacks = {};
|
||||||
|
|
||||||
if (canUseDOM) {
|
if (canUseDOM) {
|
||||||
window.addEventListener(MENU_SHOW, this.handleShowEvent);
|
window.addEventListener(MENU_SHOW, this.handleShowEvent);
|
||||||
window.addEventListener(MENU_HIDE, this.handleHideEvent);
|
window.addEventListener(MENU_HIDE, this.handleHideEvent);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
handleShowEvent = (event) => {
|
handleShowEvent = (event) => {
|
||||||
for (const id in this.callbacks) {
|
for (const id in this.callbacks) {
|
||||||
|
@@ -157,7 +157,7 @@ class CopyDirent extends React.Component {
|
|||||||
} else {
|
} else {
|
||||||
title = gettext('Copy selected item(s) to:');
|
title = gettext('Copy selected item(s) to:');
|
||||||
}
|
}
|
||||||
let mode = this.props.repoEncrypted ? 'only_current_library':'current_repo_and_other_repos'
|
let mode = this.props.repoEncrypted ? 'only_current_library':'current_repo_and_other_repos';
|
||||||
return (
|
return (
|
||||||
<Modal isOpen={true} toggle={this.toggle}>
|
<Modal isOpen={true} toggle={this.toggle}>
|
||||||
<ModalHeader toggle={this.toggle}><div dangerouslySetInnerHTML={{__html: title}}></div></ModalHeader>
|
<ModalHeader toggle={this.toggle}><div dangerouslySetInnerHTML={{__html: title}}></div></ModalHeader>
|
||||||
|
@@ -130,8 +130,8 @@ class LibHistorySetting extends React.Component {
|
|||||||
</Form>
|
</Form>
|
||||||
</ModalBody>
|
</ModalBody>
|
||||||
<ModalFooter>
|
<ModalFooter>
|
||||||
<Button color="secondary" onClick={this.props.toggleDialog}>{gettext('Cancel')}</Button>
|
<Button color="secondary" onClick={this.props.toggleDialog}>{gettext('Cancel')}</Button>
|
||||||
<Button color="primary" onClick={this.submit}>{gettext('Submit')}</Button>
|
<Button color="primary" onClick={this.submit}>{gettext('Submit')}</Button>
|
||||||
</ModalFooter>
|
</ModalFooter>
|
||||||
</Modal>
|
</Modal>
|
||||||
);
|
);
|
||||||
|
@@ -36,7 +36,7 @@ class ListCreatedFileDialog extends React.Component {
|
|||||||
if (item.name.endsWith('(draft).md')) {
|
if (item.name.endsWith('(draft).md')) {
|
||||||
fileURL = serviceURL + '/drafts/' + item.draft_id + '/';
|
fileURL = serviceURL + '/drafts/' + item.draft_id + '/';
|
||||||
}
|
}
|
||||||
let fileLink = <a href={fileURL} target='_blank'>{item.name}</a>
|
let fileLink = <a href={fileURL} target='_blank'>{item.name}</a>;
|
||||||
if (item.name.endsWith('(draft).md') && !item.draft_id) {
|
if (item.name.endsWith('(draft).md') && !item.draft_id) {
|
||||||
fileLink = item.name;
|
fileLink = item.name;
|
||||||
}
|
}
|
||||||
|
@@ -127,7 +127,7 @@ class TaggedFile extends React.Component {
|
|||||||
return ( taggedFile.file_deleted ?
|
return ( taggedFile.file_deleted ?
|
||||||
<tr onMouseEnter={this.onMouseEnter} onMouseLeave={this.onMouseLeave}>
|
<tr onMouseEnter={this.onMouseEnter} onMouseLeave={this.onMouseLeave}>
|
||||||
<td colSpan='3' className="name">{taggedFile.filename}{' '}
|
<td colSpan='3' className="name">{taggedFile.filename}{' '}
|
||||||
<span style={{color:"red"}}>{gettext('deleted')}</span>
|
<span style={{color:'red'}}>{gettext('deleted')}</span>
|
||||||
</td>
|
</td>
|
||||||
<td><i className={className} onClick={this.props.onDeleteTaggedFile.bind(this, taggedFile)}></i></td>
|
<td><i className={className} onClick={this.props.onDeleteTaggedFile.bind(this, taggedFile)}></i></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@@ -157,7 +157,7 @@ class MoveDirent extends React.Component {
|
|||||||
} else {
|
} else {
|
||||||
title = gettext('Move selected item(s) to:');
|
title = gettext('Move selected item(s) to:');
|
||||||
}
|
}
|
||||||
let mode = this.props.repoEncrypted ? 'only_current_library':'current_repo_and_other_repos'
|
let mode = this.props.repoEncrypted ? 'only_current_library':'current_repo_and_other_repos';
|
||||||
return (
|
return (
|
||||||
<Modal isOpen={true} toggle={this.toggle}>
|
<Modal isOpen={true} toggle={this.toggle}>
|
||||||
<ModalHeader toggle={this.toggle}><div dangerouslySetInnerHTML={{__html: title}}></div></ModalHeader>
|
<ModalHeader toggle={this.toggle}><div dangerouslySetInnerHTML={{__html: title}}></div></ModalHeader>
|
||||||
|
@@ -140,18 +140,18 @@ class DetailListView extends React.Component {
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
{this.state.showRelatedFileDialog &&
|
{this.state.showRelatedFileDialog &&
|
||||||
<ModalPortal>
|
<ModalPortal>
|
||||||
<RelatedFileDialogs
|
<RelatedFileDialogs
|
||||||
repoID={this.props.repoID}
|
repoID={this.props.repoID}
|
||||||
filePath={direntPath}
|
filePath={direntPath}
|
||||||
relatedFiles={relatedFiles}
|
relatedFiles={relatedFiles}
|
||||||
toggleCancel={this.toggleCancel}
|
toggleCancel={this.toggleCancel}
|
||||||
onRelatedFileChange={this.onRelatedFileChange}
|
onRelatedFileChange={this.onRelatedFileChange}
|
||||||
dirent={this.props.dirent}
|
dirent={this.props.dirent}
|
||||||
viewMode="list_related_file"
|
viewMode="list_related_file"
|
||||||
/>
|
/>
|
||||||
</ModalPortal>
|
</ModalPortal>
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
this.state.isEditFileTagShow &&
|
this.state.isEditFileTagShow &&
|
||||||
<EditFileTagDialog
|
<EditFileTagDialog
|
||||||
|
@@ -332,24 +332,24 @@ class FileChooser extends React.Component {
|
|||||||
</Fragment>
|
</Fragment>
|
||||||
)}
|
)}
|
||||||
{this.props.mode === 'only_current_library' && (
|
{this.props.mode === 'only_current_library' && (
|
||||||
<div className="list-view">
|
<div className="list-view">
|
||||||
<div className="list-view-header">
|
<div className="list-view-header">
|
||||||
<span className={`item-toggle fa ${this.state.isCurrentRepoShow ? 'fa-caret-down' : 'fa-caret-right'}`} onClick={this.onCurrentRepoToggle}></span>
|
<span className={`item-toggle fa ${this.state.isCurrentRepoShow ? 'fa-caret-down' : 'fa-caret-right'}`} onClick={this.onCurrentRepoToggle}></span>
|
||||||
<span className="library">{gettext('Current Library')}</span>
|
<span className="library">{gettext('Current Library')}</span>
|
||||||
</div>
|
|
||||||
{
|
|
||||||
this.state.isCurrentRepoShow && this.state.currentRepoInfo &&
|
|
||||||
<RepoListView
|
|
||||||
initToShowChildren={true}
|
|
||||||
currentRepoInfo={this.state.currentRepoInfo}
|
|
||||||
selectedRepo={this.state.selectedRepo}
|
|
||||||
selectedPath={this.state.selectedPath}
|
|
||||||
onRepoItemClick={this.onRepoItemClick}
|
|
||||||
onDirentItemClick={this.onDirentItemClick}
|
|
||||||
isShowFile={this.props.isShowFile}
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
</div>
|
</div>
|
||||||
|
{
|
||||||
|
this.state.isCurrentRepoShow && this.state.currentRepoInfo &&
|
||||||
|
<RepoListView
|
||||||
|
initToShowChildren={true}
|
||||||
|
currentRepoInfo={this.state.currentRepoInfo}
|
||||||
|
selectedRepo={this.state.selectedRepo}
|
||||||
|
selectedPath={this.state.selectedPath}
|
||||||
|
onRepoItemClick={this.onRepoItemClick}
|
||||||
|
onDirentItemClick={this.onDirentItemClick}
|
||||||
|
isShowFile={this.props.isShowFile}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
)}
|
)}
|
||||||
{this.props.mode === 'only_all_repos' && (
|
{this.props.mode === 'only_all_repos' && (
|
||||||
<div className="file-chooser-container">
|
<div className="file-chooser-container">
|
||||||
@@ -358,15 +358,15 @@ class FileChooser extends React.Component {
|
|||||||
<span className="item-toggle fa fa-caret-down"></span>
|
<span className="item-toggle fa fa-caret-down"></span>
|
||||||
<span className="library">{gettext('Libraries')}</span>
|
<span className="library">{gettext('Libraries')}</span>
|
||||||
</div>
|
</div>
|
||||||
<RepoListView
|
<RepoListView
|
||||||
initToShowChildren={false}
|
initToShowChildren={false}
|
||||||
repoList={this.state.repoList}
|
repoList={this.state.repoList}
|
||||||
selectedRepo={this.state.selectedRepo}
|
selectedRepo={this.state.selectedRepo}
|
||||||
selectedPath={this.state.selectedPath}
|
selectedPath={this.state.selectedPath}
|
||||||
onRepoItemClick={this.onRepoItemClick}
|
onRepoItemClick={this.onRepoItemClick}
|
||||||
onDirentItemClick={this.onDirentItemClick}
|
onDirentItemClick={this.onDirentItemClick}
|
||||||
isShowFile={this.props.isShowFile}
|
isShowFile={this.props.isShowFile}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
@@ -16,7 +16,7 @@ class SearchResultItem extends React.Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
let item = this.props.item;
|
let item = this.props.item;
|
||||||
let className = item.link_content ? "item-img" : "lib-item-img";
|
let className = item.link_content ? 'item-img' : 'lib-item-img';
|
||||||
let folderIconUrl = item.link_content ? Utils.getFolderIconUrl(false, 192) : Utils.getDefaultLibIconUrl(true);
|
let folderIconUrl = item.link_content ? Utils.getFolderIconUrl(false, 192) : Utils.getDefaultLibIconUrl(true);
|
||||||
let fileIconUrl = item.is_dir ? folderIconUrl : Utils.getFileIconUrl(item.name, 192);
|
let fileIconUrl = item.is_dir ? folderIconUrl : Utils.getFileIconUrl(item.name, 192);
|
||||||
return (
|
return (
|
||||||
|
@@ -40,31 +40,31 @@ class RepoViewToolbar extends React.Component {
|
|||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<div className="cur-view-toolbar">
|
<div className="cur-view-toolbar">
|
||||||
<span className="sf2-icon-menu side-nav-toggle hidden-md-up d-md-none" title="Side Nav Menu" onClick={this.props.onShowSidePanel}></span>
|
<span className="sf2-icon-menu side-nav-toggle hidden-md-up d-md-none" title="Side Nav Menu" onClick={this.props.onShowSidePanel}></span>
|
||||||
<MediaQuery query="(min-width: 768px)">
|
<MediaQuery query="(min-width: 768px)">
|
||||||
<div className="operation">
|
<div className="operation">
|
||||||
<button className="btn btn-secondary operation-item" title={gettext('New Library')} onClick={this.onCreateToggle}>
|
<button className="btn btn-secondary operation-item" title={gettext('New Library')} onClick={this.onCreateToggle}>
|
||||||
<i className="fas fa-plus-square text-secondary mr-1"></i>{gettext('New Library')}
|
<i className="fas fa-plus-square text-secondary mr-1"></i>{gettext('New Library')}
|
||||||
</button>
|
</button>
|
||||||
{this.props.libraryType !== 'group' && (
|
{this.props.libraryType !== 'group' && (
|
||||||
<Dropdown isOpen={this.state.isOpen} toggle={this.toggleMore}>
|
<Dropdown isOpen={this.state.isOpen} toggle={this.toggleMore}>
|
||||||
<DropdownToggle className='btn btn-secondary operation-item'>
|
<DropdownToggle className='btn btn-secondary operation-item'>
|
||||||
{gettext('More')}
|
{gettext('More')}
|
||||||
</DropdownToggle>
|
</DropdownToggle>
|
||||||
<DropdownMenu>
|
<DropdownMenu>
|
||||||
<DropdownItem className="link-dropdown-container">
|
<DropdownItem className="link-dropdown-container">
|
||||||
<Link className="link-dropdown-item" to={siteRoot + 'my-libs/deleted/'}>{gettext('Deleted Libraries')}</Link>
|
<Link className="link-dropdown-item" to={siteRoot + 'my-libs/deleted/'}>{gettext('Deleted Libraries')}</Link>
|
||||||
</DropdownItem>
|
</DropdownItem>
|
||||||
</DropdownMenu>
|
</DropdownMenu>
|
||||||
</Dropdown>
|
</Dropdown>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</MediaQuery>
|
</MediaQuery>
|
||||||
<MediaQuery query="(max-width: 768px)">
|
<MediaQuery query="(max-width: 768px)">
|
||||||
<span className="sf2-icon-plus mobile-toolbar-icon" title={gettext('New Library')} onClick={this.onCreateToggle}></span>
|
<span className="sf2-icon-plus mobile-toolbar-icon" title={gettext('New Library')} onClick={this.onCreateToggle}></span>
|
||||||
</MediaQuery>
|
</MediaQuery>
|
||||||
</div>
|
</div>
|
||||||
{this.state.isCreateRepoDialogShow && (
|
{this.state.isCreateRepoDialogShow && (
|
||||||
<ModalPortal>
|
<ModalPortal>
|
||||||
<CreateRepoDialog
|
<CreateRepoDialog
|
||||||
|
@@ -426,7 +426,7 @@ class Draft extends React.Component {
|
|||||||
seafileAPI.publishDraft(draftID).then(res => {
|
seafileAPI.publishDraft(draftID).then(res => {
|
||||||
this.setState({
|
this.setState({
|
||||||
freezePublish: !this.state.freezePublish
|
freezePublish: !this.state.freezePublish
|
||||||
})
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -109,7 +109,7 @@ class MylibRepoListItem extends React.Component {
|
|||||||
} else {
|
} else {
|
||||||
seafileAPI.starItem(this.props.repo.repo_id, '/').then(() => {
|
seafileAPI.starItem(this.props.repo.repo_id, '/').then(() => {
|
||||||
this.setState({isStarred: !this.state.isStarred});
|
this.setState({isStarred: !this.state.isStarred});
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -252,7 +252,7 @@ class MylibRepoListItem extends React.Component {
|
|||||||
<tr className={this.state.highlight ? 'tr-highlight' : ''} onMouseEnter={this.onMouseEnter} onMouseLeave={this.onMouseLeave} onClick={this.onRepoClick}>
|
<tr className={this.state.highlight ? 'tr-highlight' : ''} onMouseEnter={this.onMouseEnter} onMouseLeave={this.onMouseLeave} onClick={this.onRepoClick}>
|
||||||
<td><img src={iconUrl} title={iconTitle} alt={iconTitle} width="24" /></td>
|
<td><img src={iconUrl} title={iconTitle} alt={iconTitle} width="24" /></td>
|
||||||
<td>
|
<td>
|
||||||
{this.state.isRenaming && (
|
{this.state.isRenaming && (
|
||||||
<Rename
|
<Rename
|
||||||
name={repo.repo_name}
|
name={repo.repo_name}
|
||||||
onRenameConfirm={this.onRenameConfirm}
|
onRenameConfirm={this.onRenameConfirm}
|
||||||
@@ -351,7 +351,7 @@ class MylibRepoListItem extends React.Component {
|
|||||||
</ModalPortal>
|
</ModalPortal>
|
||||||
)}
|
)}
|
||||||
</Fragment>
|
</Fragment>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -61,7 +61,7 @@ class TableBody extends Component {
|
|||||||
|
|
||||||
getThumbnails() {
|
getThumbnails() {
|
||||||
let items = this.state.items.filter((item) => {
|
let items = this.state.items.filter((item) => {
|
||||||
return Utils.imageCheck(item.obj_name) && !item.repo_encrypted;
|
return Utils.imageCheck(item.obj_name) && !item.repo_encrypted;
|
||||||
});
|
});
|
||||||
if (items.length == 0) {
|
if (items.length == 0) {
|
||||||
return ;
|
return ;
|
||||||
@@ -175,8 +175,8 @@ class Item extends Component {
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{ data.is_dir ?
|
{ data.is_dir ?
|
||||||
<Link to={data.dirent_view_url}>{data.obj_name}</Link> :
|
<Link to={data.dirent_view_url}>{data.obj_name}</Link> :
|
||||||
<a className="normal" href={data.dirent_view_url} target="_blank">{data.obj_name}</a>
|
<a className="normal" href={data.dirent_view_url} target="_blank">{data.obj_name}</a>
|
||||||
}
|
}
|
||||||
</td>
|
</td>
|
||||||
<td>{data.repo_name}</td>
|
<td>{data.repo_name}</td>
|
||||||
@@ -198,8 +198,8 @@ class Item extends Component {
|
|||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
{ data.is_dir ?
|
{ data.is_dir ?
|
||||||
<Link to={data.dirent_view_url}>{data.obj_name}</Link> :
|
<Link to={data.dirent_view_url}>{data.obj_name}</Link> :
|
||||||
<a className="normal" href={data.dirent_view_url} target="_blank">{data.obj_name}</a>
|
<a className="normal" href={data.dirent_view_url} target="_blank">{data.obj_name}</a>
|
||||||
}
|
}
|
||||||
<br />
|
<br />
|
||||||
<span className="dirent-meta-info">{data.repo_name}</span>
|
<span className="dirent-meta-info">{data.repo_name}</span>
|
||||||
|
@@ -123,9 +123,9 @@ class Wikis extends Component {
|
|||||||
<div className="cur-view-toolbar">
|
<div className="cur-view-toolbar">
|
||||||
<span className="sf2-icon-menu side-nav-toggle hidden-md-up d-md-none" title="Side Nav Menu" onClick={this.props.onShowSidePanel}></span>
|
<span className="sf2-icon-menu side-nav-toggle hidden-md-up d-md-none" title="Side Nav Menu" onClick={this.props.onShowSidePanel}></span>
|
||||||
<div className="operation">
|
<div className="operation">
|
||||||
<Button className="btn btn-secondary operation-item" onClick={this.onSelectToggle}>
|
<Button className="btn btn-secondary operation-item" onClick={this.onSelectToggle}>
|
||||||
<i className="fa fa-plus-square text-secondary mr-1"></i>{gettext('Publish a Library')}
|
<i className="fa fa-plus-square text-secondary mr-1"></i>{gettext('Publish a Library')}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<CommonToolbar onSearchedClick={this.props.onSearchedClick} />
|
<CommonToolbar onSearchedClick={this.props.onSearchedClick} />
|
||||||
|
@@ -1025,7 +1025,7 @@ class Wiki extends Component {
|
|||||||
if (!repoEncrypted && (
|
if (!repoEncrypted && (
|
||||||
canGenerateShareLink || canGenerateUploadLink ||
|
canGenerateShareLink || canGenerateUploadLink ||
|
||||||
isRepoOwner || isAdmin) && (
|
isRepoOwner || isAdmin) && (
|
||||||
userPerm == 'rw' || userPerm == 'r')) {
|
userPerm == 'rw' || userPerm == 'r')) {
|
||||||
showShareBtn = true;
|
showShareBtn = true;
|
||||||
if (!isVirtual && (isRepoOwner || isAdmin || isDepartmentAdmin)) {
|
if (!isVirtual && (isRepoOwner || isAdmin || isDepartmentAdmin)) {
|
||||||
enableDirPrivateShare = true;
|
enableDirPrivateShare = true;
|
||||||
|
Reference in New Issue
Block a user