1
0
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:
zhengxie
2012-11-26 10:24:01 +08:00
3 changed files with 39 additions and 2 deletions

View File

@@ -108,17 +108,20 @@
<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 %}
{% endif %}
</td>
</tr>
{% endfor %}

View File

@@ -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'),

View File

@@ -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)