diff --git a/frontend/src/utils/constants.js b/frontend/src/utils/constants.js index 5b542eae52..8c8d693725 100644 --- a/frontend/src/utils/constants.js +++ b/frontend/src/utils/constants.js @@ -64,6 +64,7 @@ export const serviceUrl = window.wiki ? window.wiki.config.serviceUrl : ''; export const isPublicWiki = window.wiki ? window.wiki.config.isPublicWiki === 'True': ''; export const sharedToken = window.wiki ? window.wiki.config.sharedToken : ''; export const sharedType = window.wiki ? window.wiki.config.sharedType : ''; +export const hasIndex = window.wiki ? window.wiki.config.hasIndex : ''; // file history export const PER_PAGE = 25; diff --git a/frontend/src/wiki.js b/frontend/src/wiki.js index 107fff9a2b..7365811606 100644 --- a/frontend/src/wiki.js +++ b/frontend/src/wiki.js @@ -3,7 +3,7 @@ import ReactDOM from 'react-dom'; import moment from 'moment'; import MediaQuery from 'react-responsive'; import { Modal } from 'reactstrap'; -import { slug, repoID, siteRoot, initialPath, isDir, sharedToken } from './utils/constants'; +import { slug, repoID, siteRoot, initialPath, isDir, sharedToken, hasIndex } from './utils/constants'; import { Utils } from './utils/utils'; import { seafileAPI } from './utils/seafile-api'; import Dirent from './models/dirent'; diff --git a/seahub/templates/wiki/wiki.html b/seahub/templates/wiki/wiki.html index d1b7bc79b6..0298e77d56 100644 --- a/seahub/templates/wiki/wiki.html +++ b/seahub/templates/wiki/wiki.html @@ -16,6 +16,7 @@ permission: "{{ user_can_write }}", isPublicWiki: "{{ is_public_wiki }}", isDir: "{{ is_dir }}", + hasIndex: {% if has_index %} true {% else %} false {% endif %}, } }; diff --git a/seahub/wiki/views.py b/seahub/wiki/views.py index 7bd6cb8727..710a3901d1 100644 --- a/seahub/wiki/views.py +++ b/seahub/wiki/views.py @@ -89,6 +89,13 @@ def slug(request, slug, file_path="home.md"): if wiki.permission == 'public': is_public_wiki = True + has_index = False + dirs = seafile_api.list_dir_by_path(wiki.repo_id, '/') + for dir_obj in dirs: + if dir_obj.obj_name == 'index.md': + has_index = True + break + try: fs = FileShare.objects.get(repo_id=wiki.repo_id, path='/') except FileShare.DoesNotExist: @@ -110,6 +117,7 @@ def slug(request, slug, file_path="home.md"): "search_wiki": True, "is_public_wiki": is_public_wiki, "is_dir": is_dir, + "has_index": has_index, })