diff --git a/base/templatetags/seahub_tags.py b/base/templatetags/seahub_tags.py index 9b44f01839..f19bbd3811 100644 --- a/base/templatetags/seahub_tags.py +++ b/base/templatetags/seahub_tags.py @@ -51,7 +51,7 @@ def translate_commit_desc(value): return u'合并了其他人的修改' else: operations = '|'.join(TRANSLATION_MAP.keys()) - patt = r'(%s) "(.*)"\s?(and ([0-9]+) more files)?' % operations + patt = r'(%s) "(.*)"\s?(and ([0-9]+) more (files|directories))?' % operations ret_list = [] for e in value.split('\n'): @@ -66,13 +66,18 @@ def translate_commit_desc(value): op = m.group(1) op_trans = TRANSLATION_MAP.get(op) file_name = m.group(2) - more_files = m.group(3) + more = m.group(3) n_files = m.group(4) + more_type = m.group(5) - if not more_files: + if not more: ret = op_trans + u' "' + file_name + u'".' else: - ret = op_trans + u' "' + file_name + u'"以及另外' + n_files + u'个文件.' + if more_type == 'files': + typ = u'文件' + else: + typ = u'目录' + ret = op_trans + u' "' + file_name + u'"以及另外' + n_files + u'个' + typ + '.' ret_list.append(ret) return '\n'.join(ret_list) diff --git a/media/css/seahub.css b/media/css/seahub.css index 24673d710e..5f35954c27 100644 --- a/media/css/seahub.css +++ b/media/css/seahub.css @@ -1242,3 +1242,7 @@ ul.with-bg li { top:-15px; left:-14px; } + +#ls-ch a { + color: green; +} diff --git a/po.py b/po.py index db1d6c3934..f334858097 100644 --- a/po.py +++ b/po.py @@ -4,6 +4,7 @@ TRANSLATION_MAP = { 'Added' : u'添加了', 'Deleted' : u'删除了', + 'Removed' : u'删除了', 'Modified' : u'修改了', 'Renamed' : u'重命名或移动了', 'Moved' : u'移动了', diff --git a/views.py b/views.py index 9e8eb95ee1..88b6caf811 100644 --- a/views.py +++ b/views.py @@ -635,7 +635,14 @@ def repo_history_revert(request, repo_id): return render_error(request, u'未知错误') return HttpResponseRedirect(reverse(repo_history, args=[repo_id])) - + +def fpath_to_link(repo_id, path): + """Translate file path of a repo to its view link""" + fpath = 'repo/%s/files/?p=/%s' % (repo_id, urllib2.quote(path.encode('utf-8'))) + href = os.path.join(settings.SITE_ROOT, fpath) + + return '%s' % (href, path) + def get_diff(repo_id, arg1, arg2): lists = {'new' : [], 'removed' : [], 'renamed' : [], 'modified' : [], \ 'newdir' : [], 'deldir' : []} @@ -646,15 +653,15 @@ def get_diff(repo_id, arg1, arg2): for d in diff_result: if d.status == "add": - lists['new'].append(d.name) + lists['new'].append(fpath_to_link(repo_id, d.name)) elif d.status == "del": lists['removed'].append(d.name) elif d.status == "mov": - lists['renamed'].append(d.name + " ==> " + d.new_name) + lists['renamed'].append(d.name + " ==> " + fpath_to_link(repo_id, d.new_name)) elif d.status == "mod": - lists['modified'].append(d.name) + lists['modified'].append(fpath_to_link(repo_id, d.name)) elif d.status == "newdir": - lists['newdir'].append(d.name) + lists['newdir'].append(fpath_to_link(repo_id, d.name)) elif d.status == "deldir": lists['deldir'].append(d.name)