From e41645345fd282f872f6c9c1b341a65a26696bcf Mon Sep 17 00:00:00 2001 From: llj Date: Mon, 21 Sep 2015 16:42:45 +0800 Subject: [PATCH 1/5] [file history] modified UI. --- media/css/seahub.css | 2 +- seahub/templates/file_revisions.html | 12 ++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/media/css/seahub.css b/media/css/seahub.css index de992f6a72..ecc8618620 100644 --- a/media/css/seahub.css +++ b/media/css/seahub.css @@ -2165,7 +2165,7 @@ textarea:-moz-placeholder {/* for FF */ margin-top:3px; } .commit-list { - margin:0 0 20px; + margin-bottom:20px; } .commit-list .time { padding-left:10px; diff --git a/seahub/templates/file_revisions.html b/seahub/templates/file_revisions.html index 826ab75415..fc79942087 100644 --- a/seahub/templates/file_revisions.html +++ b/seahub/templates/file_revisions.html @@ -5,10 +5,8 @@ {% block sub_title %}{% trans "History" %} - {% endblock %} {% block main_panel %} -

{{ u_filename }}{% trans "'s Version History" %}

-

{% trans "Tip:a new version will be generated after each modification, and you can restore the file to a previous version." %}

-
-
+

{% blocktrans %}{{ u_filename }} Version History{% endblocktrans %}

+

{% trans "Tip: a new version will be generated after each modification, and you can restore the file to a previous version." %}

{% trans 'Current Path:' %} @@ -41,8 +39,8 @@

- - + + @@ -84,6 +82,4 @@ {% endfor %}
{% trans 'Time' %}{% trans 'Modifier' %}{% trans 'Time' %}{% trans 'Modifier' %} {% trans 'Size' %} {% trans 'Operations' %}
-
-
{% endblock %} From 9497b0d61a1a796324f0cec44ac1fd4963dd4003 Mon Sep 17 00:00:00 2001 From: llj Date: Tue, 22 Sep 2015 13:55:19 +0800 Subject: [PATCH 2/5] [library history] redesigned UI of 'modification history' & 'snapshot' pages --- media/css/seahub.css | 3 ++ seahub/templates/repo_history.html | 35 +++++++------ seahub/templates/repo_history_view.html | 70 ++++++++++++++----------- seahub/urls.py | 2 +- seahub/views/repo.py | 4 ++ 5 files changed, 67 insertions(+), 47 deletions(-) diff --git a/media/css/seahub.css b/media/css/seahub.css index ecc8618620..4d88c2a540 100644 --- a/media/css/seahub.css +++ b/media/css/seahub.css @@ -2173,6 +2173,9 @@ textarea:-moz-placeholder {/* for FF */ .commit-list .avatar { border-radius:2px; } +.repo-snapshot-hd { + margin-bottom:10px; +} /*repo-share-form*/ #email_or_group, #share-link, diff --git a/seahub/templates/repo_history.html b/seahub/templates/repo_history.html index 153715896d..12574c609d 100644 --- a/seahub/templates/repo_history.html +++ b/seahub/templates/repo_history.html @@ -5,25 +5,30 @@ {% block sub_title %}{% trans "History" %} - {% endblock %} {% block main_panel %} -

{{repo.props.name}} {% trans "modification history" %}

+

{% blocktrans with repo_name=repo.props.name %}{{repo_name}} Modification History{% endblocktrans %}

{% if user_perm == 'rw' %} -

{% trans "Tip: A snapshot will be generated after modification, which records the library state before this modification."%}{% trans "View Snapshot"%}

+

{% trans "Tip: a snapshot will be generated after modification, which records the library state after this modification."%}

{% endif %} -
-
- - - + + + + {% for commit in commits %} {% if commit.show %} - + + @@ -73,15 +81,10 @@ 100 {% endif %} - - {% endblock %} {% block extra_script %} {% endblock %} diff --git a/seahub/templates/repo_history_view.html b/seahub/templates/repo_history_view.html index ede0bdadc0..8f7819cafd 100644 --- a/seahub/templates/repo_history_view.html +++ b/seahub/templates/repo_history_view.html @@ -3,38 +3,27 @@ {% load seahub_tags avatar_tags i18n %} {% load url from future %} +{% block extra_style %} + +{% endblock %} + {% block main_panel %} -
-

{{repo.props.name}} {% trans "snapshot"%}({{ current_commit.props.ctime|tsstr_sec }})

- -
+

{% blocktrans with repo_name=repo.props.name %}{{repo_name}} Snapshot{% endblocktrans %}({{ current_commit.props.ctime|tsstr_sec }})

- {% if path == '/' %} -
-

{{ current_commit.props.desc|translate_commit_desc }}

-

- - {% if current_commit.props.creator_name %} - {% avatar current_commit.props.creator_name 20 %} - {{ current_commit.props.creator_name|short_email }} - {% else %} - {% trans "Unknown"%} - {% endif %} - - {{ current_commit.props.ctime|translate_seahub_time }} -

-
- {% endif %} + + + -
-
{% if not user_perm %}

{% trans "Can't view this library"%}

{% else %} -
-

+

+

{% trans "Current path: "%} {% for name, link in zipped %} {% if not forloop.last %} @@ -44,14 +33,36 @@ {% endif %} {% endfor %}

+ + {% if path == '/' %} + + {% if is_repo_owner %} + + {% endif %} + +
+ {{ current_commit.props.desc|translate_commit_desc }} + + + {% if current_commit.props.creator_name %} + {% avatar current_commit.props.creator_name 20 %} + {{ current_commit.props.creator_name|short_email }} + {% else %} + {% trans "Unknown"%} + {% endif %} + + {{ current_commit.props.ctime|translate_seahub_time }} + +
+ {% endif %}
{% trans "Time" %}{% trans "Modifier"%}{% trans "Description"%}{% trans "Description"%}{% trans "Time" %}{% trans "Modifier"%}{% trans "Operations" %}
{{ commit.ctime|translate_seahub_time }} + {{ commit.props.desc|translate_commit_desc }} + {% if page_next or not forloop.last %} + {% trans "Details"%} + {% endif %} + {{ commit.ctime|translate_seahub_time }} {% if commit.creator_name %} {% if not commit.second_parent_id %} @@ -37,9 +42,12 @@ {% endif %} - {{ commit.props.desc|translate_commit_desc }} - {% if page_next or not forloop.last %} - {% trans "Details"%} + {% if user_perm == 'rw' %} + {% if forloop.first and current_page == 1 %} + {% trans "Current Version" %} + {% else %} + {% trans "View Snapshot" %} + {% endif %} {% endif %}
- - + + {% for dirent in dir_list %} @@ -77,14 +88,13 @@
{% trans "Name"%}{% trans "Size"%}{% trans "Operations"%}{% trans "Size"%}{% trans "Operations"%}
{% endif %} -
-
{% endblock %} {% block extra_script %} {% endblock %} diff --git a/seahub/urls.py b/seahub/urls.py index bd945463f3..a5e92ec9ac 100644 --- a/seahub/urls.py +++ b/seahub/urls.py @@ -70,7 +70,7 @@ urlpatterns = patterns( url(r'^repo/text_diff/(?P[-0-9a-f]{36})/$', text_diff, name='text_diff'), url(r'^repo/(?P[-0-9a-f]{36})/$', repo, name='repo'), url(r'^repo/history/(?P[-0-9a-f]{36})/$', repo_history, name='repo_history'), - (r'^repo/history/revert/(?P[-0-9a-f]{36})/$', repo_history_revert), + url(r'^repo/history/revert/(?P[-0-9a-f]{36})/$', repo_history_revert, name='repo_history_revert'), url(r'^repo/history/view/(?P[-0-9a-f]{36})/$', repo_history_view, name='repo_history_view'), url(r'^repo/recycle/(?P[-0-9a-f]{36})/$', repo_recycle_view, name='repo_recycle_view'), url(r'^repo/(?P[-0-9a-f]{36})/online_gc/$', repo_online_gc, name='repo_online_gc'), diff --git a/seahub/views/repo.py b/seahub/views/repo.py index d9d564abab..08a3497080 100644 --- a/seahub/views/repo.py +++ b/seahub/views/repo.py @@ -352,8 +352,12 @@ def repo_history_view(request, repo_id): current_commit, path) zipped = get_nav_path(path, repo.name) + repo_owner = seafile_api.get_repo_owner(repo.id) + is_repo_owner = True if username == repo_owner else False + return render_to_response('repo_history_view.html', { 'repo': repo, + "is_repo_owner": is_repo_owner, 'user_perm': user_perm, 'current_commit': current_commit, 'dir_list': dir_list, From e2f704277e768660f6e466c388f8792e8a38985f Mon Sep 17 00:00:00 2001 From: llj Date: Tue, 22 Sep 2015 17:24:01 +0800 Subject: [PATCH 3/5] [repo trash] modified UI, path, gc --- media/css/seahub.css | 4 +++ seahub/templates/repo_recycle_view.html | 45 ++++++++++++------------- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/media/css/seahub.css b/media/css/seahub.css index 4d88c2a540..e55257c024 100644 --- a/media/css/seahub.css +++ b/media/css/seahub.css @@ -2173,9 +2173,13 @@ textarea:-moz-placeholder {/* for FF */ .commit-list .avatar { border-radius:2px; } +.repo-trash-hd, .repo-snapshot-hd { margin-bottom:10px; } +#online-gc { + margin-left:5px; +} /*repo-share-form*/ #email_or_group, #share-link, diff --git a/seahub/templates/repo_recycle_view.html b/seahub/templates/repo_recycle_view.html index 6724b88236..a15ba3084d 100644 --- a/seahub/templates/repo_recycle_view.html +++ b/seahub/templates/repo_recycle_view.html @@ -4,32 +4,29 @@ {% load url from future %} {% block main_panel %} -
-

{% blocktrans with repo_name=repo.props.name %}{{repo_name}} Trash{% endblocktrans %}

- {% if enable_clean %} - - {% endif %} -
+

{% blocktrans with repo_name=repo.props.name %}{{repo_name}} Trash{% endblocktrans %}

-
-

{% trans "Current path: " %} - {% blocktrans with repo_name=repo.props.name %}{{repo_name}} Trash{% endblocktrans %} {% if not show_recycle_root %} + {{repo.name}} {% for name, link in zipped %} - {% if not forloop.last %} - / {{ name }} - {% else %} - / {{ name }} - {% endif %} + {% if not forloop.last %} + / {{ name }} + {% else %} + / {{ name }} + {% endif %} {% endfor %} + + {% else %} + {{repo.name}} {% endif %}

{% if show_recycle_root %} - +
+ {% if days != 7 %} {% trans "a week" %} / {% else %} @@ -46,16 +43,20 @@ {% trans "all" %} {% endif %} + {% if enable_clean %} + + {% endif %} +
{% endif %}
- - - - + + + + {% for dirent in dir_list %} @@ -92,10 +93,8 @@ {% endfor %}
{% trans "Name" %}{% trans "Delete Time" %}{% trans "Size" %}{% trans "Operations" %}{% trans "Name" %}{% trans "Delete Time" %}{% trans "Size" %}{% trans "Operations" %}
-
-
- {% if enable_clean %} + {% if enable_clean and show_recycle_root %}
{% csrf_token %}

{% trans "Clean" %}

{% trans "Clear files in trash and history:" %}

@@ -115,7 +114,7 @@ -{% endblock %} diff --git a/seahub/urls.py b/seahub/urls.py index a5e92ec9ac..422c03e677 100644 --- a/seahub/urls.py +++ b/seahub/urls.py @@ -74,7 +74,6 @@ urlpatterns = patterns( url(r'^repo/history/view/(?P[-0-9a-f]{36})/$', repo_history_view, name='repo_history_view'), url(r'^repo/recycle/(?P[-0-9a-f]{36})/$', repo_recycle_view, name='repo_recycle_view'), url(r'^repo/(?P[-0-9a-f]{36})/online_gc/$', repo_online_gc, name='repo_online_gc'), - url(r'^repo/snapshot/view/(?P[-0-9a-f]{36})/$', repo_view_snapshot, name='repo_view_snapshot'), url(r'^repo/(?P[-0-9a-f]{36})/files/$', view_repo_file, name="repo_view_file"), url(r'^repo/(?P[-0-9a-f]{36})/raw/(?P.*)$', view_raw_file, name="view_raw_file"), url(r'^repo/(?P[-0-9a-f]{36})/history/files/$', view_history_file, name="view_history_file"), diff --git a/seahub/views/__init__.py b/seahub/views/__init__.py index 28ac88348e..4ad5f7f0f2 100644 --- a/seahub/views/__init__.py +++ b/seahub/views/__init__.py @@ -971,69 +971,6 @@ def repo_history(request, repo_id): 'user_perm': user_perm, }, context_instance=RequestContext(request)) -@login_required -def repo_view_snapshot(request, repo_id): - """List repo snapshots. - """ - repo = get_repo(repo_id) - if not repo: - raise Http404 - - # perm check - if check_repo_access_permission(repo.id, request.user) is None: - raise Http404 - - username = request.user.username - repo_owner = seafile_api.get_repo_owner(repo.id) - is_repo_owner = True if username == repo_owner else False - - try: - server_crypto = UserOptions.objects.is_server_crypto(username) - except CryptoOptionNotSetError: - # Assume server_crypto is ``False`` if this option is not set. - server_crypto = False - - password_set = False - if repo.props.encrypted and \ - (repo.enc_version == 1 or (repo.enc_version == 2 and server_crypto)): - try: - ret = seafserv_rpc.is_passwd_set(repo_id, username) - if ret == 1: - password_set = True - except SearpcError, e: - return render_error(request, e.msg) - - if not password_set: - return HttpResponseRedirect(reverse('repo', args=[repo_id])) - - try: - current_page = int(request.GET.get('page', '1')) - per_page = int(request.GET.get('per_page', '25')) - except ValueError: - current_page = 1 - per_page = 25 - - # don't show the current commit - commits_all = get_commits(repo_id, per_page * (current_page -1) + 1, - per_page + 1) - commits = commits_all[:per_page] - - if len(commits_all) == per_page + 1: - page_next = True - else: - page_next = False - - return render_to_response('repo_view_snapshot.html', { - "repo": repo, - "is_repo_owner": is_repo_owner, - "commits": commits, - 'current_page': current_page, - 'prev_page': current_page-1, - 'next_page': current_page+1, - 'per_page': per_page, - 'page_next': page_next, - }, context_instance=RequestContext(request)) - @login_required def repo_history_revert(request, repo_id):