mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-21 03:18:23 +00:00
[sysadmin] Refactor share links in user info page
This commit is contained in:
@@ -63,8 +63,8 @@
|
|||||||
<div id="tabs" class="tab-tabs">
|
<div id="tabs" class="tab-tabs">
|
||||||
<div class="hd ovhd">
|
<div class="hd ovhd">
|
||||||
<ul class="tab-tabs-nav fleft">
|
<ul class="tab-tabs-nav fleft">
|
||||||
<li class="tab"><a href="#owned" class="a">{% trans "Owned Repos" %}</a></li>
|
<li class="tab"><a href="#owned" class="a">{% trans "Owned Libs" %}</a></li>
|
||||||
<li class="tab"><a href="#shared" class="a">{% trans "Shared Repos" %}</a></li>
|
<li class="tab"><a href="#shared" class="a">{% trans "Shared Libs" %}</a></li>
|
||||||
<li class="tab"><a href="#shared-links" class="a">{% trans "Shared Links" %}</a></li>
|
<li class="tab"><a href="#shared-links" class="a">{% trans "Shared Links" %}</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -132,26 +132,26 @@
|
|||||||
</tr>
|
</tr>
|
||||||
{% for link in user_shared_links %}
|
{% for link in user_shared_links %}
|
||||||
<tr>
|
<tr>
|
||||||
{% if link.s_type%}
|
{% if link.is_download %}
|
||||||
{% if link.s_type == 'f' %}
|
{% if link.is_file_share_link %}
|
||||||
<td class="alc"><img src="{{ MEDIA_URL }}img/file/{{ link.filename|file_icon_filter }}" alt="{% trans "File"%}" /></td>
|
<td class="alc"><img src="{{ MEDIA_URL }}img/file/{{ link.filename|file_icon_filter }}" alt="{% trans "File"%}" /></td>
|
||||||
<td><a href="{% url 'repo_view_file' link.repo.id %}?p={{ link.path|urlencode }}">{{ link.filename }}</a></td>
|
<td>{{ link.filename }}</td>
|
||||||
<td>{{ link.file_size|filesizeformat}}</td>
|
<td>{{ link.file_size|filesizeformat}}</td>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td class="alc"><img src="{{ MEDIA_URL }}img/folder-icon-24.png" alt="{% trans "Directory icon"%}" /></td>
|
<td class="alc"><img src="{{ MEDIA_URL }}img/folder-icon-24.png" alt="{% trans "Directory icon"%}" /></td>
|
||||||
<td><a href="{% url 'repo' link.repo.id %}?p={{ link.path|urlencode }}">{{ link.filename }}</a></td>
|
<td>{{ link.filename }}</td>
|
||||||
<td>{{ link.dir_size|filesizeformat}}</td>
|
<td>{{ link.dir_size|filesizeformat}}</td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<td>DownLoad</td>
|
<td>{% trans "Download" %}</td>
|
||||||
<td>{{ link.view_cnt }}</td>
|
<td>{{ link.view_cnt }}</td>
|
||||||
<td>
|
<td>
|
||||||
<a class="op vh" href="{% url 'remove_shared_link' %}?t={{ link.token }}">{% trans "Remove"%}</a>
|
<a class="op vh" href="{% url 'remove_shared_link' %}?t={{ link.token }}">{% trans "Remove"%}</a>
|
||||||
</td>
|
</td>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td class="alc"><img src="{{ MEDIA_URL }}img/folder-icon-24.png" alt="{% trans "Directory icon"%}" /></td>
|
<td class="alc"><img src="{{ MEDIA_URL }}img/folder-icon-24.png" alt="{% trans "Directory icon"%}" /></td>
|
||||||
<td><a href="{% url 'repo' link.repo.id %}?p={{ link.path|urlencode }}">{{ link.dir_name }}</a></td>
|
<td>{{ link.dir_name }}</td>
|
||||||
<td>//</td>
|
<td>--</td>
|
||||||
<td>Upload</td>
|
<td>{% trans "Upload" %}</td>
|
||||||
<td>{{ link.view_cnt }}</td>
|
<td>{{ link.view_cnt }}</td>
|
||||||
<td>
|
<td>
|
||||||
<a class="op vh" href="{% url 'remove_shared_upload_link' %}?t={{ link.token }}">{% trans "Remove"%}</a>
|
<a class="op vh" href="{% url 'remove_shared_upload_link' %}?t={{ link.token }}">{% trans "Remove"%}</a>
|
||||||
@@ -161,10 +161,7 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="empty-tips">
|
<p>{% trans "None" %}</p>
|
||||||
<h2 class="alc">{% trans "You don't have any shared link"%}</h2>
|
|
||||||
<p>{% trans "You can generate an share link from any dir/file. People receive this link can download/upload zipped dir or files." %}</p>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -34,8 +34,7 @@ import seahub.settings as settings
|
|||||||
from seahub.settings import INIT_PASSWD, SITE_NAME, \
|
from seahub.settings import INIT_PASSWD, SITE_NAME, \
|
||||||
SEND_EMAIL_ON_ADDING_SYSTEM_MEMBER, SEND_EMAIL_ON_RESETTING_USER_PASSWD, \
|
SEND_EMAIL_ON_ADDING_SYSTEM_MEMBER, SEND_EMAIL_ON_RESETTING_USER_PASSWD, \
|
||||||
ENABLE_GUEST
|
ENABLE_GUEST
|
||||||
from seahub.utils import send_html_email, get_user_traffic_list, get_server_id, \
|
from seahub.utils import send_html_email, get_user_traffic_list, get_server_id
|
||||||
gen_file_share_link, gen_dir_share_link, gen_shared_upload_link
|
|
||||||
from seahub.utils.sysinfo import get_platform_name
|
from seahub.utils.sysinfo import get_platform_name
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -364,48 +363,44 @@ def user_info(request, email):
|
|||||||
|
|
||||||
user_shared_links = []
|
user_shared_links = []
|
||||||
# download links
|
# download links
|
||||||
fileshares = FileShare.objects.filter(username=email)
|
fileshares = list(FileShare.objects.filter(username=email))
|
||||||
|
|
||||||
for fs in fileshares:
|
for fs in fileshares:
|
||||||
r = seafile_api.get_repo(fs.repo_id)
|
r = seafile_api.get_repo(fs.repo_id)
|
||||||
if not r:
|
if not r:
|
||||||
fs.delete()
|
fs.delete()
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if fs.s_type == 'f':
|
if fs.is_file_share_link():
|
||||||
if seafile_api.get_file_id_by_path(r.id, fs.path) is None:
|
if seafile_api.get_file_id_by_path(r.id, fs.path) is None:
|
||||||
fs.delete()
|
fs.delete()
|
||||||
continue
|
continue
|
||||||
fs.filename = os.path.basename(fs.path)
|
fs.filename = os.path.basename(fs.path)
|
||||||
fs.shared_link = gen_file_share_link(fs.token)
|
|
||||||
|
|
||||||
path = fs.path.rstrip('/') # Normalize file path
|
path = fs.path.rstrip('/') # Normalize file path
|
||||||
obj_id = seafile_api.get_file_id_by_path(r.id, path)
|
obj_id = seafile_api.get_file_id_by_path(r.id, path)
|
||||||
file_size = seafile_api.get_file_size(r.store_id, r.version, obj_id)
|
fs.file_size = seafile_api.get_file_size(r.store_id, r.version,
|
||||||
fs.file_size = file_size
|
obj_id)
|
||||||
else:
|
else:
|
||||||
if seafile_api.get_dir_id_by_path(r.id, fs.path) is None:
|
if seafile_api.get_dir_id_by_path(r.id, fs.path) is None:
|
||||||
fs.delete()
|
fs.delete()
|
||||||
continue
|
continue
|
||||||
fs.filename = os.path.basename(fs.path.rstrip('/'))
|
fs.filename = os.path.basename(fs.path.rstrip('/'))
|
||||||
fs.shared_link = gen_dir_share_link(fs.token)
|
|
||||||
|
|
||||||
path = fs.path
|
path = fs.path
|
||||||
if path[-1] != '/': # Normalize dir path
|
if path[-1] != '/': # Normalize dir path
|
||||||
path += '/'
|
path += '/'
|
||||||
#get dir size
|
# get dir size
|
||||||
dir_id = seafserv_threaded_rpc.get_dirid_by_path (r.id,
|
dir_id = seafserv_threaded_rpc.get_dirid_by_path(r.id,
|
||||||
r.head_cmmt_id,
|
r.head_cmmt_id,
|
||||||
path.encode('utf-8'))
|
path)
|
||||||
dir_size = seafserv_threaded_rpc.get_dir_size(r.store_id, r.version,
|
fs.dir_size = seafserv_threaded_rpc.get_dir_size(r.store_id,
|
||||||
dir_id)
|
r.version,
|
||||||
fs.dir_size = dir_size
|
dir_id)
|
||||||
|
|
||||||
fs.repo = r
|
fs.is_download = True
|
||||||
user_shared_links.append(fs)
|
fileshares.sort(key=lambda x: x.view_cnt, reverse=True)
|
||||||
|
user_shared_links += fileshares
|
||||||
|
|
||||||
# upload links
|
# upload links
|
||||||
uploadlinks = UploadLinkShare.objects.filter(username=email)
|
uploadlinks = list(UploadLinkShare.objects.filter(username=email))
|
||||||
for link in uploadlinks:
|
for link in uploadlinks:
|
||||||
r = seafile_api.get_repo(link.repo_id)
|
r = seafile_api.get_repo(link.repo_id)
|
||||||
if not r:
|
if not r:
|
||||||
@@ -415,9 +410,9 @@ def user_info(request, email):
|
|||||||
link.delete()
|
link.delete()
|
||||||
continue
|
continue
|
||||||
link.dir_name = os.path.basename(link.path.rstrip('/'))
|
link.dir_name = os.path.basename(link.path.rstrip('/'))
|
||||||
link.shared_link = gen_shared_upload_link(link.token)
|
link.is_upload = True
|
||||||
link.repo = r
|
uploadlinks.sort(key=lambda x: x.view_cnt, reverse=True)
|
||||||
user_shared_links.append(link)
|
user_shared_links += uploadlinks
|
||||||
|
|
||||||
return render_to_response(
|
return render_to_response(
|
||||||
'sysadmin/userinfo.html', {
|
'sysadmin/userinfo.html', {
|
||||||
|
Reference in New Issue
Block a user