mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-16 23:29:49 +00:00
Update wiki
This commit is contained in:
@@ -34,9 +34,9 @@
|
||||
<form id="wiki-create-form" action="" method="post" class="hide">
|
||||
<h3>{% trans "Create Wiki"%}</h3>
|
||||
<label>{% trans "Name"%}</label><br/>
|
||||
<input id="repo-name" type="text" name="repo_name" value="" maxlength="{{max_file_name}}"/><br />
|
||||
<input id="repo-name" type="text" name="repo_name" value="{{group.group_name}}-wiki" maxlength="{{max_file_name}}"/><br />
|
||||
<label>{% trans "Description"%}</label><br/>
|
||||
<textarea id="repo-desc" name="repo_desc"></textarea><br/>
|
||||
<textarea id="repo-desc" name="repo_desc">Wiki Pages</textarea><br/>
|
||||
<p class="error hide"></p>
|
||||
<input type="submit" id="wiki-create-submit" value="{% trans "Submit"%}" class="submit" />
|
||||
</form>
|
||||
@@ -47,7 +47,7 @@
|
||||
<button id="page-delete" class="op-btn" data-url="{% url 'group_wiki_page_delete' group.id page %}">{% trans "Delete Page" %}</button>
|
||||
<button id="page-edit" class="op-btn">{% trans "Edit Page" %}</button>
|
||||
<ul class="wiki-nav fleft">
|
||||
<li class="item">{% trans "Home" %}</li>
|
||||
<li class="item"><a href="{% url 'group_wiki' group.id %}" class="link">{% trans "Home" %}</a></li>
|
||||
<li class="item"><a href="{% url 'group_wiki_pages' group.id %}" class="link">{% trans "Pages" %}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -55,6 +55,7 @@
|
||||
<div id="wiki-area" class="article">
|
||||
<h1>{{ page|capfirst }}</h1>
|
||||
<div id="wiki-content"></div><!--content will be offered by js-->
|
||||
<p id="wiki-last-modified">Last modified by {{ latest_contributor|email2nickname}}, {{last_modified|translate_seahub_time}}</p>
|
||||
</div>
|
||||
|
||||
<form id="page-create-form" action="{% url 'group_wiki_page_new' group.id %}" method="post" class="hide">
|
||||
|
@@ -24,7 +24,7 @@
|
||||
<button id="page-create" class="op-btn">{% trans "New Page" %}</button>
|
||||
<ul class="wiki-nav fleft">
|
||||
<li class="item"><a href="{% url 'group_wiki' group.id %}" class="link">{% trans "Home" %}</a></li>
|
||||
<li class="item">{% trans "Pages" %}</li>
|
||||
<li class="item"><a href="{% url 'group_wiki_pages' group.id %}" class="link">{% trans "Pages" %}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
@@ -3,6 +3,7 @@ import logging
|
||||
import os
|
||||
import stat
|
||||
import simplejson as json
|
||||
import urllib2
|
||||
from django.core.mail import send_mail
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.contrib import messages
|
||||
@@ -12,6 +13,7 @@ from django.http import HttpResponse, HttpResponseRedirect, Http404, \
|
||||
from django.shortcuts import render_to_response, redirect
|
||||
from django.template import Context, loader, RequestContext
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.hashcompat import md5_constructor
|
||||
from django.utils.http import urlquote
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.utils.translation import ungettext
|
||||
@@ -44,7 +46,8 @@ from seahub.settings import SITE_ROOT, SITE_NAME, MEDIA_URL
|
||||
from seahub.shortcuts import get_first_object_or_none
|
||||
from seahub.utils import render_error, render_permission_error, \
|
||||
validate_group_name, string2list, check_and_get_org_by_group, \
|
||||
check_and_get_org_by_repo, gen_file_get_url, get_file_type_and_ext
|
||||
check_and_get_org_by_repo, gen_file_get_url, get_file_type_and_ext, \
|
||||
get_file_contributors
|
||||
from seahub.utils.slugify import slugify
|
||||
from seahub.views import is_registered_user
|
||||
from seahub.forms import RepoCreateForm, SharedRepoCreateForm
|
||||
@@ -1095,19 +1098,18 @@ def get_file_url(repo_id, path, filename):
|
||||
access_token = seafserv_rpc.web_get_access_token(repo_id, obj_id,
|
||||
'view', '')
|
||||
url = gen_file_get_url(access_token, filename)
|
||||
return url
|
||||
return url, obj_id
|
||||
|
||||
def get_wiki_page(request, group, page_name):
|
||||
import urllib2
|
||||
repo = find_wiki_repo(request, group)
|
||||
if not repo:
|
||||
raise WikiDoesNotExist
|
||||
path = "/" + page_name + ".md"
|
||||
filename = page_name + ".md"
|
||||
url = get_file_url(repo.id, path, filename)
|
||||
url, obj_id = get_file_url(repo.id, path, filename)
|
||||
file_response = urllib2.urlopen(url)
|
||||
content = file_response.read()
|
||||
return content, repo.id
|
||||
return content, repo.id, obj_id
|
||||
|
||||
def convert_wiki_link(content, group, repo_id, username):
|
||||
import re
|
||||
@@ -1158,8 +1160,9 @@ def group_wiki(request, group, page_name="home"):
|
||||
username = request.user.username
|
||||
content = ''
|
||||
wiki_exists = True
|
||||
last_modified, latest_contributor = None, None
|
||||
try:
|
||||
content, repo_id = get_wiki_page(request, group, page_name)
|
||||
content, repo_id, obj_id = get_wiki_page(request, group, page_name)
|
||||
except WikiDoesNotExist:
|
||||
wiki_exists = False
|
||||
except WikiPageMissing:
|
||||
@@ -1171,6 +1174,13 @@ def group_wiki(request, group, page_name="home"):
|
||||
seafserv_threaded_rpc.post_empty_file(repo.id, "/", filename, username)
|
||||
else:
|
||||
content = convert_wiki_link(content, group, repo_id, username)
|
||||
|
||||
# fetch file latest contributor and last modified
|
||||
path = '/' + page_name + '.md'
|
||||
file_path_hash = md5_constructor(urllib2.quote(path.encode('utf-8'))).hexdigest()[:12]
|
||||
contributors, last_modified, last_commit_id = get_file_contributors(\
|
||||
repo_id, path.encode('utf-8'), file_path_hash, obj_id)
|
||||
latest_contributor = contributors[0] if contributors else None
|
||||
|
||||
return render_to_response("group/group_wiki.html", {
|
||||
"group_id": group.id,
|
||||
@@ -1179,6 +1189,8 @@ def group_wiki(request, group, page_name="home"):
|
||||
"content": content,
|
||||
"page": page_name,
|
||||
"wiki_exists": wiki_exists,
|
||||
"last_modified": last_modified,
|
||||
"latest_contributor": latest_contributor,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
@login_required
|
||||
|
@@ -2036,6 +2036,11 @@ textarea:-moz-placeholder {/* for FF */
|
||||
#wiki-area {
|
||||
padding: 0 0;
|
||||
}
|
||||
#wiki-last-modified {
|
||||
margin-top: 10px;
|
||||
font-size:12px;
|
||||
color: #666;
|
||||
}
|
||||
#wiki-pages {
|
||||
list-style-type:disc;
|
||||
padding-left:2em;
|
||||
|
Reference in New Issue
Block a user