1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-16 23:29:49 +00:00

Update wiki

This commit is contained in:
zhengxie
2013-03-15 20:47:26 +08:00
parent d1039e16d5
commit 4f47828d64
4 changed files with 28 additions and 10 deletions

View File

@@ -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">

View File

@@ -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>

View File

@@ -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

View File

@@ -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;