From 0063bd98abed54ee5805dd4ccb9601993911e9f0 Mon Sep 17 00:00:00 2001 From: zhengxie Date: Mon, 28 Jan 2013 10:29:09 +0800 Subject: [PATCH] Fixed bug in displaying initial commit message --- templates/snippets/list_commit_detail.html | 6 ++++- thirdpart/seaserv/__init__.py | 2 +- thirdpart/seaserv/service.py | 8 +++++++ views.py | 26 ++++++++++------------ 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/templates/snippets/list_commit_detail.html b/templates/snippets/list_commit_detail.html index f91ebaedde..13ed67f3ca 100644 --- a/templates/snippets/list_commit_detail.html +++ b/templates/snippets/list_commit_detail.html @@ -28,7 +28,11 @@ function listCommitDetails(url, t) { show(data['newdir'], '{% trans "New directories" %}'); show(data['deldir'], '{% trans "Deleted directories" %}'); if (!con) { - con = '

{% trans "No conflict in the merge." %}

'; + if (data['init_commit']) { + con = '

' + data['cmt_desc'] + '

'; + } else { + con = '

{% trans "No conflict in the merge." %}

'; + } } $('#ls-ch').css('text-align','left').html(heading + time + con); $(window).resize(); diff --git a/thirdpart/seaserv/__init__.py b/thirdpart/seaserv/__init__.py index 9c4e1c4cbe..e9198cf22b 100644 --- a/thirdpart/seaserv/__init__.py +++ b/thirdpart/seaserv/__init__.py @@ -16,7 +16,7 @@ from service import get_repos, get_repo, get_commits, get_branches, remove_repo, list_personal_shared_repos, is_personal_repo, list_inner_pub_repos, \ is_org_repo_owner, get_org_repo_owner, is_org_repo, get_file_size,\ list_personal_repos_by_owner, get_repo_token_nonnull, get_repo_owner, \ - server_repo_size, get_file_id_by_path, \ + server_repo_size, get_file_id_by_path, get_commit, \ get_repo_history_limit, set_repo_history_limit from service import get_binding_peerids, is_valid_filename, check_permission,\ diff --git a/thirdpart/seaserv/service.py b/thirdpart/seaserv/service.py index cfd2f51371..9417f64117 100644 --- a/thirdpart/seaserv/service.py +++ b/thirdpart/seaserv/service.py @@ -456,6 +456,14 @@ def get_org_repo_owner(repo_id): return owner # commit +def get_commit(cmt_id): + """ Get a commit. """ + try: + ret = seafserv_threaded_rpc.get_commit(cmt_id) + except SearpcError: + ret = None + return ret + def get_commits(repo_id, offset, limit): """Get commit lists.""" try: diff --git a/views.py b/views.py index 7ae3a92eee..2a9d6a0072 100644 --- a/views.py +++ b/views.py @@ -46,7 +46,8 @@ from seaserv import ccnet_rpc, ccnet_threaded_rpc, get_repos, get_emailusers, \ get_org_repo_owner, is_passwd_set, get_file_size, check_quota, \ get_related_users_by_repo, get_related_users_by_org_repo, HtmlDiff, \ get_session_info, get_group_repoids, get_repo_owner, get_file_id_by_path, \ - get_repo_history_limit, set_repo_history_limit, MAX_UPLOAD_FILE_SIZE + get_repo_history_limit, set_repo_history_limit, MAX_UPLOAD_FILE_SIZE, \ + get_commit from pysearpc import SearpcError from signals import repo_created, repo_deleted @@ -838,6 +839,7 @@ def get_diff(repo_id, arg1, arg2): return lists +@login_required def repo_history_changes(request, repo_id): changes = {} content_type = 'application/json; charset=utf-8' @@ -851,17 +853,7 @@ def repo_history_changes(request, repo_id): return HttpResponse(json.dumps(changes), content_type=content_type) - password_set = False - if repo.props.encrypted: - try: - ret = seafserv_rpc.is_passwd_set(repo_id, request.user.username) - if ret == 1: - password_set = True - except: - return HttpResponse(json.dumps(changes), - content_type=content_type) - - if repo.props.encrypted and not password_set: + if repo.encrypted and not is_passwd_set(repo_id, request.user.username): return HttpResponse(json.dumps(changes), content_type=content_type) @@ -872,8 +864,14 @@ def repo_history_changes(request, repo_id): changes = get_diff(repo_id, '', commit_id) - return HttpResponse(json.dumps(changes), - content_type=content_type) + if get_commit(commit_id).parent_id is None: + # A commit is a first commit only if it's parent id is None. + changes['init_commit'] = True + changes['cmt_desc'] = repo.desc + else: + changes['init_commit'] = False + + return HttpResponse(json.dumps(changes), content_type=content_type) @login_required def modify_token(request, repo_id):