1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-17 15:53:28 +00:00

Fix multi-upload in dir share link

This commit is contained in:
zhengxie
2014-08-29 10:54:33 +08:00
parent 4a44e2bba6
commit ad39c6948f
4 changed files with 44 additions and 1 deletions

View File

@@ -23,7 +23,7 @@
{% if no_quota %}
<p class="error">{% trans "The owner of this library has run out of space." %}</p>
{% else %}
<form id="upload-file-form" enctype="multipart/form-data" method="post" action="{{ajax_upload_url}}">{% csrf_token %}
<form id="upload-file-form" enctype="multipart/form-data" method="post" action="">{% csrf_token %}
<input type="hidden" name="parent_dir" value="{{ path }}" />
<div class="row fileupload-buttonbar">
<div>
@@ -90,6 +90,17 @@ form.fileupload({
//singleFileUploads: false // using 1 request to upload all files of a selection
sequentialUploads: true
})
.bind('fileuploadadd', function(e, data) {
// get url(token) for every file
$.ajax({
url: '{% url 'get_file_upload_url_ul' uploadlink.token %}?&r={{uploadlink.repo_id }}',
cache: false,
dataType: 'json',
success: function(ret) {
data.url = ret['url'];
}
});
})
.bind('fileuploaddone', function(e, data) {
if (data.textStatus == 'success') {
var filename = "";

View File

@@ -138,6 +138,7 @@ urlpatterns = patterns('',
url(r'^ajax/repo/(?P<repo_id>[-0-9a-f]{36})/history/changes/$', repo_history_changes, name='repo_history_changes'),
url(r'^ajax/repo/(?P<repo_id>[-0-9a-f]{36})/encrypted_file/(?P<file_id>[0-9a-f]{40})/download/$', download_enc_file, name='download_enc_file'),
url(r'^ajax/repo/(?P<repo_id>[-0-9a-f]{36})/file_op_url/$', get_file_op_url, name='get_file_op_url'),
url(r'^ajax/u/d/(?P<token>[-0-9a-f]{10})/upload/$', get_file_upload_url_ul, name='get_file_upload_url_ul'),
url(r'^ajax/group/(?P<group_id>\d+)/repos/$', get_unenc_group_repos, name='get_group_repos'),
url(r'^ajax/my-unenc-repos/$', get_my_unenc_repos, name='get_my_unenc_repos'),
url(r'^ajax/unenc-rw-repos/$', unenc_rw_repos, name='unenc_rw_repos'),

View File

@@ -1475,6 +1475,7 @@ def view_shared_upload_link(request, token):
return render_to_response('view_shared_upload_link.html', {
'repo': repo,
'token': token,
'uploadlink': uploadlink,
'path': path,
'username': username,
'dir_name': dir_name,

View File

@@ -26,6 +26,7 @@ from seahub.options.models import UserOptions, CryptoOptionNotSetError
from seahub.notifications.models import UserNotification
from seahub.notifications.views import add_notice_from_info
from seahub.message.models import UserMessage
from seahub.share.models import UploadLinkShare
from seahub.signals import upload_file_successful, repo_created, repo_deleted
from seahub.views import get_repo_dirents, validate_owner, \
check_repo_access_permission, get_unencry_rw_repos_by_user, \
@@ -1554,6 +1555,35 @@ def get_file_op_url(request, repo_id):
return HttpResponse(json.dumps({"url": url}), content_type=content_type)
def get_file_upload_url_ul(request, token):
"""Get file upload url in dir upload link.
Arguments:
- `request`:
- `token`:
"""
if not request.is_ajax():
raise Http404
content_type = 'application/json; charset=utf-8'
uls = UploadLinkShare.objects.get_valid_upload_link_by_token(token)
if uls is None:
return HttpResponse(json.dumps({"error": _("Bad upload link token.")}),
status=400, content_type=content_type)
repo_id = uls.repo_id
r = request.GET.get('r', '')
if repo_id != r: # perm check
return HttpResponse(json.dumps({"error": _("Bad repo id in upload link.")}),
status=403, content_type=content_type)
acc_token = seafile_api.get_fileserver_access_token(repo_id, 'dummy',
'upload',
request.user.username)
url = gen_file_upload_url(acc_token, 'upload-aj')
return HttpResponse(json.dumps({"url": url}), content_type=content_type)
@login_required_ajax
def repo_history_changes(request, repo_id):
changes = {}