mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-02 23:48:47 +00:00
add enable_wiki
This commit is contained in:
committed by
shanshuirenjia
parent
0de207a3b3
commit
7246dad55d
@@ -39,7 +39,7 @@ const ShareAdminLibrariesWrapper = MainContentWrapper(ShareAdminLibraries);
|
|||||||
const ShareAdminFoldersWrapper = MainContentWrapper(ShareAdminFolders);
|
const ShareAdminFoldersWrapper = MainContentWrapper(ShareAdminFolders);
|
||||||
const ShareAdminShareLinksWrapper = MainContentWrapper(ShareAdminShareLinks);
|
const ShareAdminShareLinksWrapper = MainContentWrapper(ShareAdminShareLinks);
|
||||||
const ShareAdminUploadLinksWrapper = MainContentWrapper(ShareAdminUploadLinks);
|
const ShareAdminUploadLinksWrapper = MainContentWrapper(ShareAdminUploadLinks);
|
||||||
const Wikiswrapper = MainContentWrapper(Wikis);
|
const WikisWrapper = MainContentWrapper(Wikis);
|
||||||
|
|
||||||
class App extends Component {
|
class App extends Component {
|
||||||
|
|
||||||
@@ -144,7 +144,7 @@ class App extends Component {
|
|||||||
<DirView path={siteRoot + 'library/:repoID/*'} onMenuClick={this.onShowSidePanel} updateCurrentTab={this.updateCurrentTab}/>
|
<DirView path={siteRoot + 'library/:repoID/*'} onMenuClick={this.onShowSidePanel} updateCurrentTab={this.updateCurrentTab}/>
|
||||||
<Groups path={siteRoot + 'groups'} onShowSidePanel={this.onShowSidePanel} onSearchedClick={this.onSearchedClick}/>
|
<Groups path={siteRoot + 'groups'} onShowSidePanel={this.onShowSidePanel} onSearchedClick={this.onSearchedClick}/>
|
||||||
<Group path={siteRoot + 'group/:groupID'} onShowSidePanel={this.onShowSidePanel} onSearchedClick={this.onSearchedClick}/>
|
<Group path={siteRoot + 'group/:groupID'} onShowSidePanel={this.onShowSidePanel} onSearchedClick={this.onSearchedClick}/>
|
||||||
<Wikiswrapper path={siteRoot + 'wikis'} onShowSidePanel={this.onShowSidePanel} onSearchedClick={this.onSearchedClick}/>
|
<WikisWrapper path={siteRoot + 'wikis'} onShowSidePanel={this.onShowSidePanel} onSearchedClick={this.onSearchedClick}/>
|
||||||
</Router>
|
</Router>
|
||||||
</MainPanel>
|
</MainPanel>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -8,7 +8,7 @@ const propTypes = {
|
|||||||
addWiki: PropTypes.func.isRequired,
|
addWiki: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
class WikiDelete extends React.Component {
|
class NewWikiDialog extends React.Component {
|
||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
@@ -64,6 +64,6 @@ class WikiDelete extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WikiDelete.propTypes = propTypes;
|
NewWikiDialog.propTypes = propTypes;
|
||||||
|
|
||||||
export default WikiDelete;
|
export default NewWikiDialog;
|
@@ -8,7 +8,7 @@ const propTypes = {
|
|||||||
handleSubmit: PropTypes.func.isRequired,
|
handleSubmit: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
class WikiDelete extends React.Component {
|
class WikiDeleteDialog extends React.Component {
|
||||||
|
|
||||||
toggle = () => {
|
toggle = () => {
|
||||||
this.props.toggleCancel();
|
this.props.toggleCancel();
|
||||||
@@ -30,6 +30,6 @@ class WikiDelete extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WikiDelete.propTypes = propTypes;
|
WikiDeleteDialog.propTypes = propTypes;
|
||||||
|
|
||||||
export default WikiDelete;
|
export default WikiDeleteDialog;
|
@@ -10,7 +10,7 @@ const propTypes = {
|
|||||||
addWiki: PropTypes.func.isRequired,
|
addWiki: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
class WikiSelect extends React.Component {
|
class WikiSelectDialog extends React.Component {
|
||||||
|
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super(props);
|
super(props);
|
||||||
@@ -84,6 +84,6 @@ class WikiSelect extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WikiSelect.propTypes = propTypes;
|
WikiSelectDialog.propTypes = propTypes;
|
||||||
|
|
||||||
export default WikiSelect;
|
export default WikiSelectDialog;
|
@@ -1,7 +1,7 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { Link } from '@reach/router';
|
import { Link } from '@reach/router';
|
||||||
import { gettext, siteRoot } from '../utils/constants';
|
import { gettext, siteRoot, enableWiki } from '../utils/constants';
|
||||||
import { seafileAPI } from '../utils/seafile-api';
|
import { seafileAPI } from '../utils/seafile-api';
|
||||||
import { Badge } from 'reactstrap';
|
import { Badge } from 'reactstrap';
|
||||||
|
|
||||||
@@ -170,12 +170,14 @@ class MainSideNav extends React.Component {
|
|||||||
<span className="nav-text">{gettext('Acitivities')}</span>
|
<span className="nav-text">{gettext('Acitivities')}</span>
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
<li className='nav-item'>
|
{enableWiki &&
|
||||||
|
<li className="nav-item">
|
||||||
<Link className={`nav-link ellipsis ${this.getActiveClass('wikis')}`} to={siteRoot + 'wikis/'} title={gettext('Wikis')} onClick={() => this.tabItemClick('wikis')}>
|
<Link className={`nav-link ellipsis ${this.getActiveClass('wikis')}`} to={siteRoot + 'wikis/'} title={gettext('Wikis')} onClick={() => this.tabItemClick('wikis')}>
|
||||||
<span className="sf2-icon-wiki-view" aria-hidden="true"></span>
|
<span className="sf2-icon-wiki-view" aria-hidden="true"></span>
|
||||||
{gettext('Wikis')}
|
{gettext('Wikis')}
|
||||||
</Link>
|
</Link>
|
||||||
</li>
|
</li>
|
||||||
|
}
|
||||||
<li className="nav-item">
|
<li className="nav-item">
|
||||||
<Link className={`nav-link ellipsis ${this.getActiveClass('linked-devices')}`} to={siteRoot + 'linked-devices/'} title={gettext('Linked Devices')} onClick={() => this.tabItemClick('linked-devices')}>
|
<Link className={`nav-link ellipsis ${this.getActiveClass('linked-devices')}`} to={siteRoot + 'linked-devices/'} title={gettext('Linked Devices')} onClick={() => this.tabItemClick('linked-devices')}>
|
||||||
<span className="sf2-icon-monitor" aria-hidden="true"></span>
|
<span className="sf2-icon-monitor" aria-hidden="true"></span>
|
||||||
|
@@ -4,7 +4,7 @@ import { gettext } from '../../utils/constants';
|
|||||||
|
|
||||||
const propTypes = {
|
const propTypes = {
|
||||||
isShowWikiAdd: PropTypes.bool.isRequired,
|
isShowWikiAdd: PropTypes.bool.isRequired,
|
||||||
addPosition: PropTypes.object.isRequired,
|
position: PropTypes.object.isRequired,
|
||||||
onSelectToggle: PropTypes.func.isRequired,
|
onSelectToggle: PropTypes.func.isRequired,
|
||||||
onCreateToggle: PropTypes.func.isRequired,
|
onCreateToggle: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
@@ -13,9 +13,9 @@ class WikiAdd extends React.Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
let style = {};
|
let style = {};
|
||||||
let {isShowWikiAdd, addPosition} = this.props;
|
let {isShowWikiAdd, position} = this.props;
|
||||||
if (isShowWikiAdd) {
|
if (isShowWikiAdd) {
|
||||||
style = {position: 'fixed', top: addPosition.top, left: addPosition.left, display: 'block'};
|
style = {position: 'fixed', top: position.top, left: position.left, display: 'block'};
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<ul className="dropdown-menu" style={style}>
|
<ul className="dropdown-menu" style={style}>
|
||||||
|
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
|||||||
import { gettext } from '../../utils/constants';
|
import { gettext } from '../../utils/constants';
|
||||||
|
|
||||||
const propTypes = {
|
const propTypes = {
|
||||||
menuPosition: PropTypes.object.isRequired,
|
position: PropTypes.object.isRequired,
|
||||||
onRenameToggle: PropTypes.func.isRequired,
|
onRenameToggle: PropTypes.func.isRequired,
|
||||||
onDeleteToggle: PropTypes.func.isRequired,
|
onDeleteToggle: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
@@ -11,8 +11,8 @@ const propTypes = {
|
|||||||
class WikiMenu extends React.Component {
|
class WikiMenu extends React.Component {
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let menuPosition = this.props.menuPosition;
|
let position = this.props.position;
|
||||||
let style = {position: 'fixed', top: menuPosition.top, left: menuPosition.left, display: 'block'};
|
let style = {position: 'fixed', top: position.top, left: position.left, display: 'block'};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ul className="dropdown-menu" style={style}>
|
<ul className="dropdown-menu" style={style}>
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import React, { Component } from 'react';
|
import React, { Component, Fragment } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { seafileAPI } from '../../utils/seafile-api';
|
import { seafileAPI } from '../../utils/seafile-api';
|
||||||
import { gettext, siteRoot, loginUrl } from '../../utils/constants';
|
import { gettext, siteRoot, loginUrl } from '../../utils/constants';
|
||||||
@@ -9,9 +9,10 @@ import MenuControl from '../../components/menu-control';
|
|||||||
import WikiAdd from './wiki-add';
|
import WikiAdd from './wiki-add';
|
||||||
import WikiMenu from './wiki-menu';
|
import WikiMenu from './wiki-menu';
|
||||||
import WikiRename from './wiki-rename';
|
import WikiRename from './wiki-rename';
|
||||||
import WikiDelete from './wiki-delete';
|
import NewWikiDialog from '../../components/dialog/new-wiki-dialog';
|
||||||
import WikiSelect from './wiki-select';
|
import WikiDeleteDialog from '../../components/dialog/wiki-delete-dialog';
|
||||||
import WikiCreate from './wiki-create';
|
import WikiSelectDialog from '../../components/dialog/wiki-select-dialog';
|
||||||
|
import ModalPortal from '../../components/modal-portal';
|
||||||
|
|
||||||
|
|
||||||
const itempropTypes = {
|
const itempropTypes = {
|
||||||
@@ -25,7 +26,7 @@ class Item extends Component {
|
|||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
isShowWikiMenu: false,
|
isShowWikiMenu: false,
|
||||||
menuPosition: {top:'', left: ''},
|
position: {top:'', left: ''},
|
||||||
isItemFreezed: false,
|
isItemFreezed: false,
|
||||||
isShowDeleteDialog: false,
|
isShowDeleteDialog: false,
|
||||||
isShowMenuControl: false,
|
isShowMenuControl: false,
|
||||||
@@ -59,7 +60,7 @@ class Item extends Component {
|
|||||||
let position = {top: top, left: left};
|
let position = {top: top, left: left};
|
||||||
this.setState({
|
this.setState({
|
||||||
isShowWikiMenu: true,
|
isShowWikiMenu: true,
|
||||||
menuPosition: position,
|
position: position,
|
||||||
isItemFreezed: true,
|
isItemFreezed: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -149,35 +150,39 @@ class Item extends Component {
|
|||||||
let userProfileURL = `${siteRoot}profile/${encodeURIComponent(wiki.owner)}/`;
|
let userProfileURL = `${siteRoot}profile/${encodeURIComponent(wiki.owner)}/`;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<tr className={this.state.highlight} onMouseEnter={this.onMouseEnter} onMouseLeave={this.onMouseLeave}>
|
<Fragment>
|
||||||
<td>
|
<tr className={this.state.highlight} onMouseEnter={this.onMouseEnter} onMouseLeave={this.onMouseLeave}>
|
||||||
{this.state.isRenameing ?
|
<td>
|
||||||
<WikiRename wiki={wiki} onRenameConfirm={this.onRenameConfirm} onRenameCancel={this.onRenameCancel}/> :
|
{this.state.isRenameing ?
|
||||||
<a href={wiki.link}>{gettext(wiki.name)}</a>
|
<WikiRename wiki={wiki} onRenameConfirm={this.onRenameConfirm} onRenameCancel={this.onRenameCancel}/> :
|
||||||
}
|
<a href={wiki.link}>{gettext(wiki.name)}</a>
|
||||||
</td>
|
}
|
||||||
<td><a href={userProfileURL} target='_blank'>{gettext(wiki.owner_nickname)}</a></td>
|
</td>
|
||||||
<td>{moment(wiki.updated_at).fromNow()}</td>
|
<td><a href={userProfileURL} target='_blank'>{gettext(wiki.owner_nickname)}</a></td>
|
||||||
<td className="menu-toggle" onClick={this.onMenuToggle}>
|
<td>{moment(wiki.updated_at).fromNow()}</td>
|
||||||
<MenuControl
|
<td className="menu-toggle" onClick={this.onMenuToggle}>
|
||||||
isShow={this.state.isShowMenuControl}
|
<MenuControl
|
||||||
onClick={this.onMenuToggle}
|
isShow={this.state.isShowMenuControl}
|
||||||
/>
|
onClick={this.onMenuToggle}
|
||||||
{this.state.isShowWikiMenu &&
|
|
||||||
<WikiMenu
|
|
||||||
menuPosition={this.state.menuPosition}
|
|
||||||
onRenameToggle={this.onRenameToggle}
|
|
||||||
onDeleteToggle={this.onDeleteToggle}
|
|
||||||
/>
|
/>
|
||||||
}
|
{this.state.isShowWikiMenu &&
|
||||||
{this.state.isShowDeleteDialog &&
|
<WikiMenu
|
||||||
<WikiDelete
|
position={this.state.position}
|
||||||
|
onRenameToggle={this.onRenameToggle}
|
||||||
|
onDeleteToggle={this.onDeleteToggle}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{this.state.isShowDeleteDialog &&
|
||||||
|
<ModalPortal>
|
||||||
|
<WikiDeleteDialog
|
||||||
toggleCancel={this.onDeleteToggle}
|
toggleCancel={this.onDeleteToggle}
|
||||||
handleSubmit={this.deleteWiki}
|
handleSubmit={this.deleteWiki}
|
||||||
/>
|
/>
|
||||||
}
|
</ModalPortal>
|
||||||
</td>
|
}
|
||||||
</tr>
|
</Fragment>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -237,7 +242,7 @@ class Wikis extends Component {
|
|||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
wikis: [],
|
wikis: [],
|
||||||
isShowWikiAdd: false,
|
isShowWikiAdd: false,
|
||||||
addPosition: {top:'', left: ''},
|
position: {top:'', left: ''},
|
||||||
isShowSelectDialog: false,
|
isShowSelectDialog: false,
|
||||||
isShowCreateDialog: false,
|
isShowCreateDialog: false,
|
||||||
};
|
};
|
||||||
@@ -248,10 +253,6 @@ class Wikis extends Component {
|
|||||||
this.getWikis();
|
this.getWikis();
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps() {
|
|
||||||
this.getWikis();
|
|
||||||
}
|
|
||||||
|
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
document.removeEventListener('click', this.onHideWikiAdd);
|
document.removeEventListener('click', this.onHideWikiAdd);
|
||||||
}
|
}
|
||||||
@@ -302,7 +303,7 @@ class Wikis extends Component {
|
|||||||
let position = {top: top, left: left};
|
let position = {top: top, left: left};
|
||||||
this.setState({
|
this.setState({
|
||||||
isShowWikiAdd: true,
|
isShowWikiAdd: true,
|
||||||
addPosition: position,
|
position: position,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -374,53 +375,59 @@ class Wikis extends Component {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<div className="main-panel-center">
|
<Fragment>
|
||||||
<div className="cur-view-container" id="wikis">
|
<div className="main-panel-center">
|
||||||
<div className="cur-view-path">
|
<div className="cur-view-container" id="wikis">
|
||||||
<h3 className="sf-heading">{gettext('Wikis')}</h3>
|
<div className="cur-view-path">
|
||||||
<div style={{float:'right'}}>
|
<h3 className="sf-heading">{gettext('Wikis')}</h3>
|
||||||
<Button className="fa fa-plus-square" onClick={this.onAddMenuToggle}>
|
<div style={{float:'right'}}>
|
||||||
{gettext('Add Wiki')}
|
<Button className="fa fa-plus-square" onClick={this.onAddMenuToggle}>
|
||||||
</Button>
|
{gettext('Add Wiki')}
|
||||||
</div>
|
</Button>
|
||||||
{this.state.isShowWikiAdd &&
|
|
||||||
<WikiAdd
|
|
||||||
isShowWikiAdd={this.state.isShowWikiAdd}
|
|
||||||
addPosition={this.state.addPosition}
|
|
||||||
onSelectToggle={this.onSelectToggle}
|
|
||||||
onCreateToggle={this.onCreateToggle}
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
{this.state.isShowCreateDialog &&
|
|
||||||
<WikiCreate
|
|
||||||
toggleCancel={this.onCreateToggle}
|
|
||||||
addWiki={this.addWiki}
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
{this.state.isShowSelectDialog &&
|
|
||||||
<WikiSelect
|
|
||||||
toggleCancel={this.onSelectToggle}
|
|
||||||
addWiki={this.addWiki}
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
<div className="cur-view-content">
|
|
||||||
{(this.state.loading || this.state.wikis.length !== 0) &&
|
|
||||||
<WikisContent
|
|
||||||
data={this.state}
|
|
||||||
renameWiki={this.renameWiki}
|
|
||||||
deleteWiki={this.deleteWiki}
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
{(!this.state.loading && this.state.wikis.length === 0) &&
|
|
||||||
<div className="message empty-tip">
|
|
||||||
<h2>{gettext('You do not have any Wiki.')}</h2>
|
|
||||||
<p>{gettext('Seafile Wiki enables you to organize your knowledge in a simple way. The contents of wiki is stored in a normal library with pre-defined file/folder structure. This enables you to edit your wiki in your desktop and then sync back to the server.')}</p>
|
|
||||||
</div>
|
</div>
|
||||||
}
|
{this.state.isShowWikiAdd &&
|
||||||
|
<WikiAdd
|
||||||
|
isShowWikiAdd={this.state.isShowWikiAdd}
|
||||||
|
position={this.state.position}
|
||||||
|
onSelectToggle={this.onSelectToggle}
|
||||||
|
onCreateToggle={this.onCreateToggle}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
<div className="cur-view-content">
|
||||||
|
{(this.state.loading || this.state.wikis.length !== 0) &&
|
||||||
|
<WikisContent
|
||||||
|
data={this.state}
|
||||||
|
renameWiki={this.renameWiki}
|
||||||
|
deleteWiki={this.deleteWiki}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
{(!this.state.loading && this.state.wikis.length === 0) &&
|
||||||
|
<div className="message empty-tip">
|
||||||
|
<h2>{gettext('You do not have any Wiki.')}</h2>
|
||||||
|
<p>{gettext('Seafile Wiki enables you to organize your knowledge in a simple way. The contents of wiki is stored in a normal library with pre-defined file/folder structure. This enables you to edit your wiki in your desktop and then sync back to the server.')}</p>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
{this.state.isShowCreateDialog &&
|
||||||
|
<ModalPortal>
|
||||||
|
<NewWikiDialog
|
||||||
|
toggleCancel={this.onCreateToggle}
|
||||||
|
addWiki={this.addWiki}
|
||||||
|
/>
|
||||||
|
</ModalPortal>
|
||||||
|
}
|
||||||
|
{this.state.isShowSelectDialog &&
|
||||||
|
<ModalPortal>
|
||||||
|
<WikiSelectDialog
|
||||||
|
toggleCancel={this.onSelectToggle}
|
||||||
|
addWiki={this.addWiki}
|
||||||
|
/>
|
||||||
|
</ModalPortal>
|
||||||
|
}
|
||||||
|
</Fragment>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -28,6 +28,7 @@ export const enableRepoSnapshotLabel = window.app.pageOptions.enableRepoSnapshot
|
|||||||
export const shareLinkExpireDaysMin = window.app.pageOptions.shareLinkExpireDaysMin;
|
export const shareLinkExpireDaysMin = window.app.pageOptions.shareLinkExpireDaysMin;
|
||||||
export const shareLinkExpireDaysMax = window.app.pageOptions.shareLinkExpireDaysMax;
|
export const shareLinkExpireDaysMax = window.app.pageOptions.shareLinkExpireDaysMax;
|
||||||
export const maxFileName = window.app.pageOptions.maxFileName;
|
export const maxFileName = window.app.pageOptions.maxFileName;
|
||||||
|
export const enableWiki = window.app.pageOptions.enableWiki;
|
||||||
|
|
||||||
// wiki
|
// wiki
|
||||||
export const slug = window.wiki ? window.wiki.config.slug : '';
|
export const slug = window.wiki ? window.wiki.config.slug : '';
|
||||||
|
@@ -718,7 +718,7 @@ OTP_LOGIN_URL = '/profile/two_factor_authentication/setup/'
|
|||||||
TWO_FACTOR_DEVICE_REMEMBER_DAYS = 90
|
TWO_FACTOR_DEVICE_REMEMBER_DAYS = 90
|
||||||
|
|
||||||
# Enable personal wiki, group wiki
|
# Enable personal wiki, group wiki
|
||||||
ENABLE_WIKI = False
|
ENABLE_WIKI = True
|
||||||
|
|
||||||
# Enable 'repo snapshot label' feature
|
# Enable 'repo snapshot label' feature
|
||||||
ENABLE_REPO_SNAPSHOT_LABEL = False
|
ENABLE_REPO_SNAPSHOT_LABEL = False
|
||||||
|
@@ -61,7 +61,8 @@
|
|||||||
enableRepoSnapshotLabel: {% if enable_repo_snapshot_label %} true {% else %} false {% endif %},
|
enableRepoSnapshotLabel: {% if enable_repo_snapshot_label %} true {% else %} false {% endif %},
|
||||||
shareLinkExpireDaysMin: "{{ share_link_expire_days_min }}",
|
shareLinkExpireDaysMin: "{{ share_link_expire_days_min }}",
|
||||||
shareLinkExpireDaysMax: "{{ share_link_expire_days_max }}",
|
shareLinkExpireDaysMax: "{{ share_link_expire_days_max }}",
|
||||||
maxFileName: "{{ max_file_name }}"
|
maxFileName: "{{ max_file_name }}",
|
||||||
|
enableWiki: {% if enable_wiki %} true {% else %} false {% endif %},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
@@ -1205,6 +1205,7 @@ def react_fake_view(request):
|
|||||||
|
|
||||||
return render(request, "react_app.html", {
|
return render(request, "react_app.html", {
|
||||||
'storages': get_library_storages(request),
|
'storages': get_library_storages(request),
|
||||||
|
'enable_wiki': settings.ENABLE_WIKI,
|
||||||
'enable_repo_snapshot_label': settings.ENABLE_REPO_SNAPSHOT_LABEL,
|
'enable_repo_snapshot_label': settings.ENABLE_REPO_SNAPSHOT_LABEL,
|
||||||
'share_link_expire_days_min': SHARE_LINK_EXPIRE_DAYS_MIN,
|
'share_link_expire_days_min': SHARE_LINK_EXPIRE_DAYS_MIN,
|
||||||
'share_link_expire_days_max': SHARE_LINK_EXPIRE_DAYS_MAX,
|
'share_link_expire_days_max': SHARE_LINK_EXPIRE_DAYS_MAX,
|
||||||
|
Reference in New Issue
Block a user