1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-24 21:07:17 +00:00

Use ajax in group message autocomplete

This commit is contained in:
ZhengXie
2012-09-28 22:43:25 +08:00
parent 80a84e097a
commit 75ac577fea
4 changed files with 61 additions and 22 deletions

View File

@@ -161,13 +161,7 @@ addConfirmTo($('#quit-group'), '确定要退出?');
addConfirmTo($('.cancel-share'), '确定要取消共享该目录?');
$(function() {
var member_list = [], nickname, pinyin;
{% for member in members %}
nickname = '{{ member.user_name|email2nickname }}';
pinyin = '{{ member.user_name|email2nickname|char2pinyin }}';
member_list.push({value:nickname + pinyin, label:nickname});
{% endfor %}
addAtAutocomplete('#message', '#group-message-form', member_list, {'border':'1px solid #ddd', 'width':'600px', 'height': '80px', 'word-wrap':'break-word', 'overflow-y':'auto', 'line-height': '1.5em'}); // remember to add unit (px or em) to line-height, as js in ie will take 1.5 as 1.5, not 1.5em
addAtAutocomplete('#message', '#group-message-form', {{ group.id }}, "{% url 'group_attention' %}", {'border':'1px solid #ddd', 'width':'600px', 'height': '80px', 'word-wrap':'break-word', 'overflow-y':'auto', 'line-height': '1.5em'}); // remember to add unit (px or em) to line-height, as js in ie will take 1.5 as 1.5, not 1.5em
});
$("table tr:gt(0)").hover(

View File

@@ -2,7 +2,7 @@ from django.conf.urls.defaults import *
from views import group_info, group_member_operations, \
group_members, msg_reply, msg_reply_new, group_recommend, \
create_group_repo, group_joinrequest
create_group_repo, group_joinrequest, attention
urlpatterns = patterns('',
url(r'^(?P<group_id>[\d]+)/$', group_info, name='group_info'),
@@ -12,5 +12,6 @@ urlpatterns = patterns('',
url(r'^(?P<group_id>[\d]+)/create-repo/$', create_group_repo, name='create_group_repo'),
(r'^(?P<group_id>[\d]+)/member/(?P<user_name>[^/]+)/$', group_member_operations),
url(r'^recommend/$', group_recommend, name='group_recommend'),
url(r'^attention/$', attention, name='group_attention'),
url(r'^joinrequest/(?P<group_id>[\d]+)/$', group_joinrequest, name='group_joinrequest'),
)

View File

@@ -861,3 +861,37 @@ def group_joinrequest(request, group_id):
return HttpResponseBadRequest(json.dumps(form.errors),
content_type=content_type)
def attention(request):
"""
Handle ajax request to query group members used in autocomplete.
"""
if not request.is_ajax():
raise Http404
try:
gid = int(request.GET.get('gid', ''))
except ValueError:
raise Http404
name_str = request.GET.get('name_startsWith')
user = request.user.username
if not is_group_user(gid, user):
raise Http404
result = []
# Get all group users
members = get_group_members(gid)
for m in members:
if m.user_name == user:
continue
from base.templatetags.seahub_tags import email2nickname, char2pinyin
nickname = email2nickname(m.user_name)
pinyin = char2pinyin(nickname)
if nickname.startswith(name_str) or pinyin.startswith(name_str):
result.append({'contact_name': nickname})
content_type = 'application/json; charset=utf-8'
return HttpResponse(json.dumps(result), content_type=content_type)