mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-16 15:19:06 +00:00
Include current commit id when updating files.
Seaf-server can then use this commit id to check concurrent update to the same file.
This commit is contained in:
@@ -87,7 +87,7 @@ $('#preview-btn').click(function() {
|
||||
$('#file-edit-submit').click(function () {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: '{{ SITE_ROOT }}repo/{{repo.id}}/file/edit/?p={{path|urlencode}}',
|
||||
url: '{{ SITE_ROOT }}repo/{{repo.id}}/file/edit/?p={{path|urlencode}}&head={{head_id}}',
|
||||
dataType: 'json',
|
||||
cache: false,
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
|
@@ -13,7 +13,7 @@
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</h3>
|
||||
<form id="upload-file-form" enctype="multipart/form-data" method="post" action="{{ update_url }}">
|
||||
<form id="upload-file-form" enctype="multipart/form-data" method="post" action="{{ update_url }}?head={{ head_id }}">
|
||||
<input type="hidden" name="target_file" value="{{ target_file }}" />
|
||||
<input type="file" name="file" id="file" />
|
||||
<p>({% trans "Smaller than" %} {{ max_upload_file_size|filesizeformat }})</p>
|
||||
|
7
views.py
7
views.py
@@ -491,6 +491,7 @@ def repo_update_file(request, repo_id):
|
||||
"zipped": zipped,
|
||||
"max_upload_file_size": settings.MAX_UPLOAD_FILE_SIZE,
|
||||
"no_quota": no_quota,
|
||||
"head_id": repo.head_cmmt_id,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
def upload_error_msg (code):
|
||||
@@ -1487,6 +1488,7 @@ def update_file_after_edit(request, repo_id):
|
||||
path = request.GET.get('p')
|
||||
if content is None or not path:
|
||||
return error_json(u"参数错误")
|
||||
head_id = request.GET.get('head', None)
|
||||
|
||||
if encoding not in ["gbk", "utf-8"]:
|
||||
return error_json(u"参数错误")
|
||||
@@ -1516,7 +1518,7 @@ def update_file_after_edit(request, repo_id):
|
||||
filename = os.path.basename(path).encode('utf-8')
|
||||
try:
|
||||
seafserv_threaded_rpc.put_file (repo_id, tmpfile, parent_dir,
|
||||
filename, request.user.username)
|
||||
filename, request.user.username, head_id)
|
||||
remove_tmp_file()
|
||||
return ok_json()
|
||||
except SearpcError, e:
|
||||
@@ -1543,6 +1545,8 @@ def repo_file_edit(request, repo_id):
|
||||
if not repo:
|
||||
raise Http404
|
||||
|
||||
head_id = repo.head_cmmt_id
|
||||
|
||||
try:
|
||||
obj_id = seafserv_threaded_rpc.get_file_by_path(repo_id, path)
|
||||
except:
|
||||
@@ -1576,6 +1580,7 @@ def repo_file_edit(request, repo_id):
|
||||
'file_content':file_content,
|
||||
'encoding': encoding,
|
||||
'newline_mode': newline_mode,
|
||||
'head_id': head_id,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user