From 9af79be9964ba00fd60cf438b3c410f23bf00fda Mon Sep 17 00:00:00 2001 From: zhengxie Date: Tue, 20 Oct 2015 18:24:27 +0800 Subject: [PATCH] Refactor revert ops --- media/js/base.js | 11 +++++++++++ seahub/templates/file_revisions.html | 8 +++++++- seahub/templates/repo_history_view.html | 13 +++++++++---- seahub/templates/repo_recycle_view.html | 7 +++++-- seahub/urls.py | 2 +- seahub/views/__init__.py | 8 ++++++-- 6 files changed, 39 insertions(+), 10 deletions(-) diff --git a/media/js/base.js b/media/js/base.js index c2c7b82540..2918097e98 100644 --- a/media/js/base.js +++ b/media/js/base.js @@ -261,6 +261,17 @@ function addConfirmTo(op_ele, popup) { }); } +function addFormPost(op_ele) { + op_ele.click(function() { + $('
', { + "method": 'POST', + "action": $(this).data('url'), + "html": '' + }).appendTo(document.body).submit(); + return false; + }); +} + /* * func: add autocomplete to some input ele * @param ele_id: autocomplete is added to this ele(ment), e.g-'#xxx' diff --git a/seahub/templates/file_revisions.html b/seahub/templates/file_revisions.html index 8219eeb15f..35d7b0466c 100644 --- a/seahub/templates/file_revisions.html +++ b/seahub/templates/file_revisions.html @@ -70,7 +70,7 @@ {% if commit.id != repo.head_cmmt_id %} {% if can_revert_file %} - {% trans 'Restore' %} + {% trans 'Restore' %} {% endif %} {% endif %} {% trans 'Download' %} @@ -83,3 +83,9 @@ {% endfor %} {% endblock %} + +{% block extra_script %} + +{% endblock %} diff --git a/seahub/templates/repo_history_view.html b/seahub/templates/repo_history_view.html index e9945d0e98..a1801c0da9 100644 --- a/seahub/templates/repo_history_view.html +++ b/seahub/templates/repo_history_view.html @@ -47,7 +47,7 @@

{% if path == '/' and is_repo_owner %} - + {% endif %} @@ -64,7 +64,7 @@ {% trans {{ dirent.obj_name }} - {% trans "Restore" %} + {% trans "Restore" %} {% endfor %} @@ -74,7 +74,7 @@ {{ dirent.props.obj_name }} {{ dirent.file_size|filesizeformat }} - {% trans "Restore" %} + {% trans "Restore" %} {% trans "Download" %} @@ -87,7 +87,12 @@ {% endblock %} diff --git a/seahub/templates/repo_recycle_view.html b/seahub/templates/repo_recycle_view.html index a15ba3084d..76c3181970 100644 --- a/seahub/templates/repo_recycle_view.html +++ b/seahub/templates/repo_recycle_view.html @@ -66,7 +66,7 @@ {{ dirent.obj_name }} {{ dirent.delete_time|translate_seahub_time }} - {% trans "Restore" %} + {% trans "Restore" %} {% else %} {{ dirent.obj_name }} @@ -83,7 +83,7 @@ {{ dirent.obj_name }} {{ dirent.delete_time|translate_seahub_time }} {{ dirent.file_size|filesizeformat }} - {% trans "Restore" %} + {% trans "Restore" %} {% else %} {{ dirent.props.obj_name }} @@ -120,5 +120,8 @@ $('#online-gc').click(function() { $("#simplemodal-container").css({'height':'auto'}); }); {% endif %} + +addFormPost($('.restore-file-op')); +addFormPost($('.restore-dir-op')); {% endblock %} diff --git a/seahub/urls.py b/seahub/urls.py index c8a8c44d7b..430795486c 100644 --- a/seahub/urls.py +++ b/seahub/urls.py @@ -61,7 +61,7 @@ urlpatterns = patterns( # revert file/dir/repo url(r'^repo/revert_file/(?P[-0-9a-f]{36})/$', repo_revert_file, name='repo_revert_file'), url(r'^repo/revert_dir/(?P[-0-9a-f]{36})/$', repo_revert_dir, name='repo_revert_dir'), - url(r'^repo/history/revert/(?P[-0-9a-f]{36})/$', repo_history_revert, name='repo_revert_history'), + url(r'^repo/history/revert/(?P[-0-9a-f]{36})/$', repo_revert_history, name='repo_revert_history'), (r'^repo/upload_check/$', validate_filename), url(r'^repo/unsetinnerpub/(?P[-0-9a-f]{36})/$', unsetinnerpub, name='unsetinnerpub'), diff --git a/seahub/views/__init__.py b/seahub/views/__init__.py index 85c0399a72..0b126ee525 100644 --- a/seahub/views/__init__.py +++ b/seahub/views/__init__.py @@ -973,7 +973,8 @@ def repo_history(request, repo_id): }, context_instance=RequestContext(request)) @login_required -def repo_history_revert(request, repo_id): +@require_POST +def repo_revert_history(request, repo_id): next = request.META.get('HTTP_REFERER', None) if not next: @@ -1216,6 +1217,7 @@ def unlink_device(request): return HttpResponse(json.dumps({'success': True}), content_type=content_type) @login_required +@require_POST def unsetinnerpub(request, repo_id): """Unshare repos in organization or in share admin page. @@ -1259,7 +1261,7 @@ def unsetinnerpub(request, repo_id): perm_repo_id = repo.id perm_path = '/' - send_perm_audit_msg('delete-repo-perm', username, 'all', \ + send_perm_audit_msg('delete-repo-perm', username, 'all', perm_repo_id, perm_path, perm) messages.success(request, _('Unshare "%s" successfully.') % repo.name) @@ -1402,6 +1404,7 @@ def render_file_revisions (request, repo_id): }, context_instance=RequestContext(request)) @login_required +@require_POST def repo_revert_file(request, repo_id): repo = get_repo(repo_id) if not repo: @@ -1460,6 +1463,7 @@ def repo_revert_file(request, repo_id): return HttpResponseRedirect(url) @login_required +@require_POST def repo_revert_dir(request, repo_id): repo = get_repo(repo_id) if not repo: