mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-01 23:20:51 +00:00
Merge branch 'download'
This commit is contained in:
@@ -108,14 +108,17 @@
|
||||
|
||||
<td></td>
|
||||
<td>
|
||||
{% if user_perm == 'rw' %}
|
||||
{% if user_perm %}
|
||||
<div class="repo-file-op vh">
|
||||
<img src="{{ MEDIA_URL }}img/dropdown-arrow.png" title="{% trans 'More operations'%}" alt="{% trans 'More operations'%}" class="more-op-icon" data="no-popup" />
|
||||
<ul class="hidden-op hide">
|
||||
<li><a class="op" href="{{ SITE_ROOT }}repo/download_dir/{{ repo.id }}/?parent={{ path|urlencode }}&dirname={{ dirent.obj_name|urlencode }}">{% trans 'Download' %}</a></li>
|
||||
{% if user_perm == 'rw' %}
|
||||
<li><a class="op" href="{{ SITE_ROOT }}repo/{{ repo.props.id }}/{{ dirent.props.obj_id }}/?p={{ path|urlencode }}&file_name={{ dirent.props.obj_name|urlencode }}&op=del">{% trans "Delete"%}</a></li>
|
||||
<li><a class="op dir-rename" href="#" data="{{ dirent.obj_name }}">{% trans "Rename"%}</a></li>
|
||||
<li><a class="op dir-mv" href="#" data="{{ dirent.obj_name }}">{% trans "Move"%}</a></li>
|
||||
<li><a class="op dir-cp" href="#" data="{{ dirent.obj_name }}">{% trans "Copy"%}</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
1
urls.py
1
urls.py
@@ -40,6 +40,7 @@ urlpatterns = patterns('',
|
||||
url(r'^repo/revert_file/(?P<repo_id>[^/]+)/$', repo_revert_file, name='repo_revert_file'),
|
||||
url(r'^repo/revert_dir/(?P<repo_id>[^/]+)/$', repo_revert_dir, name='repo_revert_dir'),
|
||||
url(r'^repo/star_file/(?P<repo_id>[^/]+)/$', repo_star_file, name='repo_star_file'),
|
||||
url(r'^repo/download_dir/(?P<repo_id>[^/]+)/$', repo_download_dir, name='repo_download_dir'),
|
||||
(r'^repo/upload_error/(?P<repo_id>[^/]+)/$', upload_file_error),
|
||||
(r'^repo/update_error/(?P<repo_id>[^/]+)/$', update_file_error),
|
||||
url(r'^repo/file_revisions/(?P<repo_id>[^/]+)/$', file_revisions, name='file_revisions'),
|
||||
|
33
views.py
33
views.py
@@ -2628,3 +2628,36 @@ def repo_star_file(request, repo_id):
|
||||
else:
|
||||
unstar_file(request.user.username, repo_id, path)
|
||||
return HttpResponse(json.dumps({'success':True}), content_type=content_type)
|
||||
|
||||
@login_required
|
||||
def repo_download_dir(request, repo_id):
|
||||
repo = get_repo(repo_id)
|
||||
if not repo:
|
||||
return render_error(request, _(u'Library not exists'))
|
||||
|
||||
try:
|
||||
parent_dir = request.GET['parent']
|
||||
dirname = request.GET['dirname']
|
||||
except KeyError:
|
||||
return render_error(request, _(u'Invalid arguments'))
|
||||
|
||||
path = os.path.join(parent_dir, dirname.rstrip('/'))
|
||||
|
||||
permission = get_user_permission(request, repo_id)
|
||||
if permission:
|
||||
dir_id = seafserv_threaded_rpc.get_dirid_by_path (repo.head_cmmt_id,
|
||||
path.encode('utf-8'))
|
||||
token = seafserv_rpc.web_get_access_token(repo_id,
|
||||
dir_id,
|
||||
'download-dir',
|
||||
request.user.username)
|
||||
else:
|
||||
return render_permission_error(request, _(u'Unable to access file'))
|
||||
|
||||
if len(path) > 1:
|
||||
filename = os.path.basename(path)
|
||||
else:
|
||||
filename = repo.name
|
||||
url = gen_file_get_url(token, filename)
|
||||
|
||||
return redirect(url)
|
||||
|
Reference in New Issue
Block a user